GetEffectiveRights: Integer;
Метод GetEffectiveRights возвращает эффективные права текущего пользователя на показатель.
Эффективные права включают в себя все операции, на которые для пользователя установлено явное разрешение. Значение, возвращаемое данным методом, представляет из себя маску доступа. Значение маски является 8-ми байтовым двоичным числом, приведенным в десятичную форму. Для проверки значения маски необходимо использовать значения перечислимого типа MetabaseObjectPredefinedRights в комбинации с CubeSpecificRights. Для разбора значения маски необходимо реализовать пользовательскую функцию, которая позволит сопоставить отдельные биты маски соответствующим значениям перечислений. Пример работы с маской доступа представлен в разделе Примеры: Работа с маской доступа. При раздаче прав на показатель используются соответствующие операции Read и Write.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «OBJ_RUBRICATOR». В данной базе должны быть определены сегменты и присутствовать показатель с ключом «89817».
Sub Main;
Var
mb: IMetabase;
rubInst: IRubricatorInstance;
Rub: IRubricator;
Fac: IRubricatorFactor;
Begin
mb := MetabaseClass.Active;
Rub := mb.ItemById("OBJ_RUBRICATOR").Bind As IRubricator;
rubInst := (Rub As IMetabaseObjectDescriptor).Open(Null) As IRubricatorInstance;
Fac := rubInst.GetFactData(89817).Factor;
Debug.WriteLine(Fac.GetEffectiveRights);
End Sub Main;
После выполнения примера в окно консоли будут выведены эффективные права текущего пользователя на показатель с ключом «89817». Права будут представлены в десятичном виде.
См. также: