+
+ // getRoleByRank_1_17_44 is used in dbinstall.php and looks up a role by its rank.
+ static function getRoleByRank_1_17_44($rank, $group_id) {
+ global $user;
+ $mdb2 = getConnection();
+
+ $rank = (int) $rank; // Cast to int just in case for better security.
+
+ $sql = "select id from tt_roles where team_id = $group_id and rank = $rank and (status = 1 or status = 0)";
+ $res = $mdb2->query($sql);
+
+ if (!is_a($res, 'PEAR_Error')) {
+ $val = $res->fetchRow();
+ if ($val['id'])
+ return $val['id'];
+ }
+ 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;
+ }