fasttoggle_user.inc in Fasttoggle 7
Fasttoggle user hook implementations.
File
module/fasttoggle_user/fasttoggle_user.incView source
<?php
/**
* @file
* Fasttoggle user hook implementations.
*/
/**
* Get a list of roles that can be toggled.
*
* @return array
* Toggleable roles.
*/
function fasttoggle_potential_toggleable_roles() {
static $roles;
if (!isset($roles)) {
$roles = user_roles(TRUE);
unset($roles[DRUPAL_AUTHENTICATED_RID]);
}
return $roles;
}
/**
* Get a list of roles for the sitewide settings form.
*
* @return array
* List of roles.
*/
function fasttoggle_sitewide_toggleable_roles() {
static $roles;
if (!isset($roles)) {
$potential_roles = fasttoggle_potential_toggleable_roles();
$defaults = array();
foreach ($potential_roles as $rid => $role_name) {
$defaults["role_{$rid}"] = "role_{$rid}";
}
$values = variable_get('fasttoggle_user_role_settings', $defaults);
$allowed_roles = array_filter(variable_get('fasttoggle_user_role_settings', $defaults));
// Trim the group ("role_") off the front of each key.
$new_array = array();
foreach ($allowed_roles as $role) {
$new_array[substr(array_pop($allowed_roles), 5)] = $role;
}
$roles = $new_array ? array_intersect_key(fasttoggle_potential_toggleable_roles(), $new_array) : array();
}
return $roles;
}
/**
* The list of roles a user can toggle.
*
* @param object $account
* The account to check.
*
* @return array
* The list of roles the user can toggle.
*/
function fasttoggle_user_toggleable_roles($account = NULL) {
global $user;
static $roles;
if (!$account) {
$account = $user;
}
if (!isset($roles[$account->uid])) {
$roles[$account->uid] = array();
foreach (fasttoggle_sitewide_toggleable_roles() as $rid => $name) {
if (user_access(fasttoggle_role_permission($name), $account)) {
$roles[$account->uid][$rid] = $name;
}
}
}
return $roles[$account->uid];
}
Functions
Name | Description |
---|---|
fasttoggle_potential_toggleable_roles | Get a list of roles that can be toggled. |
fasttoggle_sitewide_toggleable_roles | Get a list of roles for the sitewide settings form. |
fasttoggle_user_toggleable_roles | The list of roles a user can toggle. |