Segurança de acordo com o usuário logado

Bom dia pessoal,

Obrigada mais uma vez pela participação.

Vi agora que o código quando troquei p grupo ficou errado. Tem que ter atenção ao nome das tabelas na hora de fazer o select. O certo é:

$sql = “SELECT group_id FROM sec_users_groups WHERE login = '”. [usr_login] ."’";

sc_lookup(ds, $sql);

$group_id = {ds[0][0]};

if($group_id != 1){
sc_menu_disable (item_7, item_14);
}

Ola pessoal ! Tive o prazer de participar deste webinar com nossa amiga marcia, e tinha deixado um comentário que ela citou mais pro final do webinar. Meu comentário tinha como objetivo ajudar a resolver uma questão, que era a seguinte: Dependendo do usuario logado, mostrar so os pedidos dele na consulta de pedidos (tabela tb_pedidos). Porem se o administrador logasse ele poderia ver todos os pedidos. A Márcia tinha sugerido duplicar a tela de consulta, e eu sugeri usarmos o evento onscriptinit, para tratar esta situação montando um sql dinâmico, evitando assim, a duplicação da aplicação de consulta para tratar cada caso. Segue o código sugerido a ser colocado dentro do evento Onscriptinit da aplicação consulta. Eu primeiro testo a variavel global do scriptcase para saber se o usuario logado é administrador ou nao. Se NAO for eu crio um filtro dinamicamente no sql para filtrar so os pedidos do usuario logado, se FOR eu nao crio nenhum filtro. E na configuracao campo sql da aplicação, tambem nao precisamos colocar nenhuma clausula where. Antes de mostrar o codigo gostaria de me apresentar. Me Chamo Leonardo de Araujo Pereira e sou Instrutor do meu curso de scriptcase no site www.cursoscriptcase.com , onde temos um curso gratis de quase 3 horas e um curso pago de 25 hrs. La aprendemos estas coisas e muito mais ! Espero ter ajudado mostrando a solução no código fonte abaixo do evento OnScriptInit da aplicação Consulta.

if ([usr_priv_admin]) {

$sql = " nome = ‘[usr_login]’ ";

if ($sql <> “”) {
if (empty({sc_where_atual})) {
sc_select_where(add) = " where ".$sql;
}
else {
sc_select_where(add) = " AND ".$sql;
}
}

}

Grande Leo,

Muito boa sua dica meu amigo, obrigado.

Obrigada Leo!

Seu site ja estah no meu “favoritos”.
A titulo de colaboracao, indico a seguir alguns errinhos que seria legal vc corrigir no seu site (pode existir outros, os q indiquei foram os q saltaram aa vista.


imagem.JPG

Aguardando a video aula ensinando para usar o loguin por setor ou empresa…

Aguardo,

Vamos fazer esse @kleberalmeida agora em junho, usando a macro sc_change_connection

Pessoal, o vídeo editado já está no ar:

http://www.youtube.com/watch?v=rECFwsN-H0k

Oi Márcia, poderia disponibilizar para downloads?

Obriada

Márcia,

além do vídeo, poderia disponibilizar o link para baixar o projeto também.

Obrigado!

Segue link para o export do projeto e banco de dados.

http://bit.ly/seguranca_arq

Não sei se está no projeto que Marcia postou, pois depois de tanto tempo o link não está mais disponível… Não se pode esquecer de resetar o menu, através das macros sc_reset_menu_disable(); e sc_reset_menu_delete() no evento onApplicationInit, caso contrário o admin não acessará o menu completo.

Bom dia Leo, primeiro lugar agradecer pela dica, pois vou precisar no meu projeto mas coloquei:

if ([usr_priv_admin]) {

$sql = " fk_login = ‘[usr_login]’ ";

if ($sql <> “”) {
if (empty({sc_where_atual})) {
sc_select_where(add) = " where ".$sql;
}
else {
sc_select_where(add) = " AND ".$sql;
}
}

}

Mas deu erro na sintaxe: Parse error: syntax error, unexpected ‘if’ (T_IF) in