module_grants.install in Module Grants 6.3
Same filename and directory in other branches
Install and uninstall hooks for Module Grants module
File
module_grants.installView source
<?php
/**
* @file
* Install and uninstall hooks for Module Grants module
*/
/**
* Implementation of hook_install().
*/
function module_grants_install() {
/*
_set_default_permissions('authenticated user', module_grants_monitor_perm());
if (variable_get('smart_tabs_include_pages', '*') == '*') {
// Initially restrict Smart tabs to Accessible content page only
variable_set('smart_tabs_include_pages', "accessible-content\raccessible-content/*");
}
*/
}
/**
* Implementation of hook_uninstall().
* I'm not convinced that deleting these is a good thing, as these will have
* to be flicked back on when re-installing.
*/
function module_grants_uninstall() {
variable_del('module_grants_lenient');
variable_del('module_grants_OR_modules');
variable_del('show_taxonomy_terms');
}
function _set_default_permissions($role_name, $permissions) {
if (!is_array($permissions)) {
return;
}
$role = db_fetch_object(db_query("SELECT p.rid, perm FROM {permission} p INNER JOIN {role} r ON p.rid=r.rid WHERE r.name='%s'", $role_name));
if ($role) {
$added_perms = $role->perm;
foreach ($permissions as $perm) {
if (strpos($role->perm, $perm) === FALSE) {
$added_perms .= ", {$perm}";
}
}
if ($added_perms != $role->perm) {
// some perms added
db_query("UPDATE {permission} SET perm='%s' WHERE rid=%d", $added_perms, $role->rid);
}
}
}
/**
* Rename permissions. Core doesn't support apostrophes so strip these out and
* capitalise the permission name for readibility.
* Example: "access 'I can edit' tab" is transformed to "access I Can Edit tab".
* See [#566290], [#572804].
*/
function module_grants_update_6207() {
$ret = array();
// permission.perm column contains a comma-separated string of permissions
$result = db_query("SELECT rid,perm FROM {permission} WHERE perm LIKE '%access \\'%\\' tab%'");
while ($permissions = db_fetch_object($result)) {
// See http://www.php.net/manual/en/function.preg-replace-callback.php
// Note: using create_function() as PHP 5.2 does not support closures (anonymous functions)
$sanitized_permissions = preg_replace_callback("/access \\'([A-Z a-z]+)\\' tab/", create_function('$matches', 'return "access ". ucwords($matches[1]) ." tab";'), $permissions->perm);
$ret[] = update_sql("UPDATE {permission} SET perm='" . db_escape_string($sanitized_permissions) . "' WHERE rid={$permissions->rid}");
}
return $ret;
}
Functions
Name | Description |
---|---|
module_grants_install | Implementation of hook_install(). |
module_grants_uninstall | Implementation of hook_uninstall(). I'm not convinced that deleting these is a good thing, as these will have to be flicked back on when re-installing. |
module_grants_update_6207 | Rename permissions. Core doesn't support apostrophes so strip these out and capitalise the permission name for readibility. Example: "access 'I can edit' tab" is transformed to "access I Can Edit tab". See [#566290],… |
_set_default_permissions |