]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 312935: User Account Log should start with a creation date - Patch by Frédéric...
authorlpsolit%gmail.com <>
Thu, 8 Jun 2006 03:31:10 +0000 (03:31 +0000)
committerlpsolit%gmail.com <>
Thu, 8 Jun 2006 03:31:10 +0000 (03:31 +0000)
Bugzilla/User.pm
createaccount.cgi
editusers.cgi

index f0f8467a7e047753768f8f8f91d109534bf77f47..7bafd688a1f4312723fd4276dd4235f471f60fda 100644 (file)
@@ -28,6 +28,7 @@
 #                 Lance Larsh <lance.larsh@oracle.com>
 #                 Justin C. De Vries <judevries@novell.com>
 #                 Dennis Melentyev <dennis.melentyev@infopulse.com.ua>
+#                 Frédéric Buclin <LpSolit@gmail.com>
 
 ################################################################################
 # Module Initialization
@@ -46,6 +47,7 @@ use Bugzilla::Constants;
 use Bugzilla::User::Setting;
 use Bugzilla::Product;
 use Bugzilla::Classification;
+use Bugzilla::Field;
 
 use base qw(Exporter);
 @Bugzilla::User::EXPORT = qw(insert_new_user is_available_username
@@ -1321,7 +1323,7 @@ sub insert_new_user {
              ($username, $realname, $cryptpassword, $disabledtext));
 
     # Turn on all email for the new user
-    my $userid = $dbh->bz_last_key('profiles', 'userid');
+    my $new_userid = $dbh->bz_last_key('profiles', 'userid');
 
     foreach my $rel (RELATIONSHIPS) {
         foreach my $event (POS_EVENTS, NEG_EVENTS) {
@@ -1333,19 +1335,29 @@ sub insert_new_user {
             next if (($event == EVT_CC) && ($rel != REL_REPORTER));
 
             $dbh->do('INSERT INTO email_setting (user_id, relationship, event)
-                      VALUES (?, ?, ?)', undef, ($userid, $rel, $event));
+                      VALUES (?, ?, ?)', undef, ($new_userid, $rel, $event));
         }
     }
 
     foreach my $event (GLOBAL_EVENTS) {
         $dbh->do('INSERT INTO email_setting (user_id, relationship, event)
-                  VALUES (?, ?, ?)', undef, ($userid, REL_ANY, $event));
+                  VALUES (?, ?, ?)', undef, ($new_userid, REL_ANY, $event));
     }
 
-    my $user = new Bugzilla::User($userid);
+    my $user = new Bugzilla::User($new_userid);
     $user->derive_regexp_groups();
 
-    
+    # Add the creation date to the profiles_activity table.
+    # $who is the user who created the new user account, i.e. either an
+    # admin or the new user himself.
+    my $who = Bugzilla->user->id || $user->id;
+    my $creation_date_fieldid = get_field_id('creation_ts');
+
+    $dbh->do('INSERT INTO profiles_activity
+                          (userid, who, profiles_when, fieldid, newvalue)
+                   VALUES (?, ?, NOW(), ?, NOW())',
+                   undef, ($user->id, $who, $creation_date_fieldid));
+
     # Return the password to the calling code so it can be included
     # in an email sent to the user.
     return $password;
index edd1c0a66dc546abdbc73208db42c8304749a498..b50f9d87ac400559b0891123b176fc1eef4a019d 100755 (executable)
@@ -69,9 +69,9 @@ if (defined($login)) {
 
     $vars->{'login'} = $login;
 
-    $dbh->bz_lock_tables('profiles WRITE', 'groups READ',
+    $dbh->bz_lock_tables('profiles WRITE', 'profiles_activity WRITE',
                          'user_group_map WRITE', 'email_setting WRITE',
-                         'tokens READ');
+                         'groups READ', 'tokens READ', 'fielddefs READ');
 
     if (!is_available_username($login)) {
         # Account already exists
index 86174a05809dd41246485005a4c85c2f03f8407d..6da000a1ba67898bd2d15c04689b041b280e6d78 100755 (executable)
@@ -199,9 +199,9 @@ if ($action eq 'search') {
     my $disabledtext = trim($cgi->param('disabledtext') || '');
 
     # Lock tables during the check+creation session.
-    $dbh->bz_lock_tables('profiles WRITE', 'email_setting WRITE',
-                         'user_group_map WRITE', 'groups READ',
-                         'tokens READ');
+    $dbh->bz_lock_tables('profiles WRITE', 'profiles_activity WRITE',
+                         'email_setting WRITE', 'user_group_map WRITE',
+                         'groups READ', 'tokens READ', 'fielddefs READ');
 
     # Validity checks
     $login || ThrowUserError('user_login_required');