? permissions.patch ? permissions_api.css Index: permissions_api.info =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/permissions_api/permissions_api.info,v retrieving revision 1.3 diff -u -p -r1.3 permissions_api.info --- permissions_api.info 3 Nov 2008 02:53:05 -0000 1.3 +++ permissions_api.info 26 Jun 2009 14:57:41 -0000 @@ -1,3 +1,4 @@ ; $Id: permissions_api.info,v 1.3 2008/11/03 02:53:05 ebeyrent Exp $ name = "Permissions API" description = "This module defines helper functions for granting and revoking permissions for roles" +core = 6.x Index: permissions_api.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/permissions_api/permissions_api.module,v retrieving revision 1.10 diff -u -p -r1.10 permissions_api.module --- permissions_api.module 16 Jun 2009 12:13:41 -0000 1.10 +++ permissions_api.module 26 Jun 2009 14:57:41 -0000 @@ -227,3 +227,66 @@ function permissions_role_inherit($new_r permissions_grant_permissions($clone->name, $role_permissions); } } + +function permissions_api_form_alter(&$form, $form_state, $form_id) { + if ($form_id == 'user_admin_perm') { + $form['#prefix'] = drupal_get_form('permissions_api_settings_form'); + } +} + +function permissions_api_settings_form() { + drupal_add_css(drupal_get_path('module', 'permissions_api') .'/permissions_api.css'); + + $roles = drupal_map_assoc(array_values(user_roles())); + $module_options = array(); + foreach (module_list(FALSE, FALSE, TRUE) as $module) { + if (module_invoke($module, 'perm')) { + $module_options[$module] = $module; + } + } + $form['reset'] = array( + '#type' => 'fieldset', + '#title' => t('Reset Permissions'), + '#description' => t('Reset the permissions below in one step. Choose modules and roles and grant or revoke all permissions for those modules and roles.'), + '#collapsible' => TRUE, + '#collapsed' => TRUE, + '#attributes' => array('class' => 'permissions-api'), + ); + $form['reset']['modules'] = array( + '#type' => 'select', + '#title' => t('Modules'), + '#options' => $module_options, + '#multiple' => TRUE, + ); + $form['reset']['grant'] = array( + '#type' => 'select', + '#title' => t('Grant all'), + '#options' => $roles, + '#multiple' => TRUE, + ); + $form['reset']['revoke'] = array( + '#type' => 'select', + '#title' => t('Revoke all'), + '#options' => $roles, + '#multiple' => TRUE, + ); + $form['reset']['submit'] = array( + '#type' => 'submit', + '#value' => t('Submit'), + ); + return $form; +} + +function permissions_api_settings_form_submit($form, &$form_state) { + $modules = $form_state['values']['modules']; + foreach ($modules as $module) { + $grant = $form_state['values']['grant']; + foreach ($grant as $role) { + permissions_grant_all_permissions_by_module($role, $module); + } + $revoke = $form_state['values']['revoke']; + foreach ($revoke as $role) { + permissions_revoke_all_permissions_by_module($role, $module); + } + } +} \ No newline at end of file