This repository has been archived on 2025-06-21. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
suitedesk/modules/role_delegation/role_delegation.install

35 lines
1.2 KiB
Text

<?php
/**
* Update permission names to allow non-English characters.
* See http://drupal.org/node/510054.
*/
function role_delegation_update_6000() {
$ret = array();
$role_results = db_query('SELECT name FROM {role}');
while ($role = db_fetch_object($role_results)) {
// Check whether the assign role permission name has changed.
if (preg_match('/[^a-zA-Z0-9 \\-_]/', $role->name)) {
$old_role_name = preg_replace('/[^a-zA-Z0-9 \\-_]/', '', $role->name);
$old_perm = "assign $old_role_name role";
$new_perm = "assign {$role->name} role";
// Update permissions with the new name.
$perm_results = db_query('SELECT * FROM {permission}');
while ($perm_row = db_fetch_object($perm_results)) {
$perms = explode(', ', $perm_row->perm);
$changed = FALSE;
foreach ($perms as $key => $perm) {
if ($perm == $old_perm) {
$perms[$key] = $new_perm;
$changed = TRUE;
}
}
if ($changed) {
$perms = db_escape_string(implode(', ', $perms));
$ret[] = update_sql("UPDATE {permission} SET perm = '$perms' WHERE pid = {$perm_row->pid}");
}
}
}
}
return $ret;
}