diff options
Diffstat (limited to 'rt/webrt/Admin/Groups/Members.html')
-rw-r--r-- | rt/webrt/Admin/Groups/Members.html | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/rt/webrt/Admin/Groups/Members.html b/rt/webrt/Admin/Groups/Members.html new file mode 100644 index 000000000..4b0e0d04f --- /dev/null +++ b/rt/webrt/Admin/Groups/Members.html @@ -0,0 +1,76 @@ +<& /Admin/Elements/Header, Title => "RT/Admin/Edit the group ". $Group->Name &> +<& /Admin/Elements/GroupTabs, GroupObj => $Group &> +<& /Elements/ListActions, actions => \@results &> + + +<& /Elements/TitleBoxStart, title => 'Editing membership for group '.$Group->Name &> + +<FORM ACTION="<%$RT::WebPath%>/Admin/Groups/Members.html" METHOD=POST> +<INPUT TYPE=HIDDEN NAME=id VALUE="<%$Group->Id%>"> +<TABLE WIDTH="100%"> +<TR> +<TD> +Add members +</TD> +<TD> +Current members +</TD> +</TR> + +<TR> +<TD VALIGN=TOP> +<& /Admin/Elements/SelectUsers, Name => "AddMembers" &> +</TD> +<TD VALIGN=TOP> +% if ($Group->MembersObj->Count == 0 ) { +<i>(No members)</i> +% } else { +(Check box to delete group member) +<UL> +% while (my $member = $Group->MembersObj->Next()) { +<LI><INPUT TYPE=CHECKBOX Name="DeleteMember-<%$member->UserObj->id%>"> +<%$member->UserObj->Name%> (<%$member->UserObj->RealName%>) +% } +% } +</UL> +</TD> +</TR> +</TABLE> +<& /Elements/TitleBoxEnd &> +<& /Elements/Submit &> +</form> + + +<%INIT> + +my $Group = new RT::Group($session{'CurrentUser'}); +$Group->Load($id) || Abort('Could not load group'); + +my (@results); + +my $key; +foreach $key (keys %ARGS) { + +if ($key =~ /^DeleteMember-(\d+)$/) { + my $id = $1; + my ($val,$msg) = $Group->DeleteMember($id); + push (@results, $msg); +} +} + +# Make sure AddMembers is always an array +my @AddMembers = (ref $AddMembers eq 'ARRAY') ? @{$AddMembers} : ($AddMembers); + +foreach my $member (@AddMembers) { + next unless ($member); + my ($val, $msg) = $Group->AddMember($member); + push (@results, $msg); +} + + +</%INIT> + +<%ARGS> +$AddMembers => undef +$id => undef +</%ARGS> |