CheckAndAudit(Operation: Integer; Comment: String): Decimal;
CheckAndAudit(Operation: integer; Comment: string): decimal;
Operation. Маска, определяющая операции, наличие прав на которые необходимо проверить для текущего пользователя. Для формирования значения маски необходимо использовать значения перечисления типа MetabaseObjectPredefinedRights. В этом перечислении содержатся основные и дополнительные операции, на которые можно раздавать права и вести аудит доступа. Для определенных классов объектов доступны специфические операции. Для использования специфических операций, в зависимости от класса объекта, в маске можно использовать значения следующих перечислений:
CalculatedCubeSpecificRights - специфические операции, доступные для вычисляемых кубов;
CubeLoaderSpecificRights - специфические операции, доступные для загрузчика данных в куб;
CubeSpecificRights - специфические операции, доступные для различных видов кубов;
CustomObjectSpecificRights - специфические операции, доступные для объектов пользовательских классов;
DataBaseSpecificRights - специфические операции, доступные для объекта репозитория «База данных»;
DictionarySpecificRights - специфические операции, доступные для объектов репозитория «Справочник НСИ» и «Составной справочник НСИ»;
MDCalcSpecificRights - специфические операции, доступные для объекта репозитория «Многомерный расчет на сервере БД»;
ProblemSpecificRights - специфические операции, доступные для объекта контейнера моделирования «Задача моделирования»;
ProcedureSpecificRights - специфические операции, доступные для объекта репозитория «Процедура»;
ScenarioDimensionSpecificRights - специфические операции, доступные для объекта репозитория «Сценарий моделирования»;
TableSpecificRights - специфические операции, доступные для следующих объектов репозитория «Таблица», «Представление», «Журнал», «Присоединенная таблица»;
ValidationSpecificRights - специфические операции, доступные для объекта репозитория «Правило валидации» и «Группа валидаций».
Comment. Комментарий, который заносится в протокол доступа.
Метод CheckAndAudit проверяет права доступа текущего пользователя на указанные операции и заносит запись в протокол доступа с указанным комментарием.
Если у текущего пользователя отсутствуют права хотя бы на одну из проверяемых операций, то в протокол доступа будет занесена запись с неуспешным результатом и будет сгенерирована исключительная ситуация.
Метод возвращает уникальный ключ записи, который вместе с записью заносится в протокол доступа.
Если необходимо проверить права доступа на операцию пользовательского класса, то используйте метод IMetabaseCustomObject.CheckAndAudit.
Для выполнения примера предполагается наличие в репозитории объекта с идентификатором «Obj_1111».
Добавьте ссылку на системную сборку Metabase.
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObjectDescriptor;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemById("Obj_1111");
MObj.CheckAndAudit(
MetabaseObjectPredefinedRights.Delete Or
MetabaseObjectPredefinedRights.Access,
"Проверка наличия прав у текущего пользователя на операции Удаление и Изменение прав" );
End Sub UserProc;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MObj: IMetabaseObjectDescriptor;
Begin
MB := Params.Metabase;
MObj := MB.ItemById["Obj_1111"];
MObj.CheckAndAudit(
MetabaseObjectPredefinedRights.moprDelete As Integer Or
MetabaseObjectPredefinedRights.moprAccess As Integer,
"Проверка наличия прав у текущего пользователя на операции Удаление и Изменение прав" );
End Sub;
После выполнения примера будет осуществлена проверка наличия прав у текущего пользователя на удаление и изменение прав доступа объекта «Obj_1111». В протокол доступа будет добавлена соответствующая запись.
См. также: