function merci_permissions_rules_line_item_validate in MERCI (Manage Equipment Reservations, Checkout and Inventory) 7.3
1 string reference to 'merci_permissions_rules_line_item_validate'
- merci_permissions_rules_action_info in merci_permissions/
merci_permissions.module - Implements hook_rules_action_info() on behalf of the user module.
File
- merci_permissions/
merci_permissions.module, line 58
Code
function merci_permissions_rules_line_item_validate($roles_required, $roles_user, $errors) {
if (empty($roles_user)) {
$error = $errors
->offsetExists(MERCI_RESOURCE_REFERENCE) ? $errors
->offsetGet(MERCI_RESOURCE_REFERENCE) : array();
$error[] = t('Patron does not have any roles assigned.');
$errors
->offsetSet(MERCI_RESOURCE_REFERENCE, $error);
}
$suspended_id = array_search('Suspended', merci_permissions_allowed_values());
if (in_array($suspended_id, $roles_user)) {
$error = $errors
->offsetExists(MERCI_RESOURCE_REFERENCE) ? $errors
->offsetGet(MERCI_RESOURCE_REFERENCE) : array();
$error[] = t('Patron is suspended from checking out resources.');
$errors
->offsetSet(MERCI_RESOURCE_REFERENCE, $error);
}
foreach ($roles_required as $id => $role) {
if (empty($role)) {
unset($roles_required[$id]);
}
}
if (empty($roles_required)) {
$error = $errors
->offsetExists(MERCI_RESOURCE_REFERENCE) ? $errors
->offsetGet(MERCI_RESOURCE_REFERENCE) : array();
$error[] = t('No roles are allowed to checkout this item.');
$errors
->offsetSet(MERCI_RESOURCE_REFERENCE, $error);
}
else {
$roles = array_intersect($roles_user, $roles_required);
if (empty($roles)) {
$role_titles = merci_permissions_allowed_values();
$error = $errors
->offsetExists(MERCI_RESOURCE_REFERENCE) ? $errors
->offsetGet(MERCI_RESOURCE_REFERENCE) : array();
$error[] = t('User does not have the following roles to checkout this item: %roles', array(
'%roles' => implode(', ', array_intersect_key($role_titles, array_flip($roles_required))),
));
$errors
->offsetSet(MERCI_RESOURCE_REFERENCE, $error);
}
}
}