Index: modules/user/access_control.js =================================================================== RCS file: modules/user/access_control.js diff -N modules/user/access_control.js --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/user/access_control.js 17 Aug 2006 10:00:42 -0000 @@ -0,0 +1,27 @@ +// $Id$ + +if (isJsEnabled()) { + addLoadEvent(accessControlAutoAttach); +} + +function accessControlAutoAttach() { + var checkboxes = $('permissions').getElementsByTagName('input'); + for (var i = 0; checkbox = checkboxes[i]; i++) { + if (parseInt(checkbox.id.replace(/^edit-(\d+).*$/i, '$1')) == 2) { // authenticated user + checkbox.onclick = accessControlToggle; + accessControlToggle.apply(checkbox); + } + } +} + +function accessControlToggle() { + var roles = Drupal.settings.user.roles; + var name = this.id.substr(7); + + for (var i in roles) { + if (roles[i] > 2) { + var checkbox = $('edit-' + roles[i] + '-' + name); + checkbox.disabled = checkbox.checked = this.checked; + } + } +} \ No newline at end of file Index: modules/user/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.module,v retrieving revision 1.653 diff -u -d -F^\s*function -r1.653 user.module --- modules/user/user.module 14 Aug 2006 20:35:11 -0000 1.653 +++ modules/user/user.module 17 Aug 2006 10:00:48 -0000 @@ -1787,6 +1787,9 @@ function user_admin_perm($str_rids = NUL } $form['submit'] = array('#type' => 'submit', '#value' => t('Save permissions')); + drupal_add_js(array('user' => array('roles' => array_keys($role_names))), 'setting'); + drupal_add_js(drupal_get_path('module', 'user') .'/access_control.js', 'module'); + return drupal_get_form('user_admin_perm', $form); }