IUserProfiles.Add

Синтаксис

Add(User: IMetabaseUser): IUserProfile;

Add(User: Prognoz.Platform.Interop.Metabase.IMetabaseUser): Prognoz.Platform.Interop.Metabase.IUserProfile;

Параметры

User. Пользователь, профиль которого необходимо включить в коллекцию.

Описание

Метод Add добавляет профиль указанного пользователя в коллекцию.

Комментарии

Профили пользователей добавляются в соответствующее коллекции автоматически при первом обращении к свойству IMetabaseUser.Profile.

Добавление профилей доступно только в коллекцию профилей репозитория, полученную в свойстве IMetabase.Profiles. Изменять коллекцию может только администратор репозитория. Метод Add актуально использовать для добавления профилей пользователей, которые только что созданы в менеджере безопасности репозитория.

Пример

Для выполнения примера добавьте ссылки на системные сборки: Metabase, ForeSystem (для примера на Fore.NET).

Sub UserProc;
Var
    MB: IMetabase;
    Sec: IMetabaseSecurity;
    User: IMetabaseUser;
    Data: ISecurityPackageUserData;
    PS: IPasswordCredentials;
    Profs: IUserProfiles;
    Prof: IUserProfile;
    Lic: Object;
Begin
    MB := MetabaseClass.Active;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
    Sec := MB.Security;
    
// Создадим пользователя
    User := Sec.AddUser("TestUser");
    User.FullName := 
"Тестовый пользователь";
    Sec.Policy.Privilege(
"ВХОД").Grant(User);
    Sec.Policy.Privilege(
"ЧТЕНИЕ").Grant(User);
    Data := User.PackageData;
    PS := Data.Credentials 
As IPasswordCredentials;
    PS.Password := 
"Password";
    User.MustChangePasswordAtNextLogon := 
True;
    
// Сохраним изменения
    Sec.Apply;
    
// Освободим лицензию
    Lic := Null;
    
// Добавим учётную запись пользователя в коллекцию профилей репозитория
    Profs := MB.Profiles;
    Prof := Profs.Add(User);
    Prof := Prof.Edit;
    Prof.Email := User.Name + 
"@example.ru";
    Prof.Apply;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeSystem;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Sec: IMetabaseSecurity;
    User: IMetabaseUser;
    Data: ISecurityPackageUserData;
    PS: IPasswordCredentials;
    Profs: IUserProfiles;
    Prof: IUserProfile;
    Lic: Object;
Begin
    MB := Params.Metabase;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
    Sec := MB.Security;
    
// Создадим пользователя
    User := Sec.AddUser("TestUser");
    User.FullName := 
"Тестовый пользователь";
    Sec.Policy.Privilege[
"ВХОД"].Grant(User);
    Sec.Policy.Privilege[
"ЧТЕНИЕ"].Grant(User);
    Data := User.PackageData;
    PS := Data.Credentials 
As IPasswordCredentials;
    PS.Password := 
"Password";
    User.MustChangePasswordAtNextLogon := 
True;
    
// Сохраним изменения
    Sec.Apply();
    
// Освободим лицензию
    Lic := Null;
    
// Добавим учётную запись пользователя в коллекцию профилей репозитория
    Profs := MB.Profiles;
    Prof := Profs.Add(User);
    Prof := Prof.Edit();
    Prof.Email := User.Name + 
"@example.ru";
    Prof.Apply();
End Sub;

После выполнения примера будет создан новый пользователь репозитория. Для пользователя будут розданы привилегии и указаны учетные данные. Также профиль пользователя будет добавлен в коллекцию профилей репозитория. В настройках профиля будет указана электронная почта по умолчанию.

См. также:

IUserProfiles