Permissões com Mult Usuários

Boa tarde Senhores tudo bem?

Estou com uma dúvida que antes procurei no fórum e só achei mult empresas. Pois bem tenho um sistema onde tem vários tipos de

usuários: Coordenador, Supervisor e líder

Módulos no sistema: Setores e células

A regra de negócio é que o coordenador tenha permissão total, já o supervisor acessa somente os seus setores por sua vez o líder acessa somente as suas células.

Em todas os SQL das aplicações no sistema vou colocar Where {login} = ‘[var_login]’ AND {departamento} = ‘[var_departamento]’

As dúvidas:

1 - Na tela de login crio o campo “departamento”?

2 - Ou crio dentro do sistema ao cadastrar o usuário criar um campo {departamento} na tabela de usuário?

Cria o campo Departamento na Tabela de usuários: sec_users, ai durante o login usando a app_login, na Query do SELECT pegar o campo Departamento e colocar ele
na global: [glo_Departamento] assim você poderá usar no restante do sistema.

Fala Jailton, Segue a regra definitiva das permissões:

Sobre os níveis de acesso ao sistema podemos entender como 4 níveis:

  • Líder de celula
  • Supervisor de celula
  • Supervisor de Setor
  • Gerente do setor

A diferenca de acesso diz respeito a quais dados das celulas o usuário poderá visualizar ou alterar.

  • Líder de celula: apenas sua célula
  • Supervisor de celula: Todas as celulas de seu grupo de célula, em media 3
  • Supervisor de Setor: Todas as celulas do setor
  • Gerente: todas as células

Além dos dados das células o lider terá acesso aos relatorios de celula de seu setor.

Teria que criar os campos: Setor(departamento) e celulas ?

Tem jeito de montar na senha, usando os campos que vão ser incluídos na tabela de usuários mas não é tão simples, porque vai ter que criar
tipo um filtro especifico [glo_Filtro] usando vários sc_lookup if else endif na tabela de senhas para montar os parâmetros, para filtrar cada aplicação depois.

Você vai ter que quebrar a cabeça para fazer as ‘combinações’ para criar o [glo_Filtro] da forma desejada.

Um rascunho abaixo da ideia:

if Lider
[glo_Filtro]=‘Celula={CeluladoLider}’;
}

if SupervisorCelula
[glo_Filtro]=“Celula IN (’{Celula1}’, ‘{Celula2}’, ‘{Celula3}’)”;
}

etc…