Registro com separação de privilégios em PHP
Ao adicionar privilégios de usuário, precisamos fazer
alterações no nosso registro. Agora, ao registrar um
usuário, devemos especificar seu status na consulta INSERT.
Geralmente, no registro inicial, todos os usuários
do nosso site recebem o status mais baixo,
ou seja, no nosso caso, 'user':
<?php
$query = "INSERT INTO users
SET login='$login', password='$password', 'status'='user'";
?>
Status mais elevados são geralmente concedidos pelo administrador. Ele vê a lista de usuários no painel de administração e pode tornar qualquer um, por exemplo, um administrador.
Como então o primeiro administrador aparecerá no site? A maneira mais simples: registrar um usuário comum e torná-lo administrador via PhpMyAdmin.
Mais complexo: na primeira execução no hospedagem, executar a instalação do site, perguntar login e senha usando um formulário e registrar o primeiro usuário do site, atribuindo a ele o status de administrador.
Altere o código de registro para que todos os usuários
adicionados recebam o status 'user'.
Altere manualmente o status de algum usuário
para 'admin'. Autentique-se
com esse usuário.
Crie uma página admin.php, à qual
somente usuários com status 'admin'
terão acesso.
Exiba na página admin.php a lista
de todos os usuários registrados do seu
site em forma de tabela. Deixe a tabela com
duas colunas: login e status.
Modifique a tarefa anterior para que apareça uma terceira coluna, com um link, através do qual o admin possa excluir qualquer usuário.
Modifique a tarefa anterior para que as linhas da tabela com administradores sejam coloridas de vermelho, e as dos usuários comuns - de verde.
Modifique a tarefa anterior para que apareça mais uma coluna. Nesta coluna, o admin poderá alterar os privilégios dos usuários. Faça com que para todos os usuários comuns haja um link tornar administrador, e para o administrador - um link tornar usuário.
Faça com que em todas as páginas do site, no cabeçalho, o usuário registrado veja seu login e status.
Modifique a tarefa anterior para que para os administradores no cabeçalho do site também seja mostrado um link para o painel de administração.