function _password_policy_load_active_policy in Password Policy 6
Same name and namespace in other branches
- 7 password_policy.module \_password_policy_load_active_policy()
Loads the first enabled policy that matches the specified roles.
Parameters
$roles: An array of role IDs.
Return value
A policy array, or NULL if no active policy exists.
4 calls to _password_policy_load_active_policy()
- password_policy_cron in ./
password_policy.module - Implements hook_cron().
- password_policy_form_alter in ./
password_policy.module - Implements hook_form_alter().
- password_policy_user in ./
password_policy.module - Implements hook_user().
- _password_policy_constraint_validate in ./
password_policy.module - Validates user password. Returns NULL on success or array with error messages from the constraints on failure.
File
- ./
password_policy.module, line 914 - The password policy module allows you to enforce a specific level of password complexity for the user passwords on the system.
Code
function _password_policy_load_active_policy($roles) {
static $cache = array();
if (empty($roles)) {
$roles = array(
DRUPAL_AUTHENTICATED_RID,
);
}
$key = implode(',', $roles);
// Use array_key_exists() instead of isset() as NULLs may be in the array.
if (!array_key_exists($key, $cache)) {
$result = db_query('SELECT p.* FROM {password_policy} p INNER JOIN {password_policy_role} r ON p.pid = r.pid WHERE p.enabled = 1 AND r.rid IN (' . db_placeholders($roles) . ') ORDER BY p.weight LIMIT 1', $roles);
$row = db_fetch_array($result);
if (is_array($row)) {
// fetch and unserialize the serialized policy
$row['policy'] = unserialize($row['policy']);
$cache[$key] = $row;
}
else {
$cache[$key] = NULL;
}
}
return $cache[$key];
}