HasAccess(AccessMask: Integer): Boolean;
HasAccess(AccessMask: integer): boolean;
AccessMask. Маска, определяющая операции, наличие прав на которые, необходимо проверить для текущего пользователя. Для формирования значения маски необходимо использовать значения перечислимого типа MetabaseObjectPredefinedRights. В этом перечислении содержатся основные и дополнительные операции, на которые можно раздавать права и вести аудит доступа. Для определенных классов объектов доступны специфические операции. Для использования специфических операций, в зависимости от класса объекта, в маске можно использовать значения следующих перечислений:
CalculatedCubeSpecificRights - специфические операции, доступные для вычисляемых кубов;
CubeLoaderSpecificRights - специфические операции, доступные для загрузчика данных в куб;
CubeSpecificRights - специфические операции, доступные для различных видов кубов;
CustomObjectSpecificRights - специфические операции, доступные для объектов пользовательских классов;
DataBaseSpecificRights - специфические операции, доступные для объекта репозитория - База данных;
DictionarySpecificRights - специфические операции, доступные для объектов репозитория - Справочник НСИ и Составной справочник НСИ;
MDCalcSpecificRights - специфические операции, доступные для объекта репозитория - Многомерный расчет на сервере БД;
ScenarioDimensionSpecificRights - специфические операции, доступные для объекта репозитория - Сценарий моделирования;
ProblemSpecificRights - специфические операции, доступные для объекта контейнера моделирования - Задача моделирования;
ProcedureSpecificRights - специфические операции, доступные для объекта репозитория - Процедура;
TableSpecificRights - специфические операции, доступные для следующих объектов репозитория - Таблица, Представление, Журнал, Присоединенная таблица;
ValidationSpecificRights - специфические операции, доступные для объекта репозитория - Правило валидации и Группа валидаций.
Метод HasAccess осуществляет проверку наличия прав у текущего пользователя на определенные операции над объектом.
Операции, наличие прав на которые, необходимо проверить, передаются посредством параметра AccessMask. Если у текущего пользователя присутствуют права на все указанные операции, то метод возвращает значение True, иначе - False.
Для выполнения примера предполагается наличие в репозитории объекта с идентификатором «ObjTest».
Добавьте ссылку на системную сборку Metabase.
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObjectDescriptor;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemById("ObjTest");
Debug.WriteLine(MObj.HasAccess(
MetabaseObjectPredefinedRights.ExportData Or
MetabaseObjectPredefinedRights.ImportData));
End Sub UserProc;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MObj: IMetabaseObjectDescriptor;
Begin
MB := Params.Metabase;
MObj := MB.ItemById["ObjTest"];
System.Diagnostics.Debug.WriteLine(MObj.HasAccess(
MetabaseObjectPredefinedRights.moprExportData As Integer Or
MetabaseObjectPredefinedRights.moprImportData As Integer));
End Sub;
End Class;
После выполнения примера в консоль среды разработки будет выведен признак наличия прав у текущего пользователя на экспорт и импорт данных объекта с идентификатором «ObjTest».
См. также: