Кабинет SiteManager. Распределение прав доступа

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

Есть некое право, например hr.manage - это возможность управлять некими данными в HR блоке.  Право соотносится с должностями в отделах. 

В коде компонентов подписистемы HR проверяется наличие этого права у текущего пользователя. 

Если ли право или нет у пользователя - это опредеяется на основе комбинации отделов и должностей пользователя. Если у должности или отдела в целом есть указанное право, то пользователь будет допущен к выполнению операции. 

Сами права создаются на /rights

Здесь видно, что право hr manage доступно должности HR-специлист в департаменте HR. 

Если пользователь имеет такую должность в этом отделе, то он сможет управлять HR. 

Колонка в меню позволяет задать пункт в меню пользователя. Указывается порядок, текст, код страницы для перехода и иконка Font Awesome. 

Примечание. Просто так создавать право нет смысла - оно должно быть задействовано для проверок в каких-то модулях или страницах. 

В коде проверка выполняется через функцию dbo.cm_hasRight примерно так: 

if(dbo.cm_hasRight(@username, 'hr','manage')=0) begin 
            select 1 where 1=0 
        select 0
        select 'Нет доступа' EmptyText
        return 
end