function workbench_email_determine_valid_roles in Workbench Email 7
Same name and namespace in other branches
- 7.3 workbench_email.module \workbench_email_determine_valid_roles()
Determines the valid roles for a given moderation task and content type(s).
Return value
valid_roles Returns the valid roles or an empty array
3 calls to workbench_email_determine_valid_roles()
- theme_workbench_email_transitions_form in ./
workbench_email.admin.inc - Transforms the email transitions administration form into a table.
- workbench_email_transitions_form in ./
workbench_email.admin.inc - Administration form to create and delete email transitions.
- workbench_email_transitions_form_submit in ./
workbench_email.admin.inc - Form submit handler for email transitions.
File
- ./
workbench_email.module, line 315 - Code for the Workbench Email Module.
Code
function workbench_email_determine_valid_roles() {
$valid_roles = array();
$types = drupal_map_assoc(workbench_moderation_moderate_node_types());
$all_types = node_type_get_types();
foreach ($types as $type) {
$types[$type] = $all_types[$type]->name;
}
$moderation_permissions = wv_workflow_determine_moderation_permissions();
$roles = user_roles();
foreach ($roles as $rid => $role) {
// Get a full list of this role's permissions.
$actual_permissions_set = array();
$actual_permissions_set = user_role_permissions(array_filter(array(
$rid => TRUE,
DRUPAL_AUTHENTICATED_RID => $rid != DRUPAL_ANONYMOUS_RID,
)));
$valid_permissions = array();
foreach ($actual_permissions_set as $role_rid => $actual_permissions) {
foreach ($actual_permissions as $permission => $value) {
if (array_key_exists($permission, $moderation_permissions)) {
$valid_permissions[] = $permission;
}
}
}
if ($valid_permissions) {
$valid_roles[$rid] = $role;
}
}
return $valid_roles;
}