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'); } }
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')); }
/** * 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; }