function find_perm_form_submit in Util 7
Module settings form submission handler.
File
- contribs/
find_perm/ find_perm.module, line 82 - Find permission common to selected roles.
Code
function find_perm_form_submit($form, &$form_state) {
$roles = $form['#roles'];
$perms = $form['#perms'];
$selected = array_filter($form_state['values']['roles']);
$which = array_intersect_key($roles, $selected);
$perm_query = "SELECT permission FROM {role_permission} WHERE rid = :rid ";
$common = array_keys($perms);
foreach ($selected as $rid) {
$permission = db_query($perm_query, array(
':rid' => $rid,
))
->fetchCol();
$common = array_intersect($common, $permission);
}
$query = "SELECT DISTINCT permission FROM {role_permission} " . "WHERE rid NOT IN (:rids) AND permission IN (:perms) ";
$others = db_query($query, array(
':rids' => $selected,
':perms' => $common,
))
->fetchCol();
$exclusive = array_diff($common, $others);
$common_titles = $common;
foreach ($common as $rid => $name) {
$common_titles[$rid] = array(
'data' => strip_tags($perms[$name]['title']),
'class' => array(
in_array($name, $exclusive) ? 'exclusive' : 'not-exclusive',
),
);
}
$form_state['storage']['common'] = $common_titles;
$form_state['rebuild'] = TRUE;
}