You are here

fasttoggle.inc in Fasttoggle 6

Same filename and directory in other branches
  1. 8.2 fasttoggle.inc
  2. 7 fasttoggle.inc

Provides common routines.

File

fasttoggle.inc
View source
<?php

/**
 * @file
 * Provides common routines.
 */
function fasttoggle_potential_toggleable_roles() {
  static $roles;
  if (!isset($roles)) {
    $roles = user_roles(TRUE);
    unset($roles[DRUPAL_AUTHENTICATED_RID]);
  }
  return $roles;
}
function fasttoggle_sitewide_toggleable_roles() {
  static $roles;
  if (!isset($roles)) {
    $allowed_roles = variable_get('fasttoggle_role_settings', array());
    $roles = $allowed_roles ? array_intersect_key(fasttoggle_potential_toggleable_roles(), $allowed_roles) : array();
  }
  return $roles;
}
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];
}