ItemSetup(Index: Integer): IMetabaseSecuritySubjectUpdateSetup;
ItemSetup(Index: Integer): Prognoz.Platform.Interop.Metabase.IMetabaseSecuritySubjectUpdateSetup;
Index. Индекс пользователя в списке обновления.
Свойство ItemSetup возвращает настройки обновления субъекта безопасности.
Для выполнения примера подключите к модулю системную сборку Metabase.
Sub UserProc;
Var
Sec: IMetabaseSecurity;
Users: IMetabaseUsers;
User: IMetabaseUser;
i: Integer;
UsUpdate: IMetabaseUsersUpdate;
Subj: ISecuritySubject;
Begin
Sec := MetabaseClass.Active.Security;
Users := Sec.Users;
UsUpdate := Sec.CreateUsersUpdate;
For i := 0 To Users.Count - 1 Do
User := Users.Item(i);
UsUpdate.Add(User);
If User.Name = "NewUser" Then
UsUpdate.ItemSetup(i).UpdateType := MetabaseSecuritySubjectUpdateType.DBGrant;
End If;
End For;
For i := 0 To UsUpdate.Count - 1 Do
Subj := UsUpdate.ItemSetup(i).Subject;
Debug.Writeline(i.ToString + ". Name: " + Subj.Name);
End For;
Sec.UpdateUsers(UsUpdate);
End Sub UserProc;
После выполнения примера в окно консоли будет выведен список обновляемых пользователей. Если есть пользователь с наименованием "NewUser", то для него будет изменен способ обновления. Будут обновлены все пользователи репозитория.
Для выполнения примера предполагается наличие .NET-формы, расположенной на ней кнопки с наименование «Button1» и компонента ListBox с наименованием «ListBox1».
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
Sec: IMetabaseSecurity;
Users: IMetabaseUsers;
User: IMetabaseUser;
i: Integer;
UsUpdate: IMetabaseUsersUpdate;
Subj: ISecuritySubject;
Begin
Sec := Self.Metabase.Security;
Users := Sec.Users;
UsUpdate := Sec.CreateUsersUpdate();
For i := 0 To Users.Count - 1 Do
User := Users.Item[i];
UsUpdate.Add(User);
If User.Name = "NewUSER" Then
UsUpdate.ItemSetup[i].UpdateType := MetabaseSecuritySubjectUpdateType.mesesuuptyDBGrant;
End If;
End For;
For i := 0 To UsUpdate.Count - 1 Do
Subj := UsUpdate.ItemSetup[i].Subject;
ListBox1.Items.Add(i.ToString() + ". Name: " + Subj.Name);
End For;
Sec.UpdateUsers(UsUpdate);
End Sub;
При нажатии на кнопку будет выведен список обновляемых пользователей. Если есть пользователь с наименованием "NewUser", то для него будет изменен способ обновления. Будут обновлены все пользователи репозитория.
См. также: