| 1 |
<?php |
<?php |
| 2 |
// $Id: forum_access.module,v 1.5 2006/04/08 23:49:57 merlinofchaos Exp $ |
// $Id: forum_access.module,v 1.6 2006/04/08 23:51:34 merlinofchaos Exp $ |
| 3 |
|
|
| 4 |
/** |
/** |
| 5 |
* @file forum_access.module |
* @file forum_access.module |
| 182 |
} |
} |
| 183 |
// Find our moderator ACL: |
// Find our moderator ACL: |
| 184 |
|
|
| 185 |
$acl_id = db_result(db_query("SELECT acl_id from {acl} WHERE module = 'forum_access' && name = %d", $form['tid']['#value'])); |
if ($form['tid']['#value']) { |
| 186 |
if (!$acl_id) { // create one |
$acl_id = db_result(db_query("SELECT acl_id from {acl} WHERE module = 'forum_access' && name = %d", $form['tid']['#value'])); |
| 187 |
$acl_id = acl_create_new_acl('forum_access', $form['tid']['#value']); |
if (!$acl_id) { // create one |
| 188 |
// update every existing node in this forum to use this acl. |
$acl_id = acl_create_new_acl('forum_access', $form['tid']['#value']); |
| 189 |
$result = db_query("SELECT nid FROM {term_node} WHERE tid = %d", $form['tid']['#value']); |
// update every existing node in this forum to use this acl. |
| 190 |
while ($node = db_fetch_object($result)) { |
$result = db_query("SELECT nid FROM {term_node} WHERE tid = %d", $form['tid']['#value']); |
| 191 |
// all privs to this ACL. |
while ($node = db_fetch_object($result)) { |
| 192 |
acl_node_add_acl($node->nid, $acl_id, 1, 1, 1); |
// all privs to this ACL. |
| 193 |
|
acl_node_add_acl($node->nid, $acl_id, 1, 1, 1); |
| 194 |
|
} |
| 195 |
} |
} |
| 196 |
|
$form['forum_access']['acl'] = acl_edit_form($acl_id, 'Moderators'); |
| 197 |
|
// Move some stuff down so our block goes in a nice place. |
| 198 |
} |
} |
|
$form['forum_access']['acl'] = acl_edit_form($acl_id, 'Moderators'); |
|
|
// Move some stuff down so our block goes in a nice place. |
|
| 199 |
$form['submit']['#weight'] = 10; |
$form['submit']['#weight'] = 10; |
| 200 |
$form['delete']['#weight'] = 10; |
$form['delete']['#weight'] = 10; |
| 201 |
|
|
| 205 |
function forum_access_form_submit($form_id, $form_values) { |
function forum_access_form_submit($form_id, $form_values) { |
| 206 |
db_query("DELETE FROM {forum_access} WHERE tid = %d", $form_values['tid']); |
db_query("DELETE FROM {forum_access} WHERE tid = %d", $form_values['tid']); |
| 207 |
$access = $form_values['forum_access']; // shortcut |
$access = $form_values['forum_access']; // shortcut |
| 208 |
acl_save_form($access['acl']); |
if (array_key_exists($access['acl'])) { |
| 209 |
|
acl_save_form($access['acl']); |
| 210 |
|
} |
| 211 |
foreach($access['view'] as $rid => $checked) { |
foreach($access['view'] as $rid => $checked) { |
| 212 |
$grants[] = array( |
$grants[] = array( |
| 213 |
'realm' => 'forum_access', |
'realm' => 'forum_access', |