Agora_Driver::updateBan PHP Method

updateBan() public method

Ban user on a specific forum.
public updateBan ( string $user, integer $forum_id = null, string $action = 'add' )
$user string Moderator username.
$forum_id integer Forum to add moderator to.
$action string Action to peform ('add' or 'delete').
    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;
    }