Pessoal, seguindo os princípios do módulo de segurança do SC 8.1, efetuei algumas mudanças na tabela para que eu consiga tratar sistema e módulo juntamente com a aplicação, isso está funcionando corretamente.
Após o Login do Usuário no sistema, eu não trato as aplicações no Login, chamo uma tela de controle na qual o usuário deve selecionar qual sistema e módulo quer abrir. Com isso, ao clicar em OK eu trato o seguinte no OnValidate:
sc_select(rs,"SELECT b.nom_aplicacao, priv_access, priv_insert,
priv_delete, priv_update, priv_export, priv_print
FROM seg_grupo_aplicacao a
INNER JOIN seg_aplicacao b ON (a.id_aplicacao = b.id_aplicacao AND a.id_sistema = b.id_sistema AND a.id_modulo = b.id_modulo)
WHERE a.id_grupo = [glo_id_perfil]
AND a.id_sistema = {sistema}
AND a.id_modulo = {modulo}");
if ({rs} !== false)
{
while (!$rs->EOF)
{
if( $rs->fields[1] == 'Y')
{
sc_apl_status($rs->fields[0], 'on');
}
else
{
sc_apl_status($rs->fields[0], 'off');
}
sc_apl_conf($rs->fields[0], "insert", has_priv($rs->fields[2]));
sc_apl_conf($rs->fields[0], "delete", has_priv($rs->fields[3]));
sc_apl_conf($rs->fields[0], "update", has_priv($rs->fields[4]));
//export
$export_permission = 'btn_display_'. has_priv($rs->fields[5]);
sc_apl_conf($rs->fields[0], $export_permission, 'xls');
sc_apl_conf($rs->fields[0], $export_permission, 'word');
sc_apl_conf($rs->fields[0], $export_permission, 'pdf');
sc_apl_conf($rs->fields[0], $export_permission, 'xml');
sc_apl_conf($rs->fields[0], $export_permission, 'csv');
sc_apl_conf($rs->fields[0], $export_permission, 'rtf');
//export
$export_permission = 'btn_display_'. has_priv($rs->fields[6]);
sc_apl_conf($rs->fields[0], $export_permission, 'print');
$rs->MoveNext();
}
$rs->Close();
sc_redir($menu_acesso); (busco a partir de um select que retirei do exemplo
}
Ao tentar compilar a aplicação, ele me informa de um erro:
Parse error: syntax error, unexpected ')' in /home/fhsyscom/public_html/scriptcase/app/FHSYSSEG/segu_apl_iniciadep/segu_apl_iniciadep_apl.php on line 1721
Então verifiquei que o problema está na parte abaixo, pois quando eu comento o sistema abre normalmente, mas não trata as partes de segurança.
sc_apl_conf($rs->fields[0], "insert", has_priv($rs->fields[2]));
sc_apl_conf($rs->fields[0], "delete", has_priv($rs->fields[3]));
sc_apl_conf($rs->fields[0], "update", has_priv($rs->fields[4]));
//export
$export_permission = 'btn_display_'. has_priv($rs->fields[5]);
sc_apl_conf($rs->fields[0], $export_permission, 'xls');
sc_apl_conf($rs->fields[0], $export_permission, 'word');
sc_apl_conf($rs->fields[0], $export_permission, 'pdf');
sc_apl_conf($rs->fields[0], $export_permission, 'xml');
sc_apl_conf($rs->fields[0], $export_permission, 'csv');
sc_apl_conf($rs->fields[0], $export_permission, 'rtf');
//export
$export_permission = 'btn_display_'. has_priv($rs->fields[6]);
sc_apl_conf($rs->fields[0], $export_permission, 'print');
Desde já agradeço a colaboração de todos.