CakePHP - Como limito globalmente (c) operações de RUD nos dados para o proprietário desses dados?

StackOverflow https://stackoverflow.com/questions/1749297

  •  20-09-2019
  •  | 
  •  

Pergunta

Eu tenho um modelo em que tudo está associado a um único usuário (por exemplo, usuário-> client-> perfil). Agora, um usuário só deve poder (c) Rud em seus dados (apenas o proprietário de um perfil deve ter sucesso no acesso/perfil/editar/[hisid]); portanto, em quase todas as operações de banco de dados uma condição como "'user.id' = = > $ this-> session-> leia ('auth.user.id') "deve ser incluído. Isso exige que o modelo funcione (como o encontro) sempre participe "do seu caminho" para a tabela de usuários (ou salvar o proprietário de dados em várias tabelas, o que não parece ser uma boa maneira de fazer isso).

Como isso é feito da maneira certa para vários modelos e ações (especialmente sem comparar os IDs de usuário em todas as ações)? Pode estar nas funções de retorno de chamada do modelo, mas agora não vejo uma solução geral.

Isso não parece ser um cenário exagerado, então eu posso estar perdendo uma solução muito óbvia.

Obrigado pela sua ajuda!

Foi útil?

Solução

Eu criaria uma superclasse a partir da qual todos os modelos apropriados herdam; e use os métodos de retorno de chamada do modelo, como antes, para verificar as permissões

http://book.cakephp.org/view/76/callback-methods

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top