Add(User: IMetabaseUser): IUserProfile;
Add(User: Prognoz.Platform.Interop.Metabase.IMetabaseUser): Prognoz.Platform.Interop.Metabase.IUserProfile;
User. Пользователь, профиль которого необходимо включить в коллекцию.
Метод Add добавляет профиль указанного пользователя в коллекцию.
Профили пользователей добавляются в соответствующее коллекции автоматически при первом обращении к свойству IMetabaseUser.Profile.
Добавление профилей доступно только в коллекцию профилей репозитория, полученную в свойстве IMetabase.Profiles. Изменять коллекцию может только администратор репозитория. Метод Add актуально использовать для добавления профилей пользователей, которые только что созданы в менеджере безопасности репозитория.
Указанный пример должен выполняться под администратором репозитория.
Sub UserProc;
Var
MB: IMetabase;
Sec: IMetabaseSecurity;
User: IMetabaseUser;
Data: ISecurityPackageUserData;
PS: IPasswordCredentials;
Profs: IUserProfiles;
Prof: IUserProfile;
Begin
MB := MetabaseClass.Active;
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;
//Добавление профиля пользователя в коллекцию профилей репозитория
Profs := MB.Profiles;
Prof := Profs.Add(User);
Prof := Prof.Edit;
Prof.Email := User.Name + "@example.ru";
Prof.Apply;
End Sub UserProc;
При выполнении примера будет создан новый пользователь репозитория. Для пользователя будут розданы привилегии и указаны учетные данные. Также профиль пользователя будет добавлен в коллекцию профилей репозитория. В настройках профиля будет указана электронная почта по умолчанию.
Указанная процедура является точкой входа для .NET-сборки. Пример должен выполняться под администратором репозитория.
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Sec: IMetabaseSecurity;
User: IMetabaseUser;
Data: ISecurityPackageUserData;
PS: IPasswordCredentials;
Profs: IUserProfiles;
Prof: IUserProfile;
Begin
MB := Params.Metabase;
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();
//Добавление профиля пользователя в коллекцию профилей репозитория
Profs := MB.Profiles;
Prof := Profs.Add(User);
Prof := Prof.Edit();
Prof.Email := User.Name + "@example.ru";
Prof.Apply();
End Sub;
При выполнении примера будет создан новый пользователь репозитория. Для пользователя будут розданы привилегии и указаны учетные данные. Также профиль пользователя будет добавлен в коллекцию профилей репозитория. В настройках профиля будет указана электронная почта по умолчанию.
См. также: