> В системе LE предусмотрены уровни доступа, эти уровни могут задаваться на уровне всего пространства (например админка или личный кабинет) и на уровне кокнкретных модулей, например простой менеджер не может добавлять администраторов сайта, а директор может.
## Хранение
Все аккаунты хранятся в таблице `sys_accounts`
Поле | Тип | Описание
----- | ----- | ---------
id | int 12 |
login | varchar 200| Логин для авторизации
level | int 2 | уровень привелегий
password | varchar 32 | пароль в формате md5, позже вероятно можно перейти на sha-256
name | varchar 250 |Имя для отображения на сайте|
data | JSON |Любые произвольные, обычно анкетные данные, например адрес, этаж, код от домофона, ссылка на соц сеть...
```sql
CREATE TABLE `sys__accounts` (
`id` int(12) NOT NULL,
`login` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`level` int(2) NOT NULL DEFAULT 0,
`password` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`name` varchar(250) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`data` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `sys__accounts`
ADD PRIMARY KEY (`id`);
ALTER TABLE `sys__accounts`
MODIFY `id` int(12) NOT NULL AUTO_INCREMENT;
## Включение контроля доступа
Контроль доступа можно включить как на уровне всего пространства (например админка), так и на уровне конкретного модуля, для этого в начале файла достаточно добавить
```php
$user_lev = LE::$ALC->set_lev(2);
```
Где 2 - это минимальный уровень доступа для данного функционала, даже если посетитель авторизовался, но у него уровень 1, то он не будет иметь доступа к данному функционалу и получит 403 ошибку
Помимо этого, указанная функция возвращает уровень доступа текущего пользователя, что позволяет кастомизировать меню, скрывать запрещенные пункты итд...
Если пользователь не авторизован, то он получит форму для ввода логина и пароля, дальнейшее выполнение скрипта остановится.
## Уровни доступа
В конкретном приложении можно придумать свои уровни, но на стандартном решени будут вот такие уровни
@ -49,16 +31,34 @@ ALTER TABLE `sys__accounts`
5 | Директор |
6 | Администратор |
## Включение контроля доступа
Контроль доступа можно включить как на уровне всего пространства (например админка), так и на уровне конкретного модуля, для этого в начале файла достаточно добавить
## Хранение в БД
Все аккаунты хранятся в таблице `sys_accounts`:
```php
$user_lev = LE::$ALC->set_lev(2);
```
Где 2 - это минимальный уровень доступа для данного функционала, даже если посетитель авторизовался, но у него уровень 1, то он не будет иметь доступа к данному функционалу и получит 403 ошибку
Помимо этого, указанная функция возвращает уровень доступа текущего пользователя, что позволяет кастомизировать меню, скрывать запрещенные пункты итд...
Поле | Тип | Описание
----- | ----- | ---------
id | int (12) |
login | varchar (200)| Логин для авторизации
level | int (2) | уровень привелегий
password | varchar (32) | пароль в формате md5, позже вероятно можно перейти на sha-256
name | varchar (250) |Имя для отображения на сайте|
data | JSON |Любые произвольные, обычно анкетные данные, например адрес, этаж, код от домофона, ссылка на соц сеть...
Если пользователь не авторизован, то он получит форму для ввода логина и пароля, дальнейшее выполнение скрипта остановится.
```sql
CREATE TABLE `sys__accounts` (
`id` int(12) NOT NULL,
`login` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`level` int(2) NOT NULL DEFAULT 0,
`password` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`name` varchar(250) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`data` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL