[tools] testbot/web: Simplify the users deletion code.
Francois Gouget
fgouget at codeweavers.com
Wed Mar 2 10:05:49 CST 2022
Use CollectionPage's per-item action methods.
Also make sure the actions report all failures.
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
testbot/web/admin/UsersList.pl | 37 +++++++++++-----------------------
1 file changed, 12 insertions(+), 25 deletions(-)
diff --git a/testbot/web/admin/UsersList.pl b/testbot/web/admin/UsersList.pl
index 2799070413..3621702a4b 100644
--- a/testbot/web/admin/UsersList.pl
+++ b/testbot/web/admin/UsersList.pl
@@ -102,43 +102,30 @@ sub GenerateDataCell($$$$$)
}
}
-sub GetActions($$)
+sub GetItemActions($$)
{
my ($self, $CollectionBlock) = @_;
- if (defined($LDAPServer))
- {
- # LDAP accounts cannot be deleted
- return [];
- }
-
- return $self->SUPER::GetActions($CollectionBlock);
+ # LDAP accounts cannot be deleted
+ return defined $LDAPServer ? [] : ["Delete"];
}
-sub OnAction($$$)
+sub OnItemAction($$$$)
{
- my ($self, $CollectionBlock, $Action) = @_;
+ my ($self, $CollectionBlock, $Item, $Action) = @_;
if ($Action eq "Delete")
{
- foreach my $UserName (@{$self->{Collection}->GetKeys()})
- {
- next if (!defined $self->GetParam($CollectionBlock->SelName($UserName)));
- my $User = $self->{Collection}->GetItem($UserName);
- $User->Status('deleted');
- my ($ErrProperty, $ErrMessage) = $User->Save();
- if (defined $ErrMessage)
- {
- $self->{ErrMessage} = $ErrMessage;
- return !1;
- }
- # Forcefully log out that user by deleting his web sessions
- DeleteSessions($User);
- }
+ $Item->Status('deleted');
+ (my $ErrProperty, $self->{ErrMessage}) = $Item->Save();
+ return 0 if (defined $self->{ErrMessage});
+
+ # Forcefully log out that user by deleting the web sessions
+ DeleteSessions($Item);
return 1;
}
- return $self->SUPER::OnAction($CollectionBlock, $Action);
+ return $self->SUPER::OnItemAction($CollectionBlock, $Item, $Action);
}
--
2.30.2
More information about the wine-devel
mailing list