Ejemplo n.º 1
0
 public function actionTest()
 {
     $this->assertAdminPermission('user');
     $publicSession = new XenForo_Session();
     $publicSession->start();
     if ($publicSession->get('user_id') != XenForo_Visitor::getUserId()) {
         return $this->responseError(new XenForo_Phrase('please_login_via_public_login_page_before_testing_permissions'));
     }
     if ($this->_request->isPost()) {
         $username = $this->_input->filterSingle('username', XenForo_Input::STRING);
         /* @var $userModel XenForo_Model_User */
         $userModel = $this->getModelFromCache('XenForo_Model_User');
         $user = $userModel->getUserByName($username);
         if (!$user) {
             return $this->responseError(new XenForo_Phrase('requested_user_not_found'), 404);
         }
         $publicSession->set('permissionTest', array('user_id' => $user['user_id'], 'username' => $user['username']));
         $publicSession->save();
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('index'));
     } else {
         return $this->responseView('XenForo_ViewAdmin_Permission_Test', 'permission_test');
     }
 }
Ejemplo n.º 2
0
 public function actionReveal()
 {
     $publicSession = new XenForo_Session();
     $publicSession->start();
     if ($publicSession->get('user_id') != XenForo_Visitor::getUserId()) {
         return $this->responseError(new XenForo_Phrase('please_login_via_public_login_page_before_testing_permissions'));
     }
     $publicSession->set('_WidgetFramework_reveal', true);
     $publicSession->save();
     return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('index'));
 }
Ejemplo n.º 3
0
 /**
  * This simply gets public session, from cookies if necessary.
  *
  * @param Zend_Controller_Request_Http $request
  *
  * @return XenForo_Session
  */
 public static function getPublicSession(Zend_Controller_Request_Http $request)
 {
     $session = new XenForo_Session();
     $session->start();
     if (!$session->sessionExists()) {
         $cookiePrefix = XenForo_Application::get('config')->cookie->prefix;
         $userCookie = $request->getCookie($cookiePrefix . 'user');
         if ($userCookie) {
             if ($userId = XenForo_Model::create('XenForo_Model_User')->loginUserByRememberCookie($userCookie)) {
                 $session->changeUserId($userId);
             } else {
                 XenForo_Helper_Cookie::deleteCookie('user', true);
             }
         }
         if (!empty($_SERVER['HTTP_USER_AGENT'])) {
             $session->set('userAgent', $_SERVER['HTTP_USER_AGENT']);
             $session->set('isRobot', self::isRobot($_SERVER['HTTP_USER_AGENT']));
         }
         if (!empty($_SERVER['HTTP_REFERER'])) {
             $session->set('referer', $_SERVER['HTTP_REFERER']);
             $session->set('fromSearch', self::isSearchReferer($_SERVER['HTTP_REFERER']));
         }
     }
     return $session;
 }