Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Permissão para não alterar registro de outra empresa Olá comunidade Adianti Suponha o seguinte cenário: um sistema multiempresa que compartilha por exemplo do mesmo cadastro de produto sendo que o que o controle é feito pela unidade que aquele registro pertence. Como vocês tratam a permissão na hora de editar um registro, pois o usuário pode vir a alterar o atributo key e id na url, permitindo com que se altere um registro...
FS
Permissão para não alterar registro de outra empresa  
Olá comunidade Adianti

Suponha o seguinte cenário: um sistema multiempresa que compartilha por exemplo do mesmo cadastro de produto sendo que o que o controle é feito pela unidade que aquele registro pertence.

Como vocês tratam a permissão na hora de editar um registro, pois o usuário pode vir a alterar o atributo key e id na url, permitindo com que se altere um registro que pertença a outra empresa e não a ele?

Exemplo: localhost/consultorio/index.php?class=PacienteForm&method=onEdit


Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (2)


FT

Você pode criar uma verificação - se a unidade do registro é a mesma da do usuário que está logado.
FS

Poderia fornecer algum exemplo amigo?

Eu consegui fazer a verificação pra saber se o registro que o usuário está alterando pertence a empresa dele.

Agora não tô sabendo é como fazer para redirecionar ele para a tela de edição só que carregando os dados do registro anterior

Não to sabendo como usar o new TAction( ) para levar ele pro onEdit só que com esses dados anteriores.

Alguém poderia me ajudar!

Abaixo segue a regra que fiz dentro do onSave para fazer a verificação.

  1. <?php
  2.     if ($data->id) {                
  3.                 $count Empresa::where('id''='$data->id)
  4.                                          ->where('empresa_id''='TSession::getValue('userempresaid'))
  5.                                          ->count();   
  6.                 //SE RETORNAR '0' SIGNIFICA QUE O REGISTRO NÃO PERTENCE A EMPRESA DO USUÁRIO, PORTANTO NÃO PODE SER ALTERADO             
  7.                 if ($count == '0') {                    
  8.                     //AQUI DEVO USAR O new TAction PARA REDIRECIONAR PARA O onEdit COM OS DADOS ANTERIORES
  9.                 }
  10.     }
  11. ?>