Регистрация с разделением прав на PHP
При добавлении прав пользователей нам нужно внести
изменения в нашу регистрацию. Теперь при регистрации
пользователя мы должны в INSERT
запросе указывать
его статус.
Обычно при начальной регистрации все пользователи
нашего сайта получают самый низший статус,
то есть в нашем случае 'user'
:
<?php
$query = "INSERT INTO users
SET login='$login', password='$password', 'status'='user'";
?>
Статусы повыше обычно раздает администратор. Он в админке видит список пользователей и может любого сделать, к примеру, администратором.
Как же на сайте в таком случае появится первый администратор? Самое простое: зарегистрировать обычного пользователя и через PhpMyAdmin сделать его админом.
Более сложное: при первом запуске на хостинге запускать установку сайта, спросить с помощью формы логин и пароль и зарегистрировать самого первого пользователя сайта, которому и присвоить статус администратора.
Измените код регистрации так, чтобы все добавляемые
пользователи получали статус 'user'
.
Вручную поменяйте какому-нибудь пользователю
его статус на 'admin'
. Авторизуйтесь
под этим пользователем.
Сделайте страницу admin.php
, к которой
будут иметь доступ только пользователи со
статусом 'admin'
.
Выведите на странице admin.php
список
всех зарегистрированных пользователей вашего
сайта в виде таблицы. Пусть в таблице будут
две колонки: логин и статус.
Модифицируйте предыдущую задачу так, чтобы появилась еще и третья колонка, со ссылкой, с помощью которой админ сможет удалить любого пользователя.
Модифицируйте предыдущую задачу так, чтобы ряды таблицы с админами красились в красный цвет, а обычными юзерами - в зеленый.
Модифицируйте предыдущую задачу так, чтобы появилась еще одна колонка. В этой колонке админ сможет менять права пользователей. Сделайте так, чтобы для всех обычных пользователей там стояла ссылка сделать его админом, а для админа - ссылка сделать его юзером.
Сделайте так, чтобы на всех страницах сайта, в хедере зарегистрированный пользователь видел свой логин и статус.
Модифицируйте предыдущую задачу так, чтобы для админов в хедере сайта также показывалась ссылка на админку.