GetEffectiveRights(SecurityDescriptor: ISecurityDescriptor): Integer;
SecurityDescriptor. Параметры безопасности объекта репозитория.
Метод GetEffectiveRights возвращает значение, соответствующее эффективным правам доступа данного пользователя к объекту репозитория.
Эффективные права включают в себя все операции, на которые для пользователя установлено явное разрешение. Значение, возвращаемое данным методом, представляет собой маску доступа. Значение маски является 4-x байтовым двоичным числом, приведенным к десятичному виду. Для проверки значения маски необходимо использовать значения перечислимого типа MetabaseObjectPredefinedRights. В этом перечислении содержатся основные и дополнительные операции, на которые можно раздавать права. Для определенных классов объектов доступны специфические операции. Для проверки специфических операций, в зависимости от класса объекта, можно использовать значения следующих перечислений:
CalculatedCubeSpecificRights - специфические операции, доступные для вычисляемых кубов;
CubeLoaderSpecificRights - специфические операции, доступные для загрузчика данных в куб;
CubeSpecificRights - специфические операции, доступные для различных видов кубов;
CustomObjectSpecificRights - специфические операции, доступные для объектов пользовательских классов;
DataBaseSpecificRights - специфические операции, доступные для объекта репозитория - База данных;
DictionarySpecificRights - специфические операции, доступные для объектов репозитория - Справочник НСИ и Составной справочник НСИ;
MDCalcSpecificRights - специфические операции, доступные для объекта репозитория - Многомерный расчет на сервере БД;
ProblemSpecificRights - специфические операции, доступные для объекта контейнера моделирования - Задача моделирования;
ProcedureSpecificRights - специфические операции, доступные для объекта репозитория - Процедура;
TableSpecificRights - специфические операции, доступные для следующих объектов репозитория - Таблица, Представление, Журнал, Присоединенная таблица;
ValidationSpecificRights - специфические операции, доступные для объекта репозитория - Правило валидации и Группа валидаций;
Основные, дополнительные и специфические операции, доступные для определенных типов объектов, представлены в разделе Типы событий.
Для разбора значения маски необходимо реализовать пользовательскую функцию, которая позволит сопоставить отдельные биты маски соответствующим значениям перечислений. Пример работы с маской доступа представлен в разделе Примеры: Работа с маской доступа.
Для выполнения примера предполагается наличие в репозитории объекта с идентификатором «Obj_1». Среди субъектов безопасности, созданных в менеджере безопасности текущего репозитория, имеется пользователь «TestUser».
Sub Main;
Var
MB: IMetabase;
MDesc: IMetabaseObjectDescriptor;
User: IMetabaseUser;
i: Integer;
Begin
MB := MetabaseClass.Active;
User := MB.Security.ResolveName("TestUser") As IMetabaseUser;
MDesc := MB.ItemById("Obj_1");
i := User.GetEffectiveRights(MDesc.SecurityDescriptor);
Debug.WriteLine(i);
End Sub Main;
После выполнения примера в переменной «i» будет содержаться значение, соответствующее эффективным правам, которые розданы указанному пользователю на объект «Obj_1».
См. также: