]> wagnertech.de Git - timetracker.git/blobdiff - WEB-INF/lib/ttRoleHelper.class.php
Initial coding of group editor done.
[timetracker.git] / WEB-INF / lib / ttRoleHelper.class.php
index 2751756b7a14ea8facd5da2ad69717ea92226348..ee151462b52b0b3ced71af0f700bcfc7d6b67dc7 100644 (file)
@@ -124,6 +124,9 @@ class ttRoleHelper {
     global $user;
     $mdb2 = getConnection();
 
+    $group_id = $user->getActiveGroup();
+    $org_id = $user->org_id;
+
     $id = (int)$fields['id'];
     if (isset($fields['name'])) $name_part = 'name = '.$mdb2->quote($fields['name']);
     if (isset($fields['rank'])) $rank_part = ', rank = '.(int)$fields['rank'];
@@ -131,7 +134,7 @@ class ttRoleHelper {
     if (isset($fields['status'])) $status_part = ', status = '.(int)$fields['status'];
     if (isset($fields['rights'])) $rights_part = ', rights = '.$mdb2->quote($fields['rights']);
     $parts = trim($name_part.$rank_part.$descr_part.$status_part.$rights_part, ',');
-    $sql = "update tt_roles set $parts where id = $id and group_id = $user->group_id";
+    $sql = "update tt_roles set $parts where id = $id and group_id = $group_id and org_id = $org_id";
     $affected = $mdb2->exec($sql);
     return (!is_a($affected, 'PEAR_Error'));
   }
@@ -141,9 +144,11 @@ class ttRoleHelper {
     global $user;
 
     $mdb2 = getConnection();
+    $group_id = $user->getActiveGroup();
+    $org_id = $user->org_id;
 
     // Mark the task as deleted.
-    $sql = "update tt_roles set status = NULL where id = $role_id and group_id = $user->group_id";
+    $sql = "update tt_roles set status = NULL where id = $role_id and group_id = $group_id and org_id = $org_id";
     $affected = $mdb2->exec($sql);
     return (!is_a($affected, 'PEAR_Error'));
   }
@@ -313,4 +318,29 @@ class ttRoleHelper {
     }
     return false;
   }
+
+  // copyRolesToGroup copies roles from current on behalf group to another.
+  static function copyRolesToGroup($group_id) {
+    global $user;
+    $mdb2 = getConnection();
+
+    $org_id = $user->org_id;
+    $columns = '(group_id, org_id, name, description, rank, rights, status)';
+    $roles = ttGroupHelper::getRoles(); // Roles in current on behalf group.
+
+    foreach ($roles as $role) {
+      $values = "values($group_id, $org_id".
+        ', '.$mdb2->quote($role['name']).
+        ', '.$mdb2->quote($role['description']).
+        ', '.(int)$role['rank'].
+        ', '.$mdb2->quote($role['rights']).
+        ', '.$mdb2->quote($role['status']).
+        ')';
+      $sql = "insert into tt_roles $columns $values";
+      $affected = $mdb2->exec($sql);
+      if (is_a($affected, 'PEAR_Error'))
+        return false;
+    }
+    return true;
+  }
 }