[tools] testbot: Add User::AddRole().

Francois Gouget fgouget at codeweavers.com
Mon Apr 18 03:32:52 CDT 2022


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 at codeweavers.com>
---
 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 bd9cf358b..f2f2a199d 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));
   }
 }
 
-- 
2.30.2



More information about the wine-devel mailing list