diff options
author | ivan <ivan> | 2005-10-15 09:11:20 +0000 |
---|---|---|
committer | ivan <ivan> | 2005-10-15 09:11:20 +0000 |
commit | d4d0590bef31071e8809ec046717444b95b3f30a (patch) | |
tree | ee1236da50578390d2642114f28eaed99a5efb18 /rt/html/Elements/SelectOwner | |
parent | d39d52aac8f38ea9115628039f0df5aa3ac826de (diff) |
import rt 3.4.4
Diffstat (limited to 'rt/html/Elements/SelectOwner')
-rw-r--r-- | rt/html/Elements/SelectOwner | 65 |
1 files changed, 44 insertions, 21 deletions
diff --git a/rt/html/Elements/SelectOwner b/rt/html/Elements/SelectOwner index 2a818cdcd..85843e5f0 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-2004 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC %# <jesse@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -42,44 +42,67 @@ %# 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> %} -<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> +%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> %} </SELECT> - <%INIT> -my $Users = RT::Users->new($session{CurrentUser}); -my $object; - +my @objects; +my @users; if ($TicketObj) { - $object = $TicketObj; + @objects = ($TicketObj); } elsif ($QueueObj) { - $object = $QueueObj; + @objects = ($QueueObj); +} +elsif ($cfqueues) { + @objects = keys %{$cfqueues}; } -if ($object) { - $Users->WhoHaveRight(Right => 'OwnTicket', - Object => $object, - IncludeSystemRights => 1, - IncludeSuperusers => 1); -} else { - $Users->LimitToPrivileged; +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 ); } + +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 => undef +$Default => 0 $User => undef $TicketObj => undef $DefaultValue => 1 $DefaultLabel => "-" +$ValueAttribute => 'id' +$cfqueues => undef </%ARGS> |