summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xeditusers.cgi25
-rw-r--r--template/en/default/account/profile-activity.html.tmpl88
-rw-r--r--template/en/default/admin/users/edit.html.tmpl4
-rw-r--r--template/en/default/admin/users/list.html.tmpl6
4 files changed, 123 insertions, 0 deletions
diff --git a/editusers.cgi b/editusers.cgi
index 47b51c4cb..6e56a3847 100755
--- a/editusers.cgi
+++ b/editusers.cgi
@@ -17,6 +17,8 @@
# Lance Larsh <lance.larsh@oracle.com>
# Frédéric Buclin <LpSolit@gmail.com>
# David Lawrence <dkl@redhat.com>
+# Vlad Dascalu <jocuri@softhome.net>
+# Gavin Shelley <bugzilla@chimpychompy.org>
use strict;
use lib ".";
@@ -731,6 +733,29 @@ if ($action eq 'search') {
}
###########################################################################
+} elsif ($action eq 'activity') {
+ my $otherUser = check_user($otherUserID, $otherUserLogin);
+
+ $vars->{'profile_changes'} = $dbh->selectall_arrayref(
+ "SELECT profiles.login_name AS who, " .
+ $dbh->sql_date_format('profiles_activity.profiles_when') . " AS activity_when,
+ fielddefs.description AS what,
+ profiles_activity.oldvalue AS removed,
+ profiles_activity.newvalue AS added
+ FROM profiles_activity
+ INNER JOIN profiles ON profiles_activity.who = profiles.userid
+ INNER JOIN fielddefs ON fielddefs.fieldid = profiles_activity.fieldid
+ WHERE profiles_activity.userid = ?
+ ORDER BY profiles_activity.profiles_when",
+ {'Slice' => {}},
+ $otherUser->id);
+
+ $vars->{'otheruser'} = $otherUser;
+
+ $template->process("account/profile-activity.html.tmpl", $vars)
+ || ThrowTemplateError($template->error());
+
+###########################################################################
} else {
$vars->{'action'} = $action;
ThrowCodeError('action_unrecognized', $vars);
diff --git a/template/en/default/account/profile-activity.html.tmpl b/template/en/default/account/profile-activity.html.tmpl
new file mode 100644
index 000000000..af2d00f5b
--- /dev/null
+++ b/template/en/default/account/profile-activity.html.tmpl
@@ -0,0 +1,88 @@
+[%# 1.0@bugzilla.org %]
+[%# The contents of this file are subject to the Mozilla Public
+ # License Version 1.1 (the "License"); you may not use this file
+ # except in compliance with the License. You may obtain a copy of
+ # the License at http://www.mozilla.org/MPL/
+ #
+ # Software distributed under the License is distributed on an "AS
+ # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ # implied. See the License for the specific language governing
+ # rights and limitations under the License.
+ #
+ # The Original Code is the Bugzilla Bug Tracking System.
+ #
+ # The Initial Developer of the Original Code is Netscape Communications
+ # Corporation. Portions created by Netscape are
+ # Copyright (C) 1998 Netscape Communications Corporation. All
+ # Rights Reserved.
+ #
+ # Contributor(s): Vlad Dascalu <jocuri@softhome.net>
+ # Gavin Shelley <bugzilla@chimpychompy.org>
+ #%]
+
+[%# INTERFACE:
+ # otheruser: Bugzilla User Object; The user whose profile activity
+ # we are viewing.
+ #
+ # listselectionvalues: selection values to recreate the current user list.
+ #
+ # profile_changes: An array of hashes containing the following fields:
+ #
+ # who: string; login name of who made the change
+ # activity_when: string; when the change was made
+ # what: string; the description of the field which was changed
+ # removed: string; the removed value (maybe empty string)
+ # added: string; the added value (maybe empty string)
+ #%]
+
+[% title = BLOCK %]
+ View User Account Log for '[% otheruser.login FILTER html %]'
+[% END %]
+
+
+[% PROCESS global/header.html.tmpl
+ title = title
+%]
+
+[% PROCESS admin/users/listselectvars.html.tmpl
+ listselectionvalues = listselectionvalues
+%]
+
+<p>
+
+[% columns =
+ [{name => 'who'
+ heading => 'Who'
+ }
+ {name => 'activity_when'
+ heading => 'When'
+ }
+ {name => 'what'
+ heading => 'What'
+ }
+ {name => 'removed'
+ heading => 'Removed'
+ }
+ {name => 'added'
+ heading => 'Added'
+ }
+ ]
+%]
+
+[% PROCESS admin/table.html.tmpl
+ columns = columns
+ data = profile_changes
+%]
+
+<p><a href="editusers.cgi?action=edit&amp;userid=
+ [%- otheruser.id FILTER url_quote %]"
+ title="Edit user '[% otheruser.login FILTER html %]'">Edit this user</a> or
+ <a title="Search For Users" href="editusers.cgi">find other accounts</a>
+ [% IF listselectionvalues.matchtype != 'exact' %]
+ or go <a title="Return to the user list"
+ href="editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">back
+ to the user list</a>
+ [% END %]
+</p>
+
+[% PROCESS global/footer.html.tmpl %]
diff --git a/template/en/default/admin/users/edit.html.tmpl b/template/en/default/admin/users/edit.html.tmpl
index ce593ee65..dee128406 100644
--- a/template/en/default/admin/users/edit.html.tmpl
+++ b/template/en/default/admin/users/edit.html.tmpl
@@ -105,6 +105,10 @@
<input type="hidden" name="userid" value="[% otheruser.id %]" />
<input type="hidden" name="action" value="update" />
[% INCLUDE listselectionhiddenfields %]
+
+ or <a href="editusers.cgi?action=activity&amp;userid=[% otheruser.id %]"
+ title="View the account log for user '
+ [%- otheruser.login FILTER html %]'">View this user's account log</a>
</p>
</form>
<p>
diff --git a/template/en/default/admin/users/list.html.tmpl b/template/en/default/admin/users/list.html.tmpl
index 9cbd7530d..4b483e33d 100644
--- a/template/en/default/admin/users/list.html.tmpl
+++ b/template/en/default/admin/users/list.html.tmpl
@@ -44,6 +44,12 @@
heading => 'Real name'
allow_html_content => 1
}
+ {heading => 'User Account Log'
+ content => 'View'
+ contentlink => 'editusers.cgi?action=activity' _
+ '&amp;userid=%%userid%%' _
+ listselectionurlparams
+ }
]
%]