X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FElements%2FShowUser;h=4dc41af8105ecd5979d98be244ac2d0af36492f3;hb=44dd00a3ff974a17999e86e64488e996edc71e3c;hp=365497765a8a274103b0c62cff03091f061060dc;hpb=a6fe07e49e3fc12169e801b1ed6874c3a5bd8500;p=freeside.git diff --git a/rt/share/html/Elements/ShowUser b/rt/share/html/Elements/ShowUser index 365497765..4dc41af81 100644 --- a/rt/share/html/Elements/ShowUser +++ b/rt/share/html/Elements/ShowUser @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -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', +); <%ARGS> $User => undef $Address => undef -$NoEscape => 0 -$style => RT->Config->Get('UsernameFormat', $session{'CurrentUser'}) +$style => undef +$Link => 1 +id ? 'data-user-id="'.$User->id.'"' : "" |n %>>\ +% if ($Link and $User and $User->id and not $system_user{$User->id} and $session{CurrentUser}->Privileged) { +/User/Summary.html?id=<% $User->id %>">\ +<% $display %>\ +\ +% } else { +<% $display %>\ +% } +\