PredefinedPrivilege(Predefined: MetabasePolicyPredefinedPrivilege): IPrivilege;
Свойство PredefinedPrivilege возвращает параметры указанной привилегии.
Для выполнения примера добавьте ссылки на системные сборки: Metabase, ForeSystem (для примера на Fore.NET).
Sub UserProc;
Var
MB: IMetabase;
MS: IMetabaseSecurity;
Policy: IMetabasePolicy;
Priv: IPrivilege;
User: ISecuritySubject;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
Policy := MS.Policy;
// Добавим обладателя привилегии
Priv := Policy.PredefinedPrivilege(MetabasePolicyPredefinedPrivilege.ReadAnyObject);
User := MS.ResolveName("USER") As ISecuritySubject;
Priv.Grant(User);
// Сохраним изменения
MS.Apply;
// Освободим лицензию
Lic := Null;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeSystem;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MS: IMetabaseSecurity;
Policy: IMetabasePolicy;
Priv: IPrivilege;
User: ISecuritySubject;
Lic: Object;
Begin
MB := Params.Metabase;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
MS := MB.Security;
Policy := MS.Policy;
// Добавим обладателя привилегии
Priv := Policy.PredefinedPrivilege[MetabasePolicyPredefinedPrivilege.metpolprepriReadAnyObject];
User := MS.ResolveName("USER") As ISecuritySubject;
Priv.Grant(User);
// Сохраним изменения
MS.Apply();
// Освободим лицензию
Lic := Null;
End Sub;
После выполнения примера заданный пользователь USER станет обладателем привилегии «Право чтения и открытия всех объектов».
См. также: