GetDeniedAccess(Subject: ISecuritySubject; DesiredAccess: Integer): Integer;
Subject. Субъект безопасности, для которого проверяется наличие установленных запретов.
DesiredAccess. Желаемая маска доступа, относительно которой вычисляются установленные запреты.
Метод GetDeniedAccess для указанного субъекта безопасности проверяет наличие установленных запретов выполнения действий над текущим объектом.
Метод вычисляет запреты относительно желаемой маски доступа. Значение маски в параметре DesiredAccess является 4-x байтовым двоичным числом, приведённым к десятичному виду. Для формирования значения маски необходимо использовать значения перечислимого типа MetabaseObjectPredefinedRights. В этом перечислении содержатся основные и дополнительные операции, на которые можно раздавать права и вести аудит доступа. Для определенных классов объектов доступны специфические операции. Для использования специфических операций, в зависимости от класса объекта, в маске можно использовать значения следующих перечислений:
CalculatedCubeSpecificRights - специфические операции, доступные для вычисляемых кубов.
CubeLoaderSpecificRights - специфические операции, доступные для загрузчика данных в куб.
CubeSpecificRights - специфические операции, доступные для различных видов кубов.
CustomObjectSpecificRights - специфические операции, доступные для объектов пользовательских классов.
DataBaseSpecificRights - специфические операции, доступные для объекта репозитория - База данных.
DictionarySpecificRights - специфические операции, доступные для объектов репозитория - Справочник НСИ и Составной справочник НСИ.
MDCalcSpecificRights - специфические операции, доступные для объекта репозитория - Многомерный расчет на сервере БД.
ProblemSpecificRights - специфические операции, доступные для объекта контейнера моделирования - Задача моделирования.
ProcedureSpecificRights - специфические операции, доступные для объекта репозитория - Процедура.
ScenarioDimensionSpecificRights - специфические операции, доступные для объекта репозитория - Сценарий моделирования.
TableSpecificRights - специфические операции, доступные для следующих объектов репозитория - Таблица, Представление, Журнал, Присоединенная таблица.
ValidationSpecificRights - специфические операции, доступные для объекта репозитория - Правило валидации и Группа валидаций.
Результатом выполнения метода будет маска запретов, также сформированная из элементов указанных выше перечислений.
Для выполнения примера в репозитории предполагается наличие куба с идентификатором STD_CUBE.
Добавьте ссылки на системные сборки: Metabase.
Sub UserProc;
Var
Mb: IMetabase;
Subject: ISecuritySubject;
SDesc: ISecurityDescriptor;
Begin
Mb := MetabaseClass.Active;
Subject := Mb.LogonSession.User;
SDesc := Mb.ItemById("STD_CUBE").SecurityDescriptor;
Debug.WriteLine(SDesc.GetDeniedAccess(Subject, MetabaseObjectPredefinedRights.All));
End Sub UserProc;
При выполнении примера для текущего пользователя будут вычислены запреты, установленные на куб. Запреты вычисляются относительно максимально возможного доступа.
См. также: