Module: tools Branch: master Commit: eb3a8541027bbec95f2e1dd3b86616fcb9c3e021 URL: https://source.winehq.org/git/tools.git/?a=commit;h=eb3a8541027bbec95f2e1dd3...
Author: Francois Gouget fgouget@codeweavers.com Date: Mon Apr 18 10:32:52 2022 +0200
testbot: Add User::AddRole().
This simplifies adding a role to a user, particularly with regards to making sure the user's Roles collection is up to date.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
testbot/lib/WineTestBot/Users.pm | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/testbot/lib/WineTestBot/Users.pm b/testbot/lib/WineTestBot/Users.pm index bd9cf35..f2f2a19 100644 --- a/testbot/lib/WineTestBot/Users.pm +++ b/testbot/lib/WineTestBot/Users.pm @@ -106,22 +106,25 @@ sub GenerateResetCode($) } }
+sub AddRole($$) +{ + my ($self, $Role) = @_; + + my $UserRole = $self->Roles->Add(); + my $OldKey = $UserRole->GetKey(); + $UserRole->Role($Role); + $self->Roles->KeyChanged($OldKey, $Role->GetKey()); +} + sub AddDefaultRoles($) { my ($self) = @_;
- my $UserRoles = $self->Roles; my $DefaultRoles = CreateRoles(); $DefaultRoles->AddFilter("IsDefaultRole", [1]); - foreach my $RoleKey (@{$DefaultRoles->GetKeys()}) + foreach my $Role (@{$DefaultRoles->GetItems()}) { - if (! defined($UserRoles->GetItem($RoleKey))) - { - my $NewRole = $UserRoles->Add(); - my $OldKey = $NewRole->GetKey(); - $NewRole->Role($DefaultRoles->GetItem($RoleKey)); - $UserRoles->KeyChanged($OldKey, $RoleKey); - } + $self->AddRole($Role) if (!$self->Roles->GetItem($Role->Name)); } }