diff options
Diffstat (limited to 'rt/html/Elements/SelectOwner')
-rw-r--r-- | rt/html/Elements/SelectOwner | 65 |
1 files changed, 21 insertions, 44 deletions
diff --git a/rt/html/Elements/SelectOwner b/rt/html/Elements/SelectOwner index 85843e5f0..2a818cdcd 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> |