Skip to content

Permissionamento

Jhony Lucas edited this page Jul 10, 2024 · 1 revision

Permisisonamento

No admin do Django, é possível definir permissões para os usuários. Permissionamento é o processo de definir quem pode acessar o quê. É uma boa prática definir permissões para os usuários, assim podemos controlar o que cada um pode fazer no sistema.

Grupos de permissões

No Django, é possível criar grupos de permissões. Assim, podemos associar um grupo de permissões a um usuário. No menu lateral do admin, é possível encontrar a seção 'Autenticação e Autorização' e, nela, a opção 'Grupos'. Nessa opção, é possível criar grupos de permissões. Em produção, já possuímos dois grupos de permissões. Então, dado o caso de uso atual, não é necessário criar novos grupos de permissões. Mas, caso seja necessário, é possível criar novos grupos de permissões nesse menu.

Permissões

Um grupo de permissões é composto por várias permissões. Uma permissão é uma ação que um usuário pode realizar. Por exemplo, a permissão 'Can add account' permite que um usuário adicione uma nova conta. As permissões são criadas automaticamente pelo Django. Para cada novo modelo criado, o Django cria automaticamente as permissões 'Can add', 'Can change', 'Can delete' e 'Can view'. Caso alguém venha a criar um novo modelo no Django, é necessário atualizar manualmente as permissões nos grupos para manter o sistema atualizado.

Um problema comum é dado um novo modelo criado, certo usuário não consegue acessar o modelo. Isso ocorre pois provavelmente as permissões não foram adicionadas ao grupo que ele faz parte. Se fizer sentido, é necessário adicionar as permissões ao grupo de permissões do usuário.

Usuários

Superusuário

No Django, é possível criar superusuários. Superusuários são usuários com todas as permissões do sistema. Ou seja independente do grupo que ele faça parte, ele terá todas as permissões. É possível definir qualquer usuário como superusuário. Para isso, basta accessar o admin do Django, entrar no usuário que deseja tornar superusuário e marcar a opção "Status de superusuário" na aba "Permissions".

Cuidado ao definir um usuário como superusuário. Pois ele terá todas as permissões do sistema. De preferência, defina apenas poucos usuários como superusuários e apenas se for necessário.

Admin

Na mesma aba "Permissions" é possível definir se o usuário tem acesso ao admin do Django. Se a opção "Admin" estiver marcada, o usuário poderá acessar o admin do Django. Caso contrário, ele não terá acesso ao admin.

Grupos Internos

É aqui que definimos a qual grupo o usuário pertence. Se o usuário pertence a um grupo, ele terá as permissões do grupo. Se ele não pertence a nenhum grupo, ele não terá permissões. Se o usuário for um superusuário, ele terá todas as permissões do sistema, independente do grupo que ele esteja. Caso venha a criar um novo grupo de permissões e deseja dar essas permissões a um usuário, basta adicionar o grupo criado ao usuário nessas opçõe de grupo interno. Um usuário pode pertencer a vários grupos de permissões.

Perfil

O perfil do usuário fica na aba "Personal" dentro da página Account. Existem três tipos de perfis: "Staff", "Visitante" e "Colaborador". O mais importante aqui é o perfil Staff, caso um usuário seja um Staff, ele será exibido no website da Base dos dados.

Careers

Na aba "Careers" é possível definir as carreiras do usuário. A carreira possui várias informações importantes, como o nível de senioridade, a área de atuação e a data de início. A carreira é utilizada também no website da Base dos Dados.

BDGroups e BDRoles

No sistema existe alguns modelos que foram criados inicialmente para controlar o permissionamento. São eles BDGroups e BDRoles. No entanto, esses modelos não são mais utilizados. O permissionamento é controlado pelo Django. Então, não é necessário se preocupar com esses modelos.