O esquema de Segurança do SC5 está ok?

(ValterSouza) #1

Implementei o esquema de segurança gerado automaticamente pelo SC5. Acertei as ligações, defini as chaves primárias e gerei os fontes. O grupo ADMINISTRAÇÃO é criado automaticamente.
Para testar, criei mais um grupo de defini quais aplicações deveria ser abertas por aquele grupo. Criei um novo usuário e o incluí dentro desse grupo recém-criado. Quando mando executar a aplicação com o login desse novo usuário, o meno da aplicação está aparecendo com todas as aplicações definidas no sistema, ou seja, o módulo de segurança não está funcionando.
Creio que eu esteja me esquecendo de algum detalhe. Há necessidade de alterar alguma coisa nas aplicações?

(rayfcrols) #2

Valter a algumas coisas que v/c tem que verificar …

1 - Em configurações verifique se “Habilitar Uso de segurança” esta habilitado;
2 - Com relação a “Todas as aplicações do menu” verifique se nas configurações do menu esta marcado “Esconder Ítens de Menu”;
3 - Tmb verificar se as ditas aplicações esta com “Usar segurança habilitada”.

(ValterSouza) #3

Primeiramente, obrigado por sua atenção.
Definitivamente o Esquema de Segurança gerado automaticamente pelo SC5 não está funcionando (ou eu ainda não captei o espírito da coisa). Fiz tudo o que você sugeriu e nada! Com qualquer usuário e senha que eu entro, todas as aplicações são mostradas no menu.
Seria o caso de começar a funcionar apenas no ambiente de produção, lá no meu cliente? Ou isso já deveria estar funcionando no meu ambiente de desenvolvimento?

(JulioOliveira) #4

Criei o meu próprio esquema de Segurança, pois se verificarmos bem esse do SC não gerencia Edição, Exclusão, Inclusão, etc. A segurança apenas impede que se tenha acesso às aplicações, caso o usuário tenha acesso a um formulário, então ele poderá fazer tudo.
Meu esquema Funciona e tenho maior controle sobre o código.

(rayfcrols) #5

Valter, as aplicações do menu só estão sendo exibidos ou estão dando acesso a utilizar tmb…?

(ValterSouza) #6

As aplicações estão sendo exibidas e está sendo possibilitado acesso a todas elas, ou seja, liberou geral.

(George Carvalho) #7

Valter,

Você está habilitando “Usar segurança” nas aplicações?

George Carvalho

(joaquim) #8

Júlio bom dia!

Como vc fez para ter controle de Inclusão/alteração/Exclusão no seu esquema de segurança, o esquema de segurança do SC5 no meu caso é falha, porque uma coisa é mostrar formulários, consultas e relatórios, outra bem diferente é ter controle de usuários com permissões.

Valter, nas minhas aplicações eu criei os Grupos dentro do Programa, e fui criando menus para cada Grupo de trabalha, quando o usuário se loga eu encaminho ele para o menu do grupo de trabalho que ele pertence. é bem precário concordo mas para usar uma solução que só me atende até a metade prefiro ficar com a minha solução.

(ValterSouza) #9

Sei que também posso criar os grupos, dar permissões, etc., mas se o SC5 me a possibilidade de criar toda a estrutura e, depois disso, eu entrar com o código apenas das permissões por grupo, isso já iria me adiantar bastante, pois são muitos grupos.
Se eu conseguisse fazer o esquema de segurança do SC5 funcionar no seu básico, já me serviria. Depois eu faria as melhorias.
De qualquer forma, obrigado aos colegas pela ajuda.

(JulioOliveira) #10

Eu uso uma Função no evento OnValidate do form.
//valida operacoes e suas permissoes
if (sc_before_insert){
$e_permitido = nivel_permissao([nivel_permitido],0);
if ($e_permitido == 1){
sc_error_message([msg_permissao]);
}
}elseif(sc_before_update){
$e_permitido = nivel_permissao([nivel_permitido],1);
if ($e_permitido == 1){
sc_error_message([msg_permissao]);
}
}elseif(sc_before_delete){
$e_permitido = nivel_permissao([nivel_permitido],2);
if ($e_permitido == 1){
sc_error_message([msg_permissao]);
}
}

Onde:
[nivel_permitido] é o nível de cada usuário capturado no ato do login
nivel_permissao([nivel_permitido],1) é a função que captura o níel de permissão e o nível corrente do usuário. (0 verifica se é permitirdo Inserir, 1 Atualizar, 2 deletar)
Essa função retorna 0 (zero) quando é permitido e 1 qdo não.

Por fim:
[msg_permissao] é uma mensagem Global de segurança.

Espero que lhe ajude a desenvolver a sua e dos demais colegas
Abraço

(rayfcrols) #11

Certo Júlio, muito bom para que trabalha somente com níveis de permissão, mais tem a necessidade de fazer a inclusão em todas as aplicações, hoje eu utilizo uma rotina adaptada no próprio modulo de segurança do SC onde eu já trabalhos com estas permissões no ato do login e é configurável nas aplicações de segurança um controle de CIDAT(Consulta,Inclusão,Deletar,Atualizar,Total);

PS. Não posso deixar de dar os créditos ao nosso amigo Cleyton Euler que me passou suas rotinas, estas em que tomei como base para minhas novas adaptações …

(joaquim) #12

Julio boa tarde!

Show de bola!!!
Simples objetivo eprático como precisava…
já implementei na minha aplicação… deu um pouco de trabalha mas… ficou como eu queria e precisava.

AI PESSOAL DA NETMAKE… IMCREMENTA ISSO AI PRA GENTE!!!

(ValterSouza) #13

O esquema de segurança do SC5 gera códigos na aplicação de login. O código gerado vai bem até o momento em que o status das aplicação deveria ser mudados com o SC_APL_STATUS. Aí não funciona de jeito algum. O status das aplicações não se alteram, fazendo parecer que a macro não está funcionando.
Para resolver o problema, coloquei a rotina no evento ON LOAD da aplicação de MENU. Aí começou a funcionar.

Essa foi a a maneira que encontrei para ter a rotina de segurança gerada funcionar.