IMetabaseObjectDescriptor.CheckAndAudit

Синтаксис

CheckAndAudit(Operation: Integer; Comment: String): Decimal;

CheckAndAudit(Operation: integer; Comment: string): decimal;

Параметры

Operation. Маска, определяющая операции, наличие прав на которые необходимо проверить для текущего пользователя. Для формирования значения маски необходимо использовать значения перечисления типа MetabaseObjectPredefinedRights. В этом перечислении содержатся основные и дополнительные операции, на которые можно раздавать права и вести аудит доступа. Для определенных классов объектов доступны специфические операции. Для использования специфических операций, в зависимости от класса объекта, в маске можно использовать значения следующих перечислений:

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». В протокол доступа будет добавлена соответствующая запись.

См. также:

IMetabaseObjectDescriptor