Проверка прав доступа в процессорах

Разрабатывая компонент для работы с сотрудниками, столкнулся с вопросом разграничения прав доступа к одним и тем же действиям разными сотрудниками.

Ситуация:
  • есть 4 типа сотрудников — бармен, администратор, старший администратор, директор
  • Ничего не может сделать только бармен, его не рассматриваем.
  • Сотрудники должны иметь возможность менять пароль, личные данные, статус (работает / не работает)
  • Сотрудник может изменить только нижестоящего сотрудника. Администратор не может изменить пароль или статус старшему и директору.
В описанной ситуации простая установка и проверка права «worker_change_status» не подойдет, ибо это право однозначно и не учитывает иерархию.

Подскажите, как правильно решить и настроить проверку прав?
Воеводский Михаил
22 апреля 2015, 08:42
modx.pro
1 093
0

Комментарии: 1

Воеводский Михаил
22 апреля 2015, 12:01
0
Еще момент — каждая группа сотрудников, естественно, является отдельной группой пользователей.

Если чуть упростить схему, то получается:
1. Бармена могут отредактировать администраторы, старшие администраторы, директор
2. Администратора могут отредактировать старшие администраторы, директор
3. Старшего администратора может отредактировать директор

НО! Право на изменение пароля, например, одно во всех случаях и его проверки недостаточно.

    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1