[Rt-commit] rt branch, 4.2/user-info-via-ajax, created. rt-4.1.5-26-g7e78b24
Alex Vandiver
alexmv at bestpractical.com
Wed Dec 19 10:53:42 EST 2012
The branch, 4.2/user-info-via-ajax has been created
at 7e78b243c313b159c9b104a2f87f9617a9f440de (commit)
- Log -----------------------------------------------------------------
commit 7e78b243c313b159c9b104a2f87f9617a9f440de
Author: Thomas Sibley <trs at bestpractical.com>
Date: Mon Dec 10 13:33:14 2012 -0800
Add an AJAX endpoint for requesting user information and formatting
Javascript which may want to display a formatted user now has a way to
fetch the preferred format, as well as retrieve user details. Multiple
users may be requested in a single call by specifying multiple values
for the "id" parameter. A JSON hash is returned with keys matching the
requested ids for easy client side lookup. The JSON object looks like:
{
"12" : {
"id" : "12",
"Name" : "root",
"RealName" : "Enoch Root",
"EmailAddress" : "root at localhost",
"Privileged" : true,
"_formatted" : "Enoch Root"
"_html" : "Enoch Root",
}
}
diff --git a/share/html/Helpers/UserInfo b/share/html/Helpers/UserInfo
new file mode 100644
index 0000000..65be2e6
--- /dev/null
+++ b/share/html/Helpers/UserInfo
@@ -0,0 +1,77 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
+%# <sales at bestpractical.com>
+%#
+%# (Except where explicitly superseded by other copyright notices)
+%#
+%#
+%# LICENSE:
+%#
+%# This work is made available to you under the terms of Version 2 of
+%# the GNU General Public License. A copy of that license should have
+%# been provided with this software, but in any event can be snarfed
+%# from www.gnu.org.
+%#
+%# This work is distributed in the hope that it will be useful, but
+%# WITHOUT ANY WARRANTY; without even the implied warranty of
+%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+%# General Public License for more details.
+%#
+%# You should have received a copy of the GNU General Public License
+%# along with this program; if not, write to the Free Software
+%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+%# 02110-1301 or visit their web page on the internet at
+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
+%#
+%#
+%# CONTRIBUTION SUBMISSION POLICY:
+%#
+%# (The following paragraph is not intended to limit the rights granted
+%# to you to modify and distribute this software under the terms of
+%# the GNU General Public License and is only of importance to you if
+%# you choose to contribute your changes and enhancements to the
+%# community by submitting them to Best Practical Solutions, LLC.)
+%#
+%# By intentionally submitting any modifications, corrections or
+%# derivatives to this work, or any other work intended for use with
+%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
+%# you are the copyright holder for those contributions and you grant
+%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
+%# royalty-free, perpetual, license to use, copy, create derivative
+%# works based on those contributions, and sublicense and distribute
+%# those contributions and any derivatives thereof.
+%#
+%# END BPS TAGGED BLOCK }}}
+<%args>
+$id
+</%args>
+<%init>
+my %users;
+
+$id = [$id] unless ref($id) eq 'ARRAY';
+
+for my $uid (@$id) {
+ next if exists $users{$uid};
+
+ my $user = RT::User->new($session{'CurrentUser'});
+ $user->Load($uid);
+
+ unless ($user->id) {
+ $users{$uid} = undef;
+ next;
+ }
+
+ my %user = map { $_ => $user->$_ }
+ qw(id Name EmailAddress RealName);
+ $user{Privileged} = $user->Privileged ? JSON::true : JSON::false;
+ $user{_formatted} = $user->Format;
+ $user{_html} = $m->scomp('/Elements/ShowUser', User => $user);
+ $users{$uid} = \%user;
+}
+$r->content_type('application/json; charset=utf-8');
+$m->out( JSON(\%users) );
+$m->abort;
+</%init>
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list