<?php
/******************************* PHP-P10 v2 *****************************
- * Copyright (C) 2011 Philipp Kreil (pk910) *
+ * Copyright (C) 2011-2012 Philipp Kreil (pk910) *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
"d" => self::MODE_TYPE_D,
"R" => self::MODE_TYPE_D,
"z" => self::MODE_TYPE_D,
+ "S" => self::MODE_TYPE_D,
//special behavior
"o" => self::MODE_TYPE_B,
+ "h" => self::MODE_TYPE_B,
"v" => self::MODE_TYPE_B
);
private static $modevalues = null;
trigger_error("unknown mode (".$mode.") on setModes (".$modes.").", E_USER_WARNING);
continue;
}
- if($mode == "o" || $mode == "v") {
+ if($mode == "o" || $mode == "h" || $mode == "v") {
if($this->setPrivs($add, $mode, $args[$c++])) {
if($returndiff && $add) {
$modestradd .= $mode;
}
}
continue;
+ } else if($mode == "b") {
+ if($this->handleBan($add, $mode, $args[$c++])) {
+ if($returndiff && $add) {
+ $modestradd .= $mode;
+ $paramstradd .= " ".$args[$c-1];
+ } else if($returndiff && !$add) {
+ $modestrdel .= $mode;
+ $paramstrdel .= " ".$args[$c-1];
+ }
+ }
+ continue;
}
$flag = self::$modevalues[$mode];
if($add) {
}
}
+ private function handleBan($add, $mode, $mask) {
+ //no ban management right now...
+ return true;
+ }
+
private function setPrivs($add, $mode, $user) {
$user = P10_User::getUserByNum($user);
if($user == null) {
$privs = $this->channel->getUserPrivs($user);
$privFlag = 0;
if($mode == "o") $privFlag = P10_Channel::USERPRIV_OPED;
+ if($mode == "h") $privFlag = P10_Channel::USERPRIV_HALFOP;
if($mode == "v") $privFlag = P10_Channel::USERPRIV_VOICE;
if(!($add xor ($privs & $privFlag)))
return false;