Add access level control
This commit is contained in:
40
DOC/core_classes/LE_ALC.md
Normal file
40
DOC/core_classes/LE_ALC.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# LE ALС - access level control
|
||||
В системе LE предусмотрены уровни доступа, эти уровни могут задаваться на уровне всего пространства (например админка или личный кабинет) и на уровне кокнкретных модулей, например простой менеджер не может добавлять администраторов сайта, а директор может.
|
||||
|
||||
## Хранение
|
||||
Все аккаунты хранятся в таблице `sys_accounts`
|
||||
|
||||
|
||||
Поле | Тип | Описание
|
||||
----- | ----- | ---------
|
||||
id | int 12 |
|
||||
login | varchar 200| Логин для авторизации
|
||||
level | int 2 | уровень привелегий
|
||||
password | varchar 32 | пароль в формате md5, позже вероятно можно перейти на sha-256
|
||||
name | varchar 250 |Имя для отображения на сайте|
|
||||
data | JSON |Любые произвольные, обычно анкетные данные, например адрес, этаж, код от домофона, ссылка на соц сеть...
|
||||
|
||||
## Уровни доступа
|
||||
В конкретном приложении можно придумать свои уровни, но на стандартном решени будут вот такие уровни
|
||||
|
||||
Уровень | Роль | Описание
|
||||
----- | ----- | ---------
|
||||
0 | Гость | Обычный посетитель сайта, который не авторизовался
|
||||
1 | Обычный пользователь | Это или покупатель или читатель, может например заходить в свой кабинет, менять свои данные, но в основном ограниченный, с нулевой кармой
|
||||
2 | Привилигированный пользователь | Это человек имеющий например право писать комментарии и как-то модифицировать наполнение внешней части сайта
|
||||
3 | Модератор |
|
||||
4 | Менеджер |
|
||||
5 | Директор |
|
||||
6 | Администратор |
|
||||
|
||||
## Включение контроля доступа
|
||||
Контроль доступа можно включить как на уровне всего пространства (например админка), так и на уровне конкретного модуля, для этого в начале файла достаточно добавить
|
||||
|
||||
```php
|
||||
$user_lev = LE::$ALC->set_lev(2);
|
||||
```
|
||||
Где 2 - это минимальный уровень доступа для данного функционала, даже если посетитель авторизовался, но у него уровень 1, то он не будет иметь доступа к данному функционалу и получит 403 ошибку
|
||||
|
||||
Помимо этого, указанная функция возвращает уровень доступа текущего пользователя, что позволяет кастомизировать меню, скрывать запрещенные пункты итд...
|
||||
|
||||
Если пользователь не авторизован, то он получит форму для ввода логина и пароля, дальнейшее выполнение скрипта остановится.
|
||||
Reference in New Issue
Block a user