Parametrização de Usuario
Estou completamente perdido de como fazer para criar parametros restingindo a ação de usuarios em programa cliente/servidor, ou seja, queria poder controlar se o usuario pode ou não inserir editar ou excluir registros abrir formularios modificar datas de relatorios etc
eu não queria fazer usando o conceito de nivel de usuario uma vez que isso restringe muito o controle parametrizado do usuario a minha ideia era criar um form para cadastrar os acessos do usuario mas não sei como fazer para deixar os dados do ususario de facil acesso no cliente e sem perder performance do programa .
se alguem puder me explicar como é feito pela maioria dos progrmadores eu ficaria muito agradecido
muito obrigado
eu não queria fazer usando o conceito de nivel de usuario uma vez que isso restringe muito o controle parametrizado do usuario a minha ideia era criar um form para cadastrar os acessos do usuario mas não sei como fazer para deixar os dados do ususario de facil acesso no cliente e sem perder performance do programa .
se alguem puder me explicar como é feito pela maioria dos progrmadores eu ficaria muito agradecido
muito obrigado
Mhdragon-rs
Curtidas 0
Respostas
Paulo_amorim
16/01/2005
Olá
Se vc tiver uma tabela usuário, poderia colocar nela campos que permitissem essa informação. Quando o usuário entrasse em uma interface, você consultaria essa tabela e veria se ele:
- Tem acesso a ela
- Tem permissão de seleção
- Tem permissão para realizar operações
Espero que ajude
Até+
Se vc tiver uma tabela usuário, poderia colocar nela campos que permitissem essa informação. Quando o usuário entrasse em uma interface, você consultaria essa tabela e veria se ele:
- Tem acesso a ela
- Tem permissão de seleção
- Tem permissão para realizar operações
Espero que ajude
Até+
GOSTEI 0
Mhdragon-rs
16/01/2005
ok paulo muito obrigado por responder
mas faço outra pergunta
cada vez que for consultar a tabela ela vai estar no seervidor isso não fara o sistema ficar lento?
mas faço outra pergunta
cada vez que for consultar a tabela ela vai estar no seervidor isso não fara o sistema ficar lento?
GOSTEI 0
Isabelct
16/01/2005
Olá colega,
Você pode criar um tipo, que representa os campos da sua tabela. Exemplo:
Depois você cria uma variável com este tipo, e após validar a senha do seu usuário (supondo que você tenha um controle de login de usuários), você verifica a sua tabela de permissões e preenche esta variável com o que o usuário pode ou não pode acessar. Depois, antes de abrir cada opção do menu, você consulta esta variável para ver se o usuário tem ou não permissão de acessar tal cadastro.
O único ponto contra desta solução é que se houver uma mudança nas permissões de acesso do usuário, o mesmo deverá sair do sistema e entrar novamente (mas isso não é nada grave...).
Espero que isso te ajude. Qualquer coisa, posso te dar mais umas dicas.
Você pode criar um tipo, que representa os campos da sua tabela. Exemplo:
TPermissaoUsuario = record
CadastroDeCliente: Boolean;
CadastroDeFuncionarios: Boolean;
{demais cadastros aqui...}
end;
Depois você cria uma variável com este tipo, e após validar a senha do seu usuário (supondo que você tenha um controle de login de usuários), você verifica a sua tabela de permissões e preenche esta variável com o que o usuário pode ou não pode acessar. Depois, antes de abrir cada opção do menu, você consulta esta variável para ver se o usuário tem ou não permissão de acessar tal cadastro.
O único ponto contra desta solução é que se houver uma mudança nas permissões de acesso do usuário, o mesmo deverá sair do sistema e entrar novamente (mas isso não é nada grave...).
Espero que isso te ajude. Qualquer coisa, posso te dar mais umas dicas.
GOSTEI 0
Isabelct
16/01/2005
Olá colega,
Você pode criar um tipo, que representa os campos da sua tabela. Exemplo:
Depois você cria uma variável com este tipo, e após validar a senha do seu usuário (supondo que você tenha um controle de login de usuários), você verifica a sua tabela de permissões e preenche esta variável com o que o usuário pode ou não pode acessar. Depois, antes de abrir cada opção do menu, você consulta esta variável para ver se o usuário tem ou não permissão de acessar tal cadastro.
O único ponto contra desta solução é que se houver uma mudança nas permissões de acesso do usuário, o mesmo deverá sair do sistema e entrar novamente (mas isso não é nada grave...).
Espero que isso te ajude. Qualquer coisa, posso te dar mais umas dicas.
Você pode criar um tipo, que representa os campos da sua tabela. Exemplo:
TPermissaoUsuario = record
CadastroDeCliente: Boolean;
CadastroDeFuncionarios: Boolean;
{demais cadastros aqui...}
end;
Depois você cria uma variável com este tipo, e após validar a senha do seu usuário (supondo que você tenha um controle de login de usuários), você verifica a sua tabela de permissões e preenche esta variável com o que o usuário pode ou não pode acessar. Depois, antes de abrir cada opção do menu, você consulta esta variável para ver se o usuário tem ou não permissão de acessar tal cadastro.
O único ponto contra desta solução é que se houver uma mudança nas permissões de acesso do usuário, o mesmo deverá sair do sistema e entrar novamente (mas isso não é nada grave...).
Espero que isso te ajude. Qualquer coisa, posso te dar mais umas dicas.
GOSTEI 0
Isabelct
16/01/2005
Olá colega,
Você pode criar um tipo, que representa os campos da sua tabela. Exemplo:
Depois você cria uma variável com este tipo, e após validar a senha do seu usuário (supondo que você tenha um controle de login de usuários), você verifica a sua tabela de permissões e preenche esta variável com o que o usuário pode ou não pode acessar. Depois, antes de abrir cada opção do menu, você consulta esta variável para ver se o usuário tem ou não permissão de acessar tal cadastro.
O único ponto contra desta solução é que se houver uma mudança nas permissões de acesso do usuário, o mesmo deverá sair do sistema e entrar novamente (mas isso não é nada grave...).
Espero que isso te ajude. Qualquer coisa, posso te dar mais umas dicas.
Você pode criar um tipo, que representa os campos da sua tabela. Exemplo:
TPermissaoUsuario = record
CadastroDeCliente: Boolean;
CadastroDeFuncionarios: Boolean;
{demais cadastros aqui...}
end;
Depois você cria uma variável com este tipo, e após validar a senha do seu usuário (supondo que você tenha um controle de login de usuários), você verifica a sua tabela de permissões e preenche esta variável com o que o usuário pode ou não pode acessar. Depois, antes de abrir cada opção do menu, você consulta esta variável para ver se o usuário tem ou não permissão de acessar tal cadastro.
O único ponto contra desta solução é que se houver uma mudança nas permissões de acesso do usuário, o mesmo deverá sair do sistema e entrar novamente (mas isso não é nada grave...).
Espero que isso te ajude. Qualquer coisa, posso te dar mais umas dicas.
GOSTEI 0
Aroldo Zanela
16/01/2005
Colega,
Veja este componente do [url=http://sourceforge.net/projects/usercontrol]QmD[/url]. Aqui no fórum tem alguns esclarecimentos adicionais efetuados pelo autor, basta utilizar o link acima ´pesquisar´ para encontrar todas as referências para o User Control.
Veja este componente do [url=http://sourceforge.net/projects/usercontrol]QmD[/url]. Aqui no fórum tem alguns esclarecimentos adicionais efetuados pelo autor, basta utilizar o link acima ´pesquisar´ para encontrar todas as referências para o User Control.
GOSTEI 0
Mhdragon-rs
16/01/2005
:lol:
olá isabel esta solução parece otima mas eu pergunto se acada consulta eu vou no banco de dados pesquisar a tabela? me diz outra coisa uma variavel pode receber mais de um valor simultaneamente, como fazer isto?
um muito obrigado pela ajuda vai seer grande valor!!!!!
olá isabel esta solução parece otima mas eu pergunto se acada consulta eu vou no banco de dados pesquisar a tabela? me diz outra coisa uma variavel pode receber mais de um valor simultaneamente, como fazer isto?
um muito obrigado pela ajuda vai seer grande valor!!!!!
GOSTEI 0
Isabelct
16/01/2005
[quote:9c01a24dc6=´mhdragon-rs´]olá isabel esta solução parece otima mas eu pergunto se acada consulta eu vou no banco de dados pesquisar a tabela? [/quote:9c01a24dc6]
Acho que o ideal para o seu caso seria no form de login, após validar a senha do usuário, consultar o banco e alimentar a sua variável de permissões. Assim, durante a execução do programa, você consulta apenas esta variável, não precisando recorrer sempre ao banco de dados.
[quote:9c01a24dc6=´mhdragon-rs´]me diz outra coisa uma variavel pode receber mais de um valor simultaneamente, como fazer isto?[/quote:9c01a24dc6]
Sim e não. Uma variável de um tipo comum, como um string ou um Integer, pode receber apenas um valor por vez. Mas você pode criar uma variável de um tipo composto, utilizando record, e então uma variável poderá ter mais do que um valor. Vejamos um exemplo:
A variável PermissaoUsuarioCorrente é que você vai alimentar na entrada do seu sistema. Ela terá várias ´subvariáveis´ (o nome não é esse, mas assim fica mais elucidativo), que irão definir o acesso a cada um dos módulos do sistema.
E cada uma destas ´subvariáveis´ terá mais algumas ´subvariáveis´ que indicam a forma de acesso a cada um desses cadastros.
E é desta forma que você deve preencher as suas variáveis. E então depois, quando o usuário clicar no botão para excluir um cliente, você verifica se ele tem permissão de excluir clientes verificando o conteúdo da variável ´PermissaoUsuarioCorrente.CadastroDeCliente.Exclusao´
Acho que era isso. Qualquer coisa, retorna pra cá!
Acho que o ideal para o seu caso seria no form de login, após validar a senha do usuário, consultar o banco e alimentar a sua variável de permissões. Assim, durante a execução do programa, você consulta apenas esta variável, não precisando recorrer sempre ao banco de dados.
[quote:9c01a24dc6=´mhdragon-rs´]me diz outra coisa uma variavel pode receber mais de um valor simultaneamente, como fazer isto?[/quote:9c01a24dc6]
Sim e não. Uma variável de um tipo comum, como um string ou um Integer, pode receber apenas um valor por vez. Mas você pode criar uma variável de um tipo composto, utilizando record, e então uma variável poderá ter mais do que um valor. Vejamos um exemplo:
TAcesso = record
Leitura: Boolean;
Gravacao: Boolean;
Exclusao: Boolean;
end;
TPermissaoUsuario = Record
CadastroDeCliente: TAcesso;
CadastroDeFuncionarios: TAcesso;
{demais cadastros aqui...}
end;
. . .
var
PermissaoUsuarioCorrente: TPermissaoUsuario;
A variável PermissaoUsuarioCorrente é que você vai alimentar na entrada do seu sistema. Ela terá várias ´subvariáveis´ (o nome não é esse, mas assim fica mais elucidativo), que irão definir o acesso a cada um dos módulos do sistema.
PermissaoUsuarioCorrente.CadastroDeCliente ou PermissaoUsuarioCorrente.CadastroDeFuncionarios
E cada uma destas ´subvariáveis´ terá mais algumas ´subvariáveis´ que indicam a forma de acesso a cada um desses cadastros.
PermissaoUsuarioCorrente.CadastroDeCliente.Leitura ou PermissaoUsuarioCorrente.CadastroDeCliente.Gravacao ou PermissaoUsuarioCorrente.CadastroDeCliente.Exclusao
E é desta forma que você deve preencher as suas variáveis. E então depois, quando o usuário clicar no botão para excluir um cliente, você verifica se ele tem permissão de excluir clientes verificando o conteúdo da variável ´PermissaoUsuarioCorrente.CadastroDeCliente.Exclusao´
Acho que era isso. Qualquer coisa, retorna pra cá!
GOSTEI 0