HasAccess(Subject: ISecuritySubject; DesiredAccess: Integer): Boolean;
Subject. Субъект безопасности, для которого осуществляется проверка наличия прав на определенные операции над объектом.
DesiredAccess. Маска, определяющая операции, наличие прав на которые, необходимо проверить для субъекта безопасности Subject. Для формирования значения маски необходимо использовать значения перечислимого типа MetabaseObjectPredefinedRights. В этом перечислении содержатся основные и дополнительные операции, на которые можно раздавать права и вести аудит доступа. Для определенных классов объектов доступны специфические операции. Для использования специфических операций, в зависимости от класса объекта, в маске можно использовать значения следующих перечислений:
CalculatedCubeSpecificRights - специфические операции, доступные для вычисляемых кубов.
CubeLoaderSpecificRights - специфические операции, доступные для загрузчика данных в куб.
CubeSpecificRights - специфические операции, доступные для различных видов кубов.
CustomObjectSpecificRights - специфические операции, доступные для объектов пользовательских классов.
DataBaseSpecificRights - специфические операции, доступные для объекта репозитория - База данных.
DictionarySpecificRights - специфические операции, доступные для объектов репозитория - Справочник НСИ и Составной справочник НСИ.
MDCalcSpecificRights - специфические операции, доступные для объекта репозитория - Многомерный расчет на сервере БД.
ProblemSpecificRights - специфические операции, доступные для объекта контейнера моделирования - Задача моделирования.
ProcedureSpecificRights - специфические операции, доступные для объекта репозитория - Процедура.
ScenarioDimensionSpecificRights - специфические операции, доступные для объекта репозитория - Сценарий моделирования.
TableSpecificRights - специфические операции, доступные для следующих объектов репозитория - Таблица, Представление, Журнал, Присоединенная таблица.
ValidationSpecificRights - специфические операции, доступные для объекта репозитория - Правило валидации и Группа валидаций.
Метод HasAccess осуществляет проверку и возвращает признак наличия прав у субъекта безопасности произвести указанные действия над текущим объектом.
Метод возвращает значение True, если субъект безопасности Subject может произвести все операции, указанные в маске DesiredAccess.
Для выполнения примера предполагается наличие в репозитории объекта с идентификатором "Obj_1". Среди субъектов безопасности, созданных в менеджере безопасности текущего репозитория, имеется пользователь «TestUser».
Sub UserProc;
Var
MB: IMetabase;
MDesc: IMetabaseObjectDescriptor;
SecDesc: ISecurityDescriptor;
Subj: ISecuritySubject;
b: Boolean;
Begin
MB := MetabaseClass.Active;
Subj := MB.Security.ResolveName("TestUser");
MDesc := MB.ItemById("Obj_1");
SecDesc := MDesc.SecurityDescriptor;
b := SecDesc.HasAccess(Subj, MetabaseObjectPredefinedRights.Delete);
End Sub UserProc;
После выполнения примера в переменной «b» будет содержаться признак возможности у пользователя «TestUser» удалить указанный объект.
См. также: