Module: Demo_lock
The demo module is a useful thing. I wanted a bit more, including support for giving admin access (like theme access) while still keeping hands off the other settings.
For extra security with demos where you want to create a user with admin access, we can use the hook_menu_alter(). Thanks go to my mentor Dmitri for his insight on this.
My usage
- Install demo module
- Create new 'bypass demo jail' role
- Give 'bypass demo jail' permission to yourself and trusted people
- Create a new role for someone with high permissions you want to lock out of certain admin areas. I used "Jailed admin"
- Give users the role. (I made an "admin" user with "Jailed admin"), he had about every permission except change username, edit username, edit permissions, and of course bypass demo jail.
modules/demo_lock/demo_lock.info
name = Demo Lock
description = Additional security, lockout and jailing for the demo module.
version = VERSION
core = 6.x
dependencies[] = demo
package = Development
core = 6.x
description = Additional security, lockout and jailing for the demo module.
version = VERSION
core = 6.x
dependencies[] = demo
package = Development
core = 6.x
modules/demo_lock/demo_lock.module
<?php
/**
* Implementation of hook_form_alter().
*/
function demo_lock_perm() {
return array('bypass demo jail');
}
function demo_lock_menu_alter(&$menu) {
// admin/content
$menu['admin/content/comment']['access arguments'] = array('bypass demo jail');
$menu['admin/content/types']['access arguments'] = array('bypass demo jail');
$menu['admin/content/node-settings']['access arguments'] = array('bypass demo jail');
$menu['admin/content/rss-publishing']['access arguments'] = array('bypass demo jail');
$menu['admin/content/taxonomy']['access arguments'] = array('bypass demo jail');
// admin/build
$menu['admin/build/modules']['access arguments'] = array('bypass demo jail');
$menu['admin/build/menu']['access arguments'] = array('bypass demo jail');
$menu['admin/build/block']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/file-system']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/performance']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/site-information']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/clean-urls']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/admin']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/filters']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/actions']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/site-maintenance']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/image-toolkit']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/logging']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/uploads']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/error-reporting']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/date-time']['access arguments'] = array('bypass demo jail');
// admin/user
// $menu['admin/user']['access arguments'] = array('bypass demo jail');
// admin/reports
$menu['admin/reports']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/status']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/dblog']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/access-denied']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/page-not-found']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/settings']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/updates']['access arguments'] = array('bypass demo jail');
// admin/settings
$menu['admin/settings/demo']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/pngfix']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/poormanscron']['access arguments'] = array('bypass demo jail');
// user
// $menu['user/1/edit']['access arguments'] = array('bypass demo jail');
return $menu;
}
/**
* Implementation of hook_form_alter().
*/
function demo_lock_perm() {
return array('bypass demo jail');
}
function demo_lock_menu_alter(&$menu) {
// admin/content
$menu['admin/content/comment']['access arguments'] = array('bypass demo jail');
$menu['admin/content/types']['access arguments'] = array('bypass demo jail');
$menu['admin/content/node-settings']['access arguments'] = array('bypass demo jail');
$menu['admin/content/rss-publishing']['access arguments'] = array('bypass demo jail');
$menu['admin/content/taxonomy']['access arguments'] = array('bypass demo jail');
// admin/build
$menu['admin/build/modules']['access arguments'] = array('bypass demo jail');
$menu['admin/build/menu']['access arguments'] = array('bypass demo jail');
$menu['admin/build/block']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/file-system']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/performance']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/site-information']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/clean-urls']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/admin']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/filters']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/actions']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/site-maintenance']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/image-toolkit']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/logging']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/uploads']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/error-reporting']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/date-time']['access arguments'] = array('bypass demo jail');
// admin/user
// $menu['admin/user']['access arguments'] = array('bypass demo jail');
// admin/reports
$menu['admin/reports']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/status']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/dblog']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/access-denied']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/page-not-found']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/settings']['access arguments'] = array('bypass demo jail');
$menu['admin/reports/updates']['access arguments'] = array('bypass demo jail');
// admin/settings
$menu['admin/settings/demo']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/pngfix']['access arguments'] = array('bypass demo jail');
$menu['admin/settings/poormanscron']['access arguments'] = array('bypass demo jail');
// user
// $menu['user/1/edit']['access arguments'] = array('bypass demo jail');
return $menu;
}