You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Quando um usuário interagir com determinado endpoint, se faz necessário validar se o mesmo é autorizado a realizar essa ação. Por exemplo, um usuário que é apenas o funcionário de uma fazendeiro não deveria ter autorização para cadastrar uma nova fazenda, a menos que ele tenha um cargo que possa desempenhar tal atividade, como no caso de um gerente, talvez.
Cabe a regra de negócio, garantir que ninguém interaja com um dado que não lhe pertença 🔒.
Verificações a serem feitas
Note
Um usuário será permitido a realizar determinada ação, caso desempenhe um cargo que lhe permita isto e caso esteja relacionado com a propriedade com a qual está interagindo. Por exemplo, um gerente pode cadastrar novos funcionários na fazenda, para não sobrecarregar o fazendeiro com esta atividade, porém ele não pode cadastrar novos funcionário em uma fazenda que não pertença a seu patrão.
Cargos
Ao cadastrar um novo registro na tabela employment, inicialmente podemos escolher entre três opções de cargos para um usuário, abaixo está descrito quais atividades cada usuário pode exercer.
farmer - Pode interagir com todos os endpoints da aplicação, mas podendo alterar apenas registros relacionados à suas propriedades.
manager - Tem os mesmos poderes de farmer, a não ser por não pode interagir com as rotas /farmer/*.
cowboy - Pode interagir apenas com as rotas relacionadas a batch, animal e batch_log, visando realizar apenas serviços não administrativos, mas sim relacionados aos animais dentro da fazenda.
Restrições
Somente pode ser possível adicionar um registro na tabela farmer caso o usuário corrente tenha manager_id nulo e não haja um registro na tabela employment com user_id igual ao seu id. Um fazendeiro não pode criar um novo registro de fazendeiro.
Um usuário que tenha o campo manager_id não nulo e não tenha o cargo manager, não deve ser autorizado a cadastrar novas fazendas.
Só podem adicionar novos registros a tabela employment, usuários com cargos farmer ou manager, ou ainda usuários que tenham manager_id nulo.
Somente podem adicionar novos usuários funcionários, pessoas com cargos farmer ou manager.
Qualquer cargo pode adicionar registros às seguintes tabelas:
batch
animal
batch_log
Nota
Assim como o Roadmap, isto não é provisório. Novas demandas de regras de negócio podem ser adicionadas (e provavelmente serão) com o tempo, e regras que idealizei inicialmente podem ser desconsideradas caso se mostrem confusas.
The text was updated successfully, but these errors were encountered:
Descrição
Quando um usuário interagir com determinado endpoint, se faz necessário validar se o mesmo é autorizado a realizar essa ação. Por exemplo, um usuário que é apenas o funcionário de uma fazendeiro não deveria ter autorização para cadastrar uma nova fazenda, a menos que ele tenha um cargo que possa desempenhar tal atividade, como no caso de um gerente, talvez.
Cabe a regra de negócio, garantir que ninguém interaja com um dado que não lhe pertença 🔒.
Verificações a serem feitas
Note
Um usuário será permitido a realizar determinada ação, caso desempenhe um cargo que lhe permita isto e caso esteja relacionado com a propriedade com a qual está interagindo. Por exemplo, um gerente pode cadastrar novos funcionários na fazenda, para não sobrecarregar o fazendeiro com esta atividade, porém ele não pode cadastrar novos funcionário em uma fazenda que não pertença a seu patrão.
Cargos
Ao cadastrar um novo registro na tabela
employment
, inicialmente podemos escolher entre três opções de cargos para um usuário, abaixo está descrito quais atividades cada usuário pode exercer.farmer
- Pode interagir com todos os endpoints da aplicação, mas podendo alterar apenas registros relacionados à suas propriedades.manager
- Tem os mesmos poderes defarmer
, a não ser por não pode interagir com as rotas/farmer/*
.cowboy
- Pode interagir apenas com as rotas relacionadas abatch
,animal
ebatch_log
, visando realizar apenas serviços não administrativos, mas sim relacionados aos animais dentro da fazenda.Restrições
farmer
caso o usuário corrente tenhamanager_id
nulo e não haja um registro na tabelaemployment
comuser_id
igual ao seu id. Um fazendeiro não pode criar um novo registro de fazendeiro.manager_id
não nulo e não tenha o cargomanager
, não deve ser autorizado a cadastrar novas fazendas.employment
, usuários com cargosfarmer
oumanager
, ou ainda usuários que tenhammanager_id
nulo.farmer
oumanager
.batch
animal
batch_log
Nota
Assim como o Roadmap, isto não é provisório. Novas demandas de regras de negócio podem ser adicionadas (e provavelmente serão) com o tempo, e regras que idealizei inicialmente podem ser desconsideradas caso se mostrem confusas.
The text was updated successfully, but these errors were encountered: