Ну смысл-то объединять группы пользователей в одну - есть. Например в случае реорганизации групп прав. Наплодили и захотели структурировать или перегруппировать. Конечно - это нерегулярная задача - однако вполне реальная.
Соответственно - и объединить права в одну группу - дело возможное. Правда парой строчек кода здесь не обойтись.
Собсно идея/алгоритм объединения.
1. Берем 3 группы: одну новую (№3) и две старые (№1 и №2) (для простоты подразумеваем что домен один).
2. Берем таблички AccessRightsList, SysSecurityFormTable, SysSecurityFormControlTable (предполагаю, что RLS либо не используется, либо объединяться будет вручную).
3. Копируем записи, у которых стоит группа №1 в записи у которых стоит группа №3.
4. Копируем записи, у которых стоит группа №2 в записи у которых стоит группа №3 с проверкой - если такая запись уже существует с тем же или большем уровнем доступа - то не копируем. Если же доступ есть, но меньший - то увеличиваем доступ.
5. Не забываем перечитать права (класс SysSecurityUserGroup, метод load)
__________________
Возможно сделать все. Вопрос времени
|