function _forum_access_comment_access_callback in Forum Access 7
1 string reference to '_forum_access_comment_access_callback'
- forum_access_menu_alter in ./
forum_access.module - Implements hook_menu_alter().
File
- ./
forum_access.module, line 100 - forum_access.module
Code
function _forum_access_comment_access_callback($comment, $op) {
global $user;
if ($op == 'reply') {
// 'reply' is governed by AND, return TRUE by default.
$node = $comment;
if ($tid = _forum_access_get_tid($node)) {
return forum_access_access('create', $tid);
}
return TRUE;
}
if (is_numeric($comment)) {
$comment = comment_load($comment);
if (empty($comment)) {
return FALSE;
}
}
elseif (is_string($comment)) {
return FALSE;
}
$node = node_load($comment->nid);
// The remaining $ops are governed by OR, return FALSE by default.
if ($tid = _forum_access_get_tid($node)) {
if ($op == 'approve') {
return $user->uid == 1 || forum_access_is_moderator($user, $tid);
}
if (!user_access('administer comments')) {
if ($op == 'edit' && (forum_access_access('update', $tid) || user_access('edit any forum content') || $user->uid == $comment->uid && user_access('edit own forum content'))) {
forum_access_enable_moderator();
return TRUE;
}
if ($op == 'delete' && (forum_access_access('delete', $tid) || user_access('delete any forum content') || $user->uid == $comment->uid && user_access('delete own forum content'))) {
return TRUE;
}
}
}
return FALSE;
}