예제 #1
0
 function _deduceUsername()
 {
     global $HTTP_SERVER_VARS, $HTTP_ENV_VARS;
     if (!empty($this->args['auth']) and !empty($this->args['auth']['userid'])) {
         return $this->args['auth']['userid'];
     }
     // Disable session vars (seems problematic)
     //       if (0 && $user = $this->getSessionVar('wiki_user')) {
     if (0 && ($user = $this->getSessionVar('wiki_user'))) {
         // switched auth between sessions.
         // Note: There's no way to demandload a missing class-definition
         // afterwards! (Stupid php)
         if (isa($user, WikiUserClassname())) {
             $this->_user = $user;
             $this->_user->_authhow = 'session';
             return ENABLE_USER_NEW ? $user->UserName() : $this->_user;
         }
     }
     // Sessions override http auth
     if (!empty($HTTP_SERVER_VARS['PHP_AUTH_USER'])) {
         return $HTTP_SERVER_VARS['PHP_AUTH_USER'];
     }
     // pubcookie et al
     if (!empty($HTTP_SERVER_VARS['REMOTE_USER'])) {
         return $HTTP_SERVER_VARS['REMOTE_USER'];
     }
     if (!empty($HTTP_ENV_VARS['REMOTE_USER'])) {
         return $HTTP_ENV_VARS['REMOTE_USER'];
     }
     if ($userid = $this->getCookieVar(getCookieName())) {
         if (!empty($userid) and substr($userid, 0, 2) != 's:') {
             $this->_user->authhow = 'cookie';
             return $userid;
         }
     }
     if ($this->getArg('action') == 'xmlrpc') {
         // how about SOAP?
         // wiki.putPage has special otional userid/passwd arguments. check that later.
         $userid = '';
         if (isset($HTTP_SERVER_VARS['REMOTE_USER'])) {
             $userid = $HTTP_SERVER_VARS['REMOTE_USER'];
         } elseif (isset($HTTP_SERVER_VARS['REMOTE_ADDR'])) {
             $userid = $HTTP_SERVER_VARS['REMOTE_ADDR'];
         } elseif (isset($HTTP_ENV_VARS['REMOTE_ADDR'])) {
             $userid = $HTTP_ENV_VARS['REMOTE_ADDR'];
         } elseif (isset($GLOBALS['REMOTE_ADDR'])) {
             $userid = $GLOBALS['REMOTE_ADDR'];
         }
         return $userid;
     }
     return false;
 }
예제 #2
0
파일: main.php 프로젝트: hugcoday/wiki
 function _deduceUsername()
 {
     global $HTTP_SERVER_VARS, $HTTP_ENV_VARS;
     if (!empty($this->args['auth']) and !empty($this->args['auth']['userid'])) {
         return $this->args['auth']['userid'];
     }
     if ($user = $this->getSessionVar('wiki_user')) {
         // Switched auth between sessions.
         // Note: There's no way to demandload a missing class-definition
         // afterwards! Stupid php.
         if (defined('FUSIONFORGE') and FUSIONFORGE) {
             if (empty($HTTP_SERVER_VARS['PHP_AUTH_USER'])) {
                 return false;
             }
         } else {
             if (isa($user, WikiUserClassname())) {
                 $this->_user = $user;
                 $this->_user->_authhow = 'session';
                 return ENABLE_USER_NEW ? $user->UserName() : $this->_user;
             }
         }
     }
     // Sessions override http auth
     if (!empty($HTTP_SERVER_VARS['PHP_AUTH_USER'])) {
         return $HTTP_SERVER_VARS['PHP_AUTH_USER'];
     }
     // pubcookie et al
     if (!empty($HTTP_SERVER_VARS['REMOTE_USER'])) {
         return $HTTP_SERVER_VARS['REMOTE_USER'];
     }
     if (!empty($HTTP_ENV_VARS['REMOTE_USER'])) {
         return $HTTP_ENV_VARS['REMOTE_USER'];
     }
     if ($userid = $this->getCookieVar(getCookieName())) {
         if (!empty($userid) and substr($userid, 0, 2) != 's:') {
             $this->_user->authhow = 'cookie';
             return $userid;
         }
     }
     if ($this->getArg('action') == 'xmlrpc') {
         // how about SOAP?
         if (empty($GLOBALS['HTTP_RAW_POST_DATA'])) {
             trigger_error("Wrong always_populate_raw_post_data = Off setting in your php.ini\nCannot use xmlrpc!", E_USER_ERROR);
         }
         // wiki.putPage has special otional userid/passwd arguments. check that later.
         $userid = '';
         if (isset($HTTP_SERVER_VARS['REMOTE_USER'])) {
             $userid = $HTTP_SERVER_VARS['REMOTE_USER'];
         } elseif (isset($HTTP_SERVER_VARS['REMOTE_ADDR'])) {
             $userid = $HTTP_SERVER_VARS['REMOTE_ADDR'];
         } elseif (isset($HTTP_ENV_VARS['REMOTE_ADDR'])) {
             $userid = $HTTP_ENV_VARS['REMOTE_ADDR'];
         } elseif (isset($GLOBALS['REMOTE_ADDR'])) {
             $userid = $GLOBALS['REMOTE_ADDR'];
         }
         return $userid;
     }
     return false;
 }