]> wagnertech.de Git - timetracker.git/blobdiff - WEB-INF/lib/ttRegistrator.class.php
Fixed populating created_by for user created by admin.
[timetracker.git] / WEB-INF / lib / ttRegistrator.class.php
index b3551dad617898f6adfa9d6a44d5eebccb96b0c0..c206881dcf415e4a58f1af2c2a3d33f475dcc2ca 100644 (file)
@@ -84,11 +84,14 @@ class ttRegistrator {
     if ($this->err->yes()) return false; // There are errors, do not proceed.
 
     global $i18n;
-
-    // Protection fom too many recent bot registrations from user IP.
-    if ($this->registeredRecently()) {
-      $this->err->add($i18n->get('error.access_denied'));
-      return false;
+    global $user;
+
+    // Protection from too many recent bot registrations from user IP.
+    if (!$user->can('administer_site')) { // No problems for site admin.
+      if ($this->registeredRecently()) {
+        $this->err->add($i18n->get('error.access_denied'));
+        return false;
+      }
     }
 
     import('ttUserHelper');
@@ -118,7 +121,9 @@ class ttRegistrator {
       return false;
     }
 
-    if (!$this->setCreatedBy($this->user_id))
+    // Set created_by appropriately (admin or self).
+    $created_by = $user->can('administer_site') ? $user->id : $this->user_id;
+    if (!$this->setCreatedBy($created_by))
       return false;
 
     return true;
@@ -186,7 +191,7 @@ class ttRegistrator {
     }
 
     // Update top manager.
-    $sql = "update tt_users set created_by = $user_id where id = $user_id and group_id = $this->group_id";
+    $sql = "update tt_users set created_by = $user_id where id = $this->user_id and group_id = $this->group_id";
     $affected = $mdb2->exec($sql);
     if (is_a($affected, 'PEAR_Error')) {
       $this->err->add($i18n->get('error.db'));