Управление доступом

Управление доступом позволяет наделять игроков, которые не являются администраторами, дополнительными правами:

  • задания — предоставляет возможность создавать и проверять задания с вознаграждением для тех игроков, роль которых в системе ниже вашей;

  • квесты:

    • играть — предоставляет возможность проходить квесты только в качестве игрока;

    • управлять — предоставляет возможность создавать новые квесты и управлять ими (редактировать и удалять);

    • проверять — предоставляет возможность проверять задания квеста, по которым игрок назначен ответственным;

  • формы — предоставляет возможность обрабатывать заявки;

  • лог событий — предоставляет возможность просматривать лог событий;

  • программы обучения — предоставляет возможность создавать и управлять программами обучения для сотрудников:

    • составлять тесты для контроля знаний в процессе обучения и перехода на следующий уровень сложности;

    • создание уровней сложности владения профессией (новичок, стандарт, профи);

    • назначение профессий, по которым компания планирует проводить обучение;

  • база знаний — предоставляет возможность создавать обучающие материалы. 

Права можно назначать следующим категориям (классам):

  • отделы — класс с наименьшим приоритетом;

  • команды — класс, который приоритетнее, чем отделы;

  • роли — класс, который приоритетнее, чем команды;

  • пользователи (игроки) — класс, который имеет наивысший приоритет;

Управление доступом осуществляется одним из следующих способов:

  • белый фон кнопки — наследует (перенимает) цвет фона кнопки от класса с приоритетом ниже, а для класса с наименьшим приоритетом (отделы) — запрещает пользование правом;

  • зеленый фон кнопки — разрешает пользование правом;

  • красный фон кнопки — запрещает пользование правом. 

Пример 

Классы Право 1(создание заданий) Право 2 (просмотр лога событий)
Отдел (программисты) Зеленый фон Зеленый фон
Команда (технари) Белый фон Белый фон
Роль (сотрудник) Белый фон Красный фон
Игрок (Дмитрий) Белый фон Белый фон
Итог: доступ к праву Доступ разрешен Доступ запрещен
 

Приоритет работает следующим образом. Возьмем для примера Дмитрия Ростова (игрок), который является сотрудником (роль) отдела «Программисты» (отдел) и состоит в команде «Технари» (команда). Цвета кнопок для классов указаны в таблице в колонке «Право 1(создание заданий)». 

Определять итоговый доступ к праву нужно начинать с класса, который имеет наивысший приоритет — с профиля игрока. У Дмитрия «Создание заданий» имеет белый фон, т.е. перенимает цвет кнопки у класса с приоритетом ниже — у роли. У роли «Сотрудник» тоже стоит кнопка с белым фоном, т.е. роль перенимает цвет кнопки у класса с приоритетом ниже — у команды. У команды «Технари» тоже стоит кнопка с белым фоном, т.е. команда перенимает цвет кнопки у класса с приоритетом ниже — у отдела. Отдел «Программисты» имеет зеленый фон кнопки, т.е. для этого отдела разрешено создавать задания, следовательно Дмитрий также имеет это право. 

Если бы у отдела «Программисты» кнопка была с красным или белым фоном, то Дмитрий не имел бы право на создание заданий (красный фон запрещает пользование правом и белый фон в данном случае тоже запрещает, потому что стоит у класса с наименьшим приоритетом). 

Если бы у команды «Технари» кнопка имела бы красный фон, а у отдела «Программисты» зеленый, то Дмитрий не имел бы право на создание заданий, потому что класс «Игрок» наследует белый фон от класса «Роль», а класс «Роль» наследует от команды красный, тем самым запрещая право на создание заданий независимо от того, что отдел имеет кнопку с зеленым фоном (команды имеют приоритет над отделами). 

Рассмотрим еще для примера имеет ли Дмитрий доступ к праву «Просмотр лога игры» (колонка № 3 в таблице). Всегда начинаем с класса, который имеет наивысший приоритет — с профиля игрока. У Дмитрия «Создание заданий» имеет белый фон, т.е. перенимает цвет кнопки у класса с приоритетом ниже — у роли. У роли «Сотрудник» кнопка имеет красный фон, т.е. запрещает пользование правом. Значит Дмитрий также не может просматривать лог игры. Цвета кнопок для команд и отделов в этом случае не имеют значения, так как класс роли приоритетнее, чем классы команд и отделов.