diff options
Diffstat (limited to 'rt/share/html/Elements/ShowUser')
-rw-r--r-- | rt/share/html/Elements/ShowUser | 53 |
1 files changed, 38 insertions, 15 deletions
diff --git a/rt/share/html/Elements/ShowUser b/rt/share/html/Elements/ShowUser index c58d33b59..dd487a876 100644 --- a/rt/share/html/Elements/ShowUser +++ b/rt/share/html/Elements/ShowUser @@ -45,28 +45,51 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -%# Released under the terms of version 2 of the GNU Public License <%INIT> # $User is an RT::User object # $Address is Email::Address object -my $comp = '/Elements/ShowUser'. ucfirst lc $style; -unless ( RT::Interface::Web->ComponentPathIsSafe($comp) and $m->comp_exists( $comp ) ) { - $RT::Logger->error( - 'Either system config or user #' - . $session{'CurrentUser'}->id - . ' picked UsernameFormat '. $style - . ', but '. $comp . "doesn't exist" - ); - return $m->comp('/Elements/ShowUserConcise', - User => $User, Address => $Address, NoEscape => $NoEscape - ); +my $display = RT::User->Format( + User => $User, + Address => $Address, + CurrentUser => $session{CurrentUser}, + Format => $style, +); + +# RT::User->Format does this itself, but we want to make sure we have a $User +# if at all possible for the rest of our code below. +if ($Address and not $User) { + $User = RT::User->new( $session{CurrentUser} ); + $User->LoadByEmail( $Address->address ); + undef $User unless $User->id; } -return $m->comp( $comp, User => $User, Address => $Address, NoEscape => $NoEscape ); + +my %system_user = ( + RT->Nobody->id => 1, + RT->SystemUser->id => 1, +); + +$m->callback( + ARGSRef => \%ARGS, + User => $User, + Address => $Address, + display => \$display, + system_user => \%system_user, + CallbackName => 'Modify', +); </%INIT> <%ARGS> $User => undef $Address => undef -$NoEscape => 0 -$style => RT->Config->Get('UsernameFormat', $session{'CurrentUser'}) +$style => undef +$Link => 1 </%ARGS> +<span class="user" <% $User && $User->id ? 'data-user-id="'.$User->id.'"' : "" |n %>>\ +% if ($Link and $User and $User->id and not $system_user{$User->id} and $session{CurrentUser}->Privileged) { +<a href="<% RT->Config->Get("WebPath") %>/User/Summary.html?id=<% $User->id %>">\ +<% $display %>\ +</a>\ +% } else { +<% $display %>\ +% } +</span>\ |