function apply_for_role_update_7001 in Apply for role 7
Same name and namespace in other branches
- 7.2 apply_for_role.install \apply_for_role_update_7001()
Set the 'deny role applications' and 'delete role applications' permissions for users who have the 'approve role applications' permission.
File
- ./
apply_for_role.install, line 177 - Installs the Apply for Role (AFR) module.
Code
function apply_for_role_update_7001(&$sandbox) {
$sandbox['#finished'] = 0;
// Multi-part update.
if (!isset($sandbox['permission_from'])) {
$sandbox['permission_from'] = 0;
$sandbox['permission_count'] = db_query("SELECT COUNT(rid) FROM {role_permission} WHERE permission = :permission", array(
':permission' => 'approve role applications',
))
->fetchField();
}
else {
$has_rows = FALSE;
// Update this many per page load.
$count = 1000;
$results = db_query_range("SELECT rid FROM {role_permission} WHERE permission = :permission", $sandbox['permission_from'], $count, array(
':permission' => 'approve role applications',
));
foreach ($results as $result) {
$has_rows = TRUE;
db_insert('role_permission')
->fields(array(
'rid' => $result->rid,
'permission' => 'view role applications',
))
->execute();
db_insert('role_permission')
->fields(array(
'rid' => $result->rid,
'permission' => 'deny role applications',
))
->execute();
db_insert('role_permission')
->fields(array(
'rid' => $result->rid,
'permission' => 'delete role applications',
))
->execute();
}
$sandbox['#finished'] = $sandbox['permission_from'] / $sandbox['permission_count'];
$sandbox['permission_from'] += $count;
if (!$has_rows) {
$sandbox['#finished'] = 1;
return t('The role permissions for <em>Apply for Role</em> have been updated.');
}
}
}