|
12 | 12 | - Отдельное разрешение присваивается одной или нескольким ролям.
|
13 | 13 | - Если пользователь аутентифицирован, система получает его роль, получает разрешения которые есть у этой роли и проверяет - есть ли в этом списке разрешение, которое необходимо для выполнения действий.
|
14 | 14 |
|
15 |
| -## Миграции |
| 15 | +Изначально в системе есть только две роли: |
16 | 16 |
|
17 |
| -Роли и разрешения добавляются в базу через миграции. Если необходимо добавить новую запись, нужно сделать это через новую миграцию. |
| 17 | +- `user` - имеет минимальные пользовательские права |
| 18 | +- `superuser` - имеет все права системы |
18 | 19 |
|
19 |
| -## Список груп |
| 20 | +Их нельзя удалить, им нельзя изменить имя. Даже имея все права системы. |
20 | 21 |
|
21 |
| -Все пользователи групируются по следующим ролям: |
| 22 | +По умолчанию, каждому пользователю при создании роли выдаеться минимальные пользовательские права. |
| 23 | + |
| 24 | +## Дополнительные роли |
| 25 | + |
| 26 | +В систему добавляеться новые роли: |
22 | 27 |
|
23 |
| -- `user` - аутентифицированный пользователь системы |
24 | 28 | - `user_frozen` - аутентифицированный пользователь системы, который был заморожен
|
25 | 29 | - `user_blocked` - аутентифицированный пользователь системы, который был заблокирован
|
26 | 30 | - `admin` - администратор системы у которого расширенный список разрешений
|
27 |
| -- `super-admin` - главный администартор у которого есть все разрешения |
28 | 31 |
|
29 |
| -## Список разрешений |
| 32 | +## Роли и разрешеня в системе |
| 33 | + |
| 34 | +Основная проблема с ролями и разрешениями в том, что их **приходиться прописывать хардкорно** и одновременно **оставить изменяемыми** сразу в нескольких местах системы (разработка и тестирование) и в разных пакетах системы (основное приложение, приложение для миграции и т.д.). |
30 | 35 |
|
31 |
| -Все разрешения прописаны в исходном коде и только там. Пример разрешений: |
| 36 | +В любой системе должны быть прописаны: |
| 37 | +- Список основных, не удаляемых ролей |
| 38 | +- Список разрешений |
32 | 39 |
|
33 |
| -- `add new lot` - добавить новый лот в систему |
| 40 | +Ограничения: |
| 41 | +- Добавление разрешений в базу производится перед обновлением приложений |
| 42 | +- Удаление разрешений из базы производится после обновления приложения |
| 43 | +- Удаление или добавление новых основных ролей в систему не производяться |
0 commit comments