Show
Ignore:
Timestamp:
03/09/08 02:51:37 (5 years ago)
Author:
Slynderdale
Message:

Adds a switch to the fromAdmin in AdminCommand?.php to check if for just the hostmask admin and not an operator Changes were made to the Set plugin to only allow hostmask admins to set and retrieve ini settings. Changes were made in Toogle so hostmask so only hostmask admins can disable/enable modules.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/Phergie/Plugin/Set.php

    r129 r142  
    1616    public function onDoSet($var, $value, $tmp = null) 
    1717    { 
    18         $append = $var === '-a' || $var === 'append'; 
    19         // Got an append parameter, so we shift value/tmp down to var/value 
    20         if ($append) { 
    21                 $var = $value; 
    22                 $value = $tmp; 
    23         } elseif(!empty($tmp)) { 
    24                 $value .= ' '.$tmp; 
    25         } 
     18          if ($this->fromAdmin(false)) { 
     19            $append = $var === '-a' || $var === 'append'; 
     20            // Got an append parameter, so we shift value/tmp down to var/value 
     21            if ($append) { 
     22                $var = $value; 
     23                $value = $tmp; 
     24            } elseif(!empty($tmp)) { 
     25                $value .= ' '.$tmp; 
     26            } 
    2627 
    27         // Get ini file 
    28         $ini = PHERGIE_DIR . 'Phergie/' . (empty($_SERVER['argv'][1]) ? PHERGIE_INI : $_SERVER['argv'][1]); 
    29         $contents = file_get_contents($ini); 
    30         // Replace var/value 
    31         if (preg_match('#^\s*('.str_replace('.', '\\.', $var).'\s*=\s*)(.*)$#im', $contents, $m)) { 
    32                 $contents = preg_replace('#^\s*'.str_replace('.', '\\.', $var).'\s*=.*$#im', $var.' = '.$this->makeIniValue($value, $m[2], $append), $contents); 
    33                 $this->setIni($var, $this->parseIniValue($this->makeIniValue($value, $m[2], $append))); 
    34                 // Insert it if not set 
    35         } else { 
    36                 $contents .= "\r\n".$var.' = '.$this->makeIniValue($value); 
    37                 $this->setIni($var, $this->parseIniValue($value)); 
    38         } 
    39         // Save ini file 
    40         file_put_contents($ini, $contents); 
     28            // Get ini file 
     29            $ini = PHERGIE_DIR . 'Phergie/' . (empty($_SERVER['argv'][1]) ? PHERGIE_INI : $_SERVER['argv'][1]); 
     30            $contents = file_get_contents($ini); 
     31            // Replace var/value 
     32            if (preg_match('#^\s*('.str_replace('.', '\\.', $var).'\s*=\s*)(.*)$#im', $contents, $m)) { 
     33                $contents = preg_replace('#^\s*'.str_replace('.', '\\.', $var).'\s*=.*$#im', $var.' = '.$this->makeIniValue($value, $m[2], $append), $contents); 
     34                $this->setIni($var, $this->parseIniValue($this->makeIniValue($value, $m[2], $append))); 
     35            // Insert it if not set 
     36            } else { 
     37                $contents .= "\r\n".$var.' = '.$this->makeIniValue($value); 
     38                $this->setIni($var, $this->parseIniValue($value)); 
     39            } 
     40 
     41            // Save ini file 
     42            file_put_contents($ini, $contents); 
     43        } 
    4144    } 
    4245 
    4346        public function onDoGet($var) 
    4447        { 
    45                 $val = $this->getIni($var); 
    46                 $this->doPrivmsg($this->event->getSource(), $var.' = '.($val===null?'null':$val)); 
     48      if ($this->fromAdmin(false)) { 
     49                      $val = $this->getIni($var); 
     50                      $this->doPrivmsg($this->event->getSource(), $var.' = '.($val===null?'null':$val)); 
     51                  } 
    4752        } 
    4853