summaryrefslogtreecommitdiff
path: root/rt/html/Elements/SelectOwner
diff options
context:
space:
mode:
Diffstat (limited to 'rt/html/Elements/SelectOwner')
-rw-r--r--rt/html/Elements/SelectOwner65
1 files changed, 21 insertions, 44 deletions
diff --git a/rt/html/Elements/SelectOwner b/rt/html/Elements/SelectOwner
index 85843e5..2a818cd 100644
--- a/rt/html/Elements/SelectOwner
+++ b/rt/html/Elements/SelectOwner
@@ -1,8 +1,8 @@
-%# BEGIN BPS TAGGED BLOCK {{{
+%# {{{ BEGIN BPS TAGGED BLOCK
%#
%# COPYRIGHT:
%#
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC
%# <jesse@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
@@ -42,67 +42,44 @@
%# works based on those contributions, and sublicense and distribute
%# those contributions and any derivatives thereof.
%#
-%# END BPS TAGGED BLOCK }}}
+%# }}} END BPS TAGGED BLOCK
<SELECT NAME="<%$Name%>">
%if ($DefaultValue) {
-<OPTION <% !$Default ? "SELECTED" : '' %> VALUE=""><%$DefaultLabel%></OPTION>
+<OPTION <% !$Default && "SELECTED" %> VALUE=""><%$DefaultLabel%></OPTION>
%}
-%foreach my $User ( @users) {
-<OPTION <% ($User->Id == $Default) ? "SELECTED" : ''%>
-%if ($ValueAttribute eq 'id') {
- value="<%$User->id%>"
-%} elsif ($ValueAttribute eq 'Name') {
- value="<%$User->Name%>"
-%}
-><%$User->Name()%></OPTION>
+<OPTION <% ($RT::Nobody->Id() == $Default) && "SELECTED" %> VALUE="<%$RT::Nobody->Id%>"><%$RT::Nobody->Name%></OPTION>
+%while ( my $User = $Users->Next()) {
+<OPTION <% ($User->Id == $Default) && "SELECTED" %> VALUE="<%$User->Id()%>"><%$User->Name()%></OPTION>
%}
</SELECT>
+
<%INIT>
-my @objects;
-my @users;
+my $Users = RT::Users->new($session{CurrentUser});
+my $object;
+
if ($TicketObj) {
- @objects = ($TicketObj);
+ $object = $TicketObj;
}
elsif ($QueueObj) {
- @objects = ($QueueObj);
-}
-elsif ($cfqueues) {
- @objects = keys %{$cfqueues};
+ $object = $QueueObj;
}
-else {
- # Let's check rights on an empty queue object. that will do a search for any queue.
- my $queue = RT::Queue->new($session{'CurrentUser'});
- push( @objects, $queue );
+if ($object) {
+ $Users->WhoHaveRight(Right => 'OwnTicket',
+ Object => $object,
+ IncludeSystemRights => 1,
+ IncludeSuperusers => 1);
+} else {
+ $Users->LimitToPrivileged;
}
-
-my %user_uniq_hash;
-
-
-foreach my $object (@objects) {
- my $Users = RT::Users->new($session{CurrentUser});
- $Users->WhoHaveRight(Right => 'OwnTicket', Object => $object, IncludeSystemRights => 1, IncludeSuperusers => 0);
- while (my $User = $Users->Next()) {
- next if ($User->id == $RT::Nobody->id); # skip nobody here, so we can make them first later
- $user_uniq_hash{$User->Id()} = $User;
- }
-}
-
-@users = sort { uc($a->Name) cmp uc($b->Name) } values %user_uniq_hash;
-unshift(@users, $RT::Nobody);
-
-
-
</%INIT>
<%ARGS>
$QueueObj => undef
$Name => undef
-$Default => 0
+$Default => undef
$User => undef
$TicketObj => undef
$DefaultValue => 1
$DefaultLabel => "-"
-$ValueAttribute => 'id'
-$cfqueues => undef
</%ARGS>