public function updateBan($user, $forum_id = null, $action = 'add')
{
if ($forum_id == null) {
$forum_id = $this->_forum_id;
}
$perms = $GLOBALS['injector']->getInstance('Horde_Perms');
$perm_name = 'agora:forums:' . $this->_scope . ':' . $forum_id;
if (!$perms->exists($perm_name)) {
$forum_perm = $GLOBALS['injector']->getInstance('Horde_Core_Perms')->newPermission($perm_name);
$perms->addPermission($forum_perm);
} else {
$forum_perm = $perms->getPermission($perm_name);
if ($forum_perm instanceof PEAR_Error) {
return $forum_perm;
}
}
if ($action == 'add') {
// Allow to only read posts
$forum_perm->removeUserPermission($user, Horde_Perms::ALL, true);
$forum_perm->addUserPermission($user, Horde_Perms::READ, true);
} else {
// Remove all acces to user
$forum_perm->removeUserPermission($user, Horde_Perms::ALL, true);
}
return true;
}