Exemplo n.º 1
0
$plugin = Dog::getPlugin();
$serv = Dog::getServer();
$argv = $plugin->argv();
$argc = count($argv);
if ($argc === 0) {
    # Show for yourself
    $argv[] = Dog::getUser()->getName();
    $argc = 1;
}
if ($argc === 1) {
    # Show for a user
    if (false === ($user = Dog::getOrLoadUserByArg($argv[0]))) {
        Dog::rply('err_user');
    } else {
        Dog_PrivServer::flushPermcache($serv, $user);
        $privstr = Dog_PrivServer::displayPrivs($serv, $user);
        $plugin->rply('show', array($user->displayName(), $privstr, $serv->displayName()));
    }
} elseif ($argc === 2) {
    $sign = $argv[1][0];
    $argv[1] = Dog_IRCPriv::filterPrivsToEdit($argv[1]);
    # Alter Privs
    if (false === ($user = Dog::getOrLoadUserByArg($argv[0]))) {
        Dog::rply('err_user');
    } elseif (!$user->isRegistered()) {
        $plugin->rply('not_regged', array($user->displayName()));
    } elseif ($sign === '+' && strlen($argv[1]) >= 1) {
        $u = Dog::getUser();
        $have = Dog_PrivServer::getPermbits($serv, $u);
        $want = Dog_IRCPriv::charsToBits(substr($argv[1], 1));
        $high = Dog_IRCPriv::getHighestBit($have);