function forum_access_form_submit in Forum Access 5
File
- ./
forum_access.module, line 291 - forum_access.module
Code
function forum_access_form_submit($form_id, $form_values) {
db_query("DELETE FROM {forum_access} WHERE tid = %d", $form_values['tid']);
$access = $form_values['forum_access'];
// shortcut
if (array_key_exists('acl', $access)) {
acl_save_form($access['acl']);
}
foreach ($access['view'] as $rid => $checked) {
$grants[] = array(
'realm' => 'forum_access',
'gid' => $rid,
'grant_view' => (bool) $checked,
'grant_update' => !empty($access['update'][$rid]),
'grant_delete' => !empty($access['delete'][$rid]),
);
db_query("INSERT INTO {forum_access} (tid, rid, grant_view, grant_update, grant_delete, grant_create) VALUES (%d, %d, %d, %d, %d, %d)", $form_values['tid'], $rid, (bool) $checked, !empty($access['update'][$rid]), !empty($access['delete'][$rid]), !empty($access['create'][$rid]));
}
// mass update
$result = db_query("SELECT n.nid FROM {node} n LEFT JOIN {term_node} tn ON tn.nid = n.nid WHERE tn.tid = %d", $form_values['tid']);
while ($node = db_fetch_object($result)) {
node_access_write_grants($node, $grants, 'forum_access');
}
}