Ir para conteúdo
Fórum Script Brasil
  • 0

Cadastro de usuário e Login


Jhowcs

Pergunta

Galera eu to fazendo um trabalho pra conclusão de módulo, e nesse trabalho uma das coisas é definir nível de usuário do meu programa, eu tenho a tela de cadastro de usuário, onde eu vou cadastrar o usuário informando nome de usuário e senha e escolher se ele é apenas(Usuário ou Administrador) em um optionbutton. ou seja vou ter uma política de acesso.

eu quero saber como eu bloqueio algumas abas no meu MDIform, pois a parte de cadastro, e a parte de fechamento de caixa apenas quem tiver logado como administrador poderá acessar e modificar.

Obrigado

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

???

você esqueceu de informar qual o nome do campo que você define se é Usuário ou Administrador.

Mais suponhamos que seja Acesso.

Então você faz um módulo caso você não tenha ainda no seu projeto. E declare uma variável global.

Public Acesso As String
Aí no form do login do seu projeto você faz assim..
Acesso = .Fields(?) 'Substitua ? pelo campo que for no seu banco de dados.
Exemplo: Eu tenho Usuario, Senha e Acesso no seu banco de dados. Sabendo que começa por zero então no meu exemplo o Acesso será correspondente ao 2. Depois disso, vamos para o MDIForm..
Private Sub MDIForm_Activate()
Select Case Acesso
Case "Usuario"
??.enabled = false 
??.enabled = false
Case "Administrador"
End Select
End Sub

Substitua ?? pelo nome do seu menu ou submenu ou qualquer outro objeto que possua a propriedade enabled. Claro que não precisa ficar preso só nisso, são exemplos o intuito desse meu exemplo é para você entende como funciona a permissão. E com mais pratica você verá que é apenas um exemplo de vários que você irá ver por aí.

beleza? qualquer tipo de dúvida pode postar. ^^

Editado por new_rayderss
Link para o comentário
Compartilhar em outros sites

  • 0

Esse é o script da minha tabela de login, tipo o resto do sistema não abre enquanto eu não digitar o nome de usuário e a senha.

mas eu quero bloquear algumas abas do MDIFORM, conforme o usuário.

Dim Con As New ADODB.Connection
Dim TbCli As New ADODB.Recordset
Dim strSQL As String
Dim x As Integer


Private Sub cmdLogar_Click()

'vou selecionar na tabela cadastrousuario o campo login e senha e verificar se esta cadastrado, senão estiver o sistema não abre
strSQL = "Select *  from cadastrousuario where login = '" & txtlogin.Text & "' and senha = '" & txtsenha.Text & "'"

Set TbCli = Con.Execute(strSQL)
    
    If Not TbCli.EOF Then
        MDIBStar.Show
        Unload Me
        
            Else
        MsgBox "Nome de Usuário ou senha incorreto", vbCritical, "Erro"
        txtlogin.Text = ""
        txtsenha.Text = ""
        txtlogin.SetFocus
    End If
End Sub

Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
StringConexao = "DSN=Banco;Driver=Firebird/InterBase(r) driver;Dbname=H:\Projeto Loja Firebird\LOJA.FDB;CHARSET=NONE;UID=SYSDBA"

Con.Open StringConexao
End Sub
A minha tela cadastro de usuário também está funcionando... eis o script!!!
Dim Con As New ADODB.Connection
Dim TbCli As New ADODB.Recordset
Dim frase As String 'usada para montar as instruções SQL
Dim strSQL As String




Private Sub cmdApagar_Click()
strSQL = "Select *  from cadastrousuario where login = '" & txtlogin.Text & "' and senha = '" & txtSenha.Text & "'"


Set TbCli = Con.Execute(strSQL)
    If Not TbCli.EOF Then
        If MsgBox("Deseja Realmente Excluir Este Usuário?", vbYesNo + vbCritical, "Atenção...") = vbYes Then
            Con.Execute "delete  from cadastrousuario where login = '" & txtlogin.Text & "' and senha = '" & txtSenha.Text & "'"
    End If
    Else
            MsgBox "Usuário não Cadastrado", vbExclamation
        End If

txtlogin.Text = ""
txtSenha.Text = ""

End Sub

Private Sub cmdCancelar_Click()
txtlogin.Text = ""
txtSenha.Text = ""
End Sub

Private Sub cmdGravar_Click()
frase = "INSERT INTO cadastrousuario (Login, Senha, nivel)"

frase = frase & " VALUES ('" & txtlogin.Text & "',"
frase = frase & "'" & txtSenha.Text & "',"
    If optAdmin.Value Then
        frase = frase & "'A')"
    Else
        frase = frase & "'U')"
    End If
    Con.Execute (frase)

txtlogin.Text = ""
txtSenha.Text = ""

End Sub

Private Sub cmdSair_Click()
Unload Me
End Sub

Private Sub Form_Load()
Centraliza MDIBStar, Me
Con.Open StringConexao
End Sub

Private Sub Form_Unload(Cancel As Integer)
Con.Close
End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

Nossa escrevi um monte de coisa, mas a Net caiu e o post se perdeu... vamos ver se consigo passar a mesma idéia.

Estou utilizando um processinho de direitos de acesso para um projeto. Usei as seguintes idéias:

- Existe um form de cadastro de usuário, com sua respectiva tabela.

- Existe um form de cadastro de grupo de usuários, com sua respectiva tabela.

- Existe um form que realiza o vínculo dos usuários com um grupo de usuário, sendo que cada usuário pode fazer parte apenas de um grupo de usuários.

- Existe um form que carrega um grupo de usuário e, em outra aba (ou guia) do SSTab, faz o esquema de direitos de acesso.

Nesta aba estão listadas em um ListBox todas as telas do sistema. Outro ListBox receberá apenas as telas selecionadas. Neste ListBox é feita uma verificação de algumas telas, que define que deveriam ter algumas abas limitadas à acesso. Criei uma tabela de direitos de acesso que recebe a FK do grupo de usuários, um campo com as telas que aquele grupo tem acesso (separadas por ponto e vírgula) e um campo com as tabs, no mesmo padrão do campo telas.

Sendo assim, também criei uma function pública que faz um select nessa tabela, pelo grupo de usuários.

Durante o Load da tela, é verificada a permissão.

A variável sPermiteAbertura é global.

Private Sub Form_Load()
Dim sDireitoAcesso() As String
        
    tabOrdemServico.TabEnabled(1) = False
    
    'Chama a função de direito de acesso e verifica se o usuário tem permissão
    sDireitoAcesso = Split(pcVerificaDireitoAcesso, ",")

    'Primeiro parâmetro: A tela que está sendo carregada está entre as retornadas
    'pela função?
    If InStr(1, sDireitoAcesso(0), "OrdemServico") = 0 Then
        MsgBox "Você não possui permissão para acessar esta tela!", vbOKOnly + vbCritical, "KZX Auto System"
        Form_Unload 0
        sPermiteAbertura = "N"
        Exit Sub
    Else
        
        'Segundo parâmetro: se a tela estiver E tiver permissões por guias,
        'faz esta verificação
        If Trim(sDireitoAcesso(1)) <> "" Then
            
            If InStr(1, sDireitoAcesso(1), "Cadastro de OS") > 0 Then
                tabOrdemServico.TabEnabled(1) = True
            End If
            
        End If
        
        sPermiteAbertura = "S"
        
    End If
O menu utiliza a seguinte estrutura:
If sPermiteAbertura = "S" Then
   oTela.Show
   Set oTela = Nothing        
Else
          Unload Forms(iFormAberto + 1)
End If

PS: o antes deste teste, fiz uma verificação de formulário já aberto. A variável iFormAberto também é uma variável global que recebe o índice do Forms.

Espero ter ajudado :closedeyes:

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...