function block_access_check_perms in Block Access 6
Same name and namespace in other branches
- 6.2 block_access.module \block_access_check_perms()
- 7 block_access.module \block_access_check_perms()
1 call to block_access_check_perms()
File
- ./
block_access.module, line 227
Code
function block_access_check_perms(&$form, $key, $block) {
$module = $block['module']['#value'];
$delta = $block['delta']['#value'];
// Remove the block completely if it's not allowed to be viewed
if (!block_access_can_view($module, $delta)) {
unset($form[$key]);
}
else {
// Remove the delete link if the user can't delete this block
if (!block_access_can_delete($module, $delta)) {
unset($form[$key]['delete']);
}
// Remove the configure link if the user can't configure this block
if (!block_access_can_config($module, $delta)) {
unset($form[$key]['configure']);
}
// if a block is in BLOCK_REGION_NONE it is effectively disabled
if ($block['region']['#default_value'] == BLOCK_REGION_NONE) {
// Disable the region selection and weight if the user can't enable the block
if (!block_access_can_enable($module, $delta)) {
$form[$key]['region']['#disabled'] = TRUE;
$form[$key]['weight']['#disabled'] = TRUE;
}
}
else {
// Disable the region selection and weight if the user can't move the block
if (!block_access_can_move($module, $delta)) {
$form[$key]['region']['#disabled'] = TRUE;
$form[$key]['weight']['#disabled'] = TRUE;
}
// Remove the <none> option from the select list if the user can't disable the block
if (!block_access_can_disable($module, $delta)) {
unset($form[$key]['region']['#options'][BLOCK_REGION_NONE]);
}
}
}
}