Jump to content

Sistema de Login


Vigario
 Share

Recommended Posts

Bom dia pessoal,

Já fiz uma pesquisa pelo forum e não encontrei nada em concreto...

Queria saber se alguem me podia dar uma ajuda ou pelo menos umas dicas de como fazer um Sistema de Login em que por exemplo temos 3 utilizadores e cada utilizador só pode ter acesso a algumas páginas do website, os utilizadores podem ser inseridos pelo Administrador do website.

Cumprimentos

Link to comment
Share on other sites

uma ideia simples é criares um campo na base de dados, por exemplo "accessLevel", e defines um nível para cada utilizador, por exemplo:

1 -> regular user

2 -> super user

3 -> administrator

e antes de mostrar as paginas, verificas qual é o accessLevel do utilizador

...Join the dark side...and get a free cookie...

Link to comment
Share on other sites

Vigario, o que queres fazer não é tanto relacionado com o login em si (autenticação), mas mais com a autorização de executar certas acções nos vários recursos. A parte da autenticação é normalíssima, só tens de ter as tabelas habituais de utilizadores e, eventualmente, grupos de utilizadores.

Depois, para a parte da autorização, precisas, pelo menos, de uma tabela com os recursos e outra com as acções possíveis nesses recursos. Finalmente, precisas de uma tabela que diga qual é a permissão (permitido, negado, herdado) dos utilizadores e/ou grupos a essas acções.

Para a coisa ficar mesmo full-power, ainda precisas dum sistema auxiliar, para que o acesso a certas acções possa depender de lógica aplicacional (por exemplo, os utilizadores do grupo "autores" podem executar a acção "editar" no recurso "notícias", mas apenas se forem o próprio autor da notícia que estão a tentar editar).

Se googlares por ACL (access control list) ou RBAC (role-based access control) vais encontrar vários sistemas destes pré-construídos, como o Zend ACL, por exemplo.

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

Depois, para a parte da autorização, precisas, pelo menos, de uma tabela com os recursos e outra com as acções possíveis nesses recursos. Finalmente, precisas de uma tabela que diga qual é a permissão (permitido, negado, herdado) dos utilizadores e/ou grupos a essas acções.

Depois basta em cada página fazer uma verificação se o utilizador tem permissão ou não para aceder à página ?

Link to comment
Share on other sites

Depois basta em cada página fazer uma verificação se o utilizador tem permissão ou não para aceder à página ?

Sim; ou melhor, na mesma localização centralizada (está centralizada, certo?) onde conectas a BD, verificas a autenticação, inicializas caminhos e constantes, etc., verificas também a autorização de execução da acção ao recurso corrente.

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

Boas,

Já que a minha questão é identica, penso nao fazer sentido abrir nova thread.

Então e se forem por exemplo 80 niveis diferentes? Tenho por exemplo 80 utilizadores e somente pretendo que esses utilizadores alterem dados de "n" filhos. que ~são de um subnivel inferior, mas pertencente a eles.

Para dar exemplo: Tenho x escolas e pretendo que somente cada um dos user escola consiga alterar dados dos seus parceiros. Mas atenção que os parceiros de uma escola, podem nbão ser os parceiros de outra escola.

Obrigado

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.