Skip to content
Snippets Groups Projects
Commit 0ccea22f authored by Tim Steiner's avatar Tim Steiner
Browse files

[gh-87] Merging from testing into staging

git-svn-id: file:///tmp/wdn_thm_drupal/branches/drupal-7.x/staging@482 20a16fea-79d4-4915-8869-1ea9d5ebf173
parent 4a7386e3
No related branches found
No related tags found
No related merge requests found
...@@ -55,12 +55,10 @@ function unl_wysiwyg_plugin($editor) { ...@@ -55,12 +55,10 @@ function unl_wysiwyg_plugin($editor) {
// Might need to be set later on; after retrieving customized editor // Might need to be set later on; after retrieving customized editor
// layout. // layout.
//'theme_advanced_buttons1' => array(t('Button title (optional)') => 'myplugin'), //'theme_advanced_buttons1' => array(t('Button title (optional)') => 'myplugin'),
); );
} }
} }
function unl_permission() { function unl_permission() {
return array( return array(
'unl migration' => array( 'unl migration' => array(
...@@ -158,8 +156,7 @@ function unl_menu() { ...@@ -158,8 +156,7 @@ function unl_menu() {
return $items; return $items;
} }
function unl_menu_alter(&$items) function unl_menu_alter(&$items) {
{
foreach (array('module', 'file', 'page arguments') as $key) { foreach (array('module', 'file', 'page arguments') as $key) {
$items['admin/themes'][$key] = $items['admin/appearance/settings/' . variable_get('theme_default')][$key]; $items['admin/themes'][$key] = $items['admin/appearance/settings/' . variable_get('theme_default')][$key];
} }
...@@ -181,8 +178,26 @@ function unl_form_alter(&$form, $form_state, $form_id) { ...@@ -181,8 +178,26 @@ function unl_form_alter(&$form, $form_state, $form_id) {
$form['#submit'][] = 'unl_system_settings_form_submit'; $form['#submit'][] = 'unl_system_settings_form_submit';
} }
if ($form_id == 'user_admin_permissions' && !in_array(variable_get('user_admin_role', -1), array_keys($GLOBALS['user']->roles))) { /**
* Modify the Permissions and Roles forms for non-administrators
*/
$admin_role_id = variable_get('user_admin_role', -1);
if (!in_array($admin_role_id, array_keys($GLOBALS['user']->roles))) {
switch ($form_id) {
// Add additional validation on admin/people/permissions/roles/edit/%
case 'user_admin_role' :
$form['#validate'][] = 'unl_user_admin_role_validate';
break;
// Hide administrator role on admin/people/permissions/roles
case 'user_admin_roles' :
foreach ($form['roles'] as $key => $role) {
if (isset($role['#role']->rid) && $role['#role']->rid == $admin_role_id) {
unset($form['roles'][$key]);
}
}
break;
// Hide administrator column on admin/people/permissions
case 'user_admin_permissions' :
if (!user_access('unl grant all permissions')) { if (!user_access('unl grant all permissions')) {
// Remove permissions this user doesn't have from the headings list. // Remove permissions this user doesn't have from the headings list.
foreach ($form['permission'] as $permission => $sub_form) { foreach ($form['permission'] as $permission => $sub_form) {
...@@ -215,14 +230,14 @@ function unl_form_alter(&$form, $form_state, $form_id) { ...@@ -215,14 +230,14 @@ function unl_form_alter(&$form, $form_state, $form_id) {
} }
} }
// Unset the administrator checkbox column if user can't administer administrator permissions
if (!user_access('unl administer administrator permissions')) { if (!user_access('unl administer administrator permissions')) {
$role_id = variable_get('user_admin_role', -1); unset($form['role_names'][$admin_role_id]);
unset($form['role_names'][$role_id]); unset($form['role_names']['#value'][$admin_role_id]);
unset($form['role_names']['#value'][$role_id]); unset($form['checkboxes'][$admin_role_id]);
unset($form['checkboxes'][$role_id]);
} }
if (!in_array(variable_get('user_admin_role'), array_keys($GLOBALS['user']->roles))) { // Make these settings unavailable even if they are enabled for the user
$administrator_permissions = array( $administrator_permissions = array(
'unl administer administrator permissions', 'unl administer administrator permissions',
'unl site creation', 'unl site creation',
...@@ -232,19 +247,21 @@ function unl_form_alter(&$form, $form_state, $form_id) { ...@@ -232,19 +247,21 @@ function unl_form_alter(&$form, $form_state, $form_id) {
'administer imce', 'administer imce',
'administer filters', 'administer filters',
); );
foreach ($form['permission'] as $permission => $sub_form) { foreach ($form['permission'] as $permission => $sub_form) {
if (in_array($permission, $administrator_permissions)) { if (in_array($permission, $administrator_permissions)) {
unset($form['permission'][$permission]); unset($form['permission'][$permission]);
} }
} }
foreach ($form['checkboxes'] as $role_id => $sub_form) { foreach ($form['checkboxes'] as $admin_role_id => $sub_form) {
foreach ($sub_form['#options'] as $permission => $value) { foreach ($sub_form['#options'] as $permission => $value) {
if (in_array($permission, $administrator_permissions)) { if (in_array($permission, $administrator_permissions)) {
unset($form['checkboxes'][$role_id]['#options'][$permission]); unset($form['checkboxes'][$admin_role_id]['#options'][$permission]);
} }
} }
} }
break;
default :
break;
} }
} }
...@@ -370,8 +387,22 @@ function unl_user_access($permissions, $account = NULL) { ...@@ -370,8 +387,22 @@ function unl_user_access($permissions, $account = NULL) {
return TRUE; return TRUE;
} }
function unl_cron() /**
{ * Additional validation on the user_admin_role form (admin/people/permissions/roles/edit/%)
* to prevent a user from deleting the administrator role.
*/
function unl_user_admin_role_validate($form, &$form_state) {
$admin_role_id = variable_get('user_admin_role', -1);
if ($form_state['values']['op'] == t('Delete role')) {
$role = user_role_load_by_name($form_state['values']['name']);
if ($role && $role->rid == $admin_role_id) {
form_set_error('name', t('The role name %name can not be deleted. Seriously dude. Seriously.', array('%name' => $form_state['values']['name'])));
}
}
}
function unl_cron() {
if (PHP_SAPI == 'cli') { if (PHP_SAPI == 'cli') {
return; return;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment