]> wagnertech.de Git - timetracker.git/blobdiff - WEB-INF/lib/ttUser.class.php
Added code to migrate legacy role on user entry to the system.
[timetracker.git] / WEB-INF / lib / ttUser.class.php
index 61d88139bec737016481920289373bce4d06b67d..5ead08bc8ca0bec895f513af4ade4a5373fb35f5 100644 (file)
@@ -269,4 +269,28 @@ define('ROLE_SITE_ADMIN', 1024); // Site administrator.
     }
     return false;
   }
+
+  // migrateLegacyRole makes changes to user database record and assigns a user to
+  // one of pre-defined roles, which are created if necessary.
+  // No changes to $this instance are done.
+  function migrateLegacyRole() {
+    // Do nothing if we already have a role_id.
+    if ($this->role_id) return false;
+
+    // Create default roles if necessary.
+    import ('ttRoleHelper');
+    if (!ttRoleHelper::rolesExist()) ttRoleHelper::createDefaultRoles(); // TODO: refactor or remove after roles revamp.
+
+    // Obtain new role id based on legacy role.
+    $role_id = ttRoleHelper::getRoleByRank($this->role);
+    if (!$role_id) return false; // Role not found, nothing to do.
+
+    $mdb2 = getConnection();
+    $sql = "update tt_users set role_id = $role_id where id = $this->id and team_id = $this->team_id";
+    $affected = $mdb2->exec($sql);
+    if (is_a($affected, 'PEAR_Error'))
+      return false;
+
+    return true;
+  }
 }