Gets the Session.
public static getSession ( ) : Symfony\Component\HttpFoundation\SessionInterface | null | ||
return | Symfony\Component\HttpFoundation\SessionInterface | null | The session |
/** * Used by subclasses to validate access keys when they are allowed. * @param $userId int The user this key refers to * @param $reviewId int The ID of the review this key refers to * @param $newKey string The new key name, if one was supplied; otherwise, the existing one (if it exists) is used * @return object Valid user object if the key was valid; otherwise NULL. */ function &validateAccessKey($userId, $reviewId, $newKey = null) { $press =& Request::getPress(); if (!$press || !$press->getSetting('reviewerAccessKeysEnabled')) { $accessKey = false; return $accessKey; } define('REVIEWER_ACCESS_KEY_SESSION_VAR', 'ReviewerAccessKey'); import('lib.pkp.classes.security.AccessKeyManager'); $accessKeyManager = new AccessKeyManager(); $session =& Request::getSession(); // Check to see if a new access key is being used. if (!empty($newKey)) { if (Validation::isLoggedIn()) { Validation::logout(); } $keyHash = $accessKeyManager->generateKeyHash($newKey); $session->setSessionVar(REVIEWER_ACCESS_KEY_SESSION_VAR, $keyHash); } else { $keyHash = $session->getSessionVar(REVIEWER_ACCESS_KEY_SESSION_VAR); } // Now that we've gotten the key hash (if one exists), validate it. $accessKey =& $accessKeyManager->validateKey('ReviewerContext', $userId, $keyHash, $reviewId); if ($accessKey) { $userDao =& DAORegistry::getDAO('UserDAO'); $user =& $userDao->getUser($accessKey->getUserId(), false); return $user; } // No valid access key -- return NULL. return $accessKey; }
/** * Display journal management index page. */ function index() { $this->validate(); $this->setupTemplate(); $journal =& Request::getJournal(); $templateMgr =& TemplateManager::getManager(); // Display a warning message if there is a new version of OJS available $newVersionAvailable = false; if (Config::getVar('general', 'show_upgrade_warning')) { import('lib.pkp.classes.site.VersionCheck'); if ($latestVersion = VersionCheck::checkIfNewVersionExists()) { $newVersionAvailable = true; $templateMgr->assign('latestVersion', $latestVersion); $currentVersion =& VersionCheck::getCurrentDBVersion(); $templateMgr->assign('currentVersion', $currentVersion->getVersionString()); // Get contact information for site administrator $roleDao =& DAORegistry::getDAO('RoleDAO'); $siteAdmins =& $roleDao->getUsersByRoleId(ROLE_ID_SITE_ADMIN); $templateMgr->assign_by_ref('siteAdmin', $siteAdmins->next()); } } $templateMgr->assign('newVersionAvailable', $newVersionAvailable); $templateMgr->assign_by_ref('roleSettings', $this->retrieveRoleAssignmentPreferences($journal->getId())); $templateMgr->assign('publishingMode', $journal->getSetting('publishingMode')); $templateMgr->assign('announcementsEnabled', $journal->getSetting('enableAnnouncements')); $session =& Request::getSession(); $session->unsetSessionVar('enrolmentReferrer'); $templateMgr->assign('helpTopicId', 'journal.index'); $templateMgr->display('manager/index.tpl'); }
function AddEmailStreamAction(Request $request) { $server = $request->post('server'); $account = $request->post('user'); $password = $request->post('password'); $port = $request->post('port'); $category = $request->post('category'); $firstUpdate = $request->post('firstUpdate'); $user = $request->getSession()->get('id'); $this->loadModel('EmailModel'); $this->loadModel('CategoryModel'); /** @var EmailEntity $emailEntity */ $emailEntity = $this->emailmodel->createEmailStream($server, $account, $password, $port, $firstUpdate); if ($emailEntity) { /** @var CategoryEntity $categoryEntity */ $categoryEntity = $this->categorymodel->createCategory($user, $category); $streamCategoryEntity = new StreamCategoryEntity(); $streamCategoryEntity->setCategory($categoryEntity->getId()); $streamCategoryEntity->setStream($emailEntity->getId()); $streamCategoryEntity->setStreamType(ArticleModel::EMAIL); $streamCategoryEntity->persist(); $this->redirectToRoute('index'); } else { $this->render('layouts/addStream', array('errors' => array('La connexion avec ce flux n\'a pas pu être établi. Vérifier vos informations.'))); } }
public function addRSSStreamAction(Request $request) { $categoryTitle = $request->post('category'); $firstUpdate = $request->post('firstUpdate'); $url = $request->post('url_flux'); var_dump($categoryTitle); var_dump($firstUpdate); var_dump($url); $this->loadModel('CategoryModel'); $this->loadModel('RssModel'); $url = $this->rssmodel->resolveFile($url); $userId = $request->getSession()->get('id'); $rssEntity = $this->rssmodel->createStream($url, $firstUpdate); if ($rssEntity) { $categoryEntity = $this->categorymodel->createCategory($userId, $categoryTitle); $streamCategoryEntity = new StreamCategoryEntity(); $streamCategoryEntity->setCategory($categoryEntity->getId()); $streamCategoryEntity->setStream($rssEntity->getId()); $streamCategoryEntity->setStreamType(ArticleModel::RSS); $streamCategoryEntity->persist(); $this->rssmodel->streamCron($rssEntity); $this->redirectToRoute('index'); } else { $this->render('layouts/addStream', array('errors' => array('Une erreur est survenue dans la connexion au flux rss. Veuillez réssayer ! '))); } }
function addTwitterStreamAction(Request $request) { $categoryTitle = $request->post('category'); $firstUpdate = $request->post('firstUpdate'); $channel = $request->post('channel'); $userId = $request->getSession()->get('id'); $channel = str_replace('@', '', $channel); $this->loadModel('CategoryModel'); $this->loadModel('TwitterModel'); if (!$this->twittermodel->isValidChannel($channel)) { $data = array('errors' => array('La chaine n\'existe pas, veuillez spécifier une chaine existante')); $this->render('layouts/addStream', $data); return; } $twitterEntity = $this->twittermodel->createStream($channel, $firstUpdate); if ($twitterEntity) { $categoryEntity = $this->categorymodel->createCategory($userId, $categoryTitle); $streamCategoryEntity = new StreamCategoryEntity(); $streamCategoryEntity->setCategory($categoryEntity->getId()); $streamCategoryEntity->setStream($twitterEntity->getId()); $streamCategoryEntity->setStreamType(ArticleModel::TWITTER); $streamCategoryEntity->persist(); $this->twittermodel->streamCron($twitterEntity); $this->redirectToRoute('index'); } else { $this->render('layouts/addStream', array('errors' => array('Une erreur est survenue dans la connexion au flux twitter. Veuillez réssayer ! '))); } }
public function UnFollowAction(Request $request) { $this->loadModel('FollowerModel'); $followed = $request->post('id'); $user = $request->getSession()->get('id'); $this->followermodel->unfollow($followed, $user); $this->redirectToRoute('profile'); }
private function NoBlogAction(Request $request) { $post = ltrim(strstr($request->post('id'), '_'), '_'); $this->loadModel('CategoryModel'); $this->loadModel('ArticleModel'); /** @var ArticleEntity $articleEntity */ $this->articlemodel->removeArticleFromBlog($request->getSession()->get('id'), $post); }
public function getCaptcha(Request $request) { $params = $request->getMethodParams(); MethodUtils::checkSignature(array(Types::STRING), $params); $parts = explode('.', $params[0]); if (count($parts) != 2 || count_chars($parts[0]) < 1 || count_chars($parts[1]) < 1) { throw new InvalidParameterException('methodId must consist of an ' . 'owner object and a method name separated by a single dot.'); } $captchaId = call_user_func_array(array($this->captchaAuth, 'getCaptcha'), $parts); $ids = $request->getSession()->getValue(SessionValues::CAPTCHA_IDS); if ($ids == null) { $ids = array(); } $ids[] = $captchaId; $request->getSession()->setValue(SessionValues::CAPTCHA_IDS, $ids); return new ReturnValue($captchaId); }
/** * @descrpition 检测微信ACCESS_TOKEN是否过期 * -10是预留的网络延迟时间 * @return bool */ public static function checkAccessToken() { //获取SESSION $accessToken = Request::getSession('wechat_access_token'); if (!empty($accessToken) && time() - $accessToken['time'] < $accessToken['expires_in'] - 10) { return $accessToken; } return false; }
function getContents(&$templateMgr) { if (!defined('SESSION_DISABLE_INIT')) { $session =& Request::getSession(); $templateMgr->assign_by_ref('userSession', $session); $templateMgr->assign('loggedInUsername', $session->getSessionVar('username')); } return parent::getContents($templateMgr); }
public function deleteExperienceAction(Request $request, $idexperience) { $em = $this->getDoctrine()->getManager(); $membre = $em->getRepository('CestomStoreBundle:Membre')->findOneByid($this->getUser()->getId()); $qb = $em->createQueryBuilder('f'); $qb->select('f')->from('CestomStoreBundle:Experience', 'f')->where("f.idExperience =:idExperience AND f.idmembre =:idmembre")->setParameter('idExperience', $idexperience)->setParameter('idmembre', $membre->getIdmembre()); $query = $qb->getQuery(); $experience = $query->getSingleResult(); try { $em->remove($experience); $em->flush(); $request->getSession()->getFlashBag()->add('messagesucces', 'Experience supprimée avec succès'); return $this->redirect($this->generateUrl('cestom_user_gestion_experience')); } catch (\Exception $e) { $request->getSession()->getFlashBag()->add('messagesucces', 'Impossible de supprimer l\'experience '); return $this->redirect($this->generateUrl('cestom_user_gestion_experience')); } }
/** * @Route("/login", name="UserBundle_login") */ public function loginAction(Request $request) { //parent::loginAction($request); /** @var $session \Symfony\Component\HttpFoundation\Session\Session */ $session = $request->getSession(); if (class_exists('\\Symfony\\Component\\Security\\Core\\Security')) { $authErrorKey = Security::AUTHENTICATION_ERROR; $lastUsernameKey = Security::LAST_USERNAME; } else { // BC for SF < 2.6 $authErrorKey = SecurityContextInterface::AUTHENTICATION_ERROR; $lastUsernameKey = SecurityContextInterface::LAST_USERNAME; } // get the error if any (works with forward and redirect -- see below) if ($request->attributes->has($authErrorKey)) { $error = $request->attributes->get($authErrorKey); } elseif (null !== $session && $session->has($authErrorKey)) { $error = $session->get($authErrorKey); $session->remove($authErrorKey); } else { $error = null; } if (!$error instanceof AuthenticationException) { $error = null; // The value does not come from the security component. } // last username entered by the user $lastUsername = null === $session ? '' : $session->get($lastUsernameKey); if ($this->has('security.csrf.token_manager')) { $csrfToken = $this->get('security.csrf.token_manager')->getToken('authenticate')->getValue(); } else { // BC for SF < 2.4 $csrfToken = $this->has('form.csrf_provider') ? $this->get('form.csrf_provider')->generateCsrfToken('authenticate') : null; } /**Begin override */ $authenticationUtils = $this->get('security.authentication_utils'); // get the login error if there is one $error = $authenticationUtils->getLastAuthenticationError() ? $authenticationUtils->getLastAuthenticationError() : ""; // last username entered by the user $lastUsername = $authenticationUtils->getLastUsername(); //test /*if( $this->container->get('security.context')->isGranted('IS_AUTHENTICATED_REMEMBERED') ){ // IS_AUTHENTICATED_FULLY also implies IS_AUTHENTICATED_REMEMBERED, but IS_AUTHENTICATED_ANONYMOUSLY doesn't return new RedirectResponse($this->container->get('router')->generate('NosBundlesUserBundle:Security:login.html.twig', array())); // of course you don't have to use the router to generate a route if you want to hard code a route } /**End override */ $error = ""; return $this->renderLogin(array('last_username' => $lastUsername, 'error' => $error, 'csrf_token' => $csrfToken)); }
/** * Create a CAPTCHA object. * @param $length int The length, in characters, of the CAPTCHA test to create * @return object Captcha */ function &createCaptcha($length = 6) { $captchaDao =& DAORegistry::getDAO('CaptchaDAO'); $session =& Request::getSession(); if ($session && $this->isEnabled()) { $captcha = new Captcha(); $captcha->setSessionId($session->getId()); $captcha->setValue(Validation::generatePassword($length)); $captchaDao->insertCaptcha($captcha); } else { $captcha = null; } return $captcha; }
/** * Display journal management index page. */ function index() { $this->validate(); $this->setupTemplate(); $journal =& Request::getJournal(); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign_by_ref('roleSettings', $this->retrieveRoleAssignmentPreferences($journal->getId())); $templateMgr->assign('publishingMode', $journal->getSetting('publishingMode')); $templateMgr->assign('announcementsEnabled', $journal->getSetting('enableAnnouncements')); $session =& Request::getSession(); $session->unsetSessionVar('enrolmentReferrer'); $templateMgr->assign('helpTopicId', 'journal.index'); $templateMgr->display('manager/index.tpl'); }
function getContents(&$templateMgr) { if (!defined('SESSION_DISABLE_INIT')) { $session =& Request::getSession(); $templateMgr->assign_by_ref('userSession', $session); $templateMgr->assign('loggedInUsername', $session->getSessionVar('username')); $loginUrl = Request::url(null, 'login', 'signIn'); if (Config::getVar('security', 'force_login_ssl')) { $loginUrl = String::regexp_replace('/^http:/', 'https:', $loginUrl); } $templateMgr->assign('userBlockLoginUrl', $loginUrl); } return parent::getContents($templateMgr); }
/** * @Route("/login", name="lemlabs_login") */ public function loginAction(Request $request) { $redirectUrl = $this->container->getParameter('lemlabs_user.redirect_uri_after_login'); // Redirection to dashboard if user is authenticated if ($this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY')) { return $this->redirect($redirectUrl); } $session = $request->getSession(); if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) { $error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR); } else { $error = $session->get(SecurityContext::AUTHENTICATION_ERROR); $session->remove(SecurityContext::AUTHENTICATION_ERROR); } return $this->render('LemLabsUserBundle:User:login.html.twig', array('last_username' => $session->get(SecurityContext::LAST_USERNAME), 'error' => $error)); }
public function AsideAction(Request $request) { if ($request->isInternal()) { $this->loadModel('CategoryModel'); $this->loadModel('EmailModel'); $this->loadModel('TwitterModel'); $this->loadModel('RssModel'); $id = $request->getSession()->get('id'); $categories = $this->categorymodel->getByUserId($id); $emailStreams = $this->emailmodel->getByUserId($id); $twitterStreams = $this->twittermodel->getByUserId($id); $rssStreams = $this->rssmodel->getByUserId($id); $streams = array('emailStreams' => $emailStreams, 'twitterStreams' => $twitterStreams, 'rssStreams' => $rssStreams); $data = array('categories' => $categories, 'streams' => $streams); $this->render('layouts/aside', $data); } }
/** * Change the locale for the current user. * @param $args array first parameter is the new locale */ function setLocale($args) { $setLocale = isset($args[0]) ? $args[0] : null; $site =& Request::getSite(); if (Locale::isLocaleValid($setLocale) && in_array($setLocale, $site->getSupportedLocales())) { $session =& Request::getSession(); $session->setSessionVar('currentLocale', $setLocale); } if (isset($_SERVER['HTTP_REFERER'])) { Request::redirectUrl($_SERVER['HTTP_REFERER']); } $source = Request::getUserVar('source'); if (isset($source) && !empty($source)) { Request::redirectUrl(Request::getProtocol() . '://' . Request::getServerHost() . $source, false); } Request::redirect(null, 'index'); }
function callback($hookName, $args) { $fileName =& $args[0]; $type =& $args[1]; $fileId =& $args[2]; $overwrite =& $args[3]; $result =& $args[4]; // Set to false and return true to indicate upload failure // Ask ClamAV for a verdict on $_FILES[$fileName]['tmp_name'] ini_set('error_reporting', E_ALL); $clam = new Net_Clamd(CLAMDSOCKET); $clam_version = $clam->version(); if (!$clam_version) { $hasVirus = true; $virusScanMsg = "ClamAV is not running, therefore cannot accept files for virus scanning"; //throw new Exception("ClamAV is not running"); } else { if (CLAMDISLOCAL) { $virus = $clam->scan($_FILES[$fileName]['tmp_name']); } else { $data = file_get_contents($_FILES[$fileName]['tmp_name']); $virus = $clam->instream($data); } $hasVirus = 'OK' != substr($virus, -2); $virus = substr(strstr($virus, ': '), 2); $virusScanMsg = 'ClamAV version ' . $clam_version . ' says: '; if (!$hasVirus) { $virusScanMsg = $virusScanMsg . 'No virus found'; } else { $virusScanMsg = $virusScanMsg . $virus; } } //$hasVirus=true; $session =& Request::getSession(); $session->setSessionVar('hasVirus', $hasVirus); $session->setSessionVar('virusScanMsg', $virusScanMsg); //setcookie('hasVirus', $hasVirus); //setcookie('virusScanMsg', $virusScanMsg); if ($hasVirus) { $result = false; return true; } else { return false; } }
/** * Restore original user account after signing in as a user. */ function signOutAsUser() { $this->validate(); $session =& Request::getSession(); $signedInAs = $session->getSessionVar('signedInAs'); if (isset($signedInAs) && !empty($signedInAs)) { $signedInAs = (int) $signedInAs; $userDao =& DAORegistry::getDAO('UserDAO'); $oldUser =& $userDao->getUser($signedInAs); $session->unsetSessionVar('signedInAs'); if (isset($oldUser)) { $session->setSessionVar('userId', $signedInAs); $session->setUserId($signedInAs); $session->setSessionVar('username', $oldUser->getUsername()); } } Request::redirect(null, 'user'); }
/** * Display press management index page. */ function index() { $this->setupTemplate(); $press =& Request::getPress(); $pressSettingsDao =& DAORegistry::getDAO('PressSettingsDAO'); $announcementsEnabled = $pressSettingsDao->getSetting($press->getId(), 'enableAnnouncements'); $customSignoffInternal = $pressSettingsDao->getSetting($press->getId(), 'useCustomInternalReviewSignoff'); $customSignoffExternal = $pressSettingsDao->getSetting($press->getId(), 'useCustomExternalReviewSignoff'); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('customSingoffEnabled', $customSignoffInternal || $customSignoffExternal); $userGroupDao =& DAORegistry::getDAO('UserGroupDAO'); $userGroups =& $userGroupDao->getByContextId($press->getId()); $templateMgr->assign_by_ref('userGroups', $userGroups); $session =& Request::getSession(); $session->unsetSessionVar('enrolmentReferrer'); $templateMgr->assign('announcementsEnabled', $announcementsEnabled); $templateMgr->assign('helpTopicId', 'press.index'); $templateMgr->display('manager/index.tpl'); }
/** * Activate the theme. */ function activate(&$templateMgr) { // Resets the template directory to the files in this directory -- Credit to https://github.com/cu-library/OJS-Modern-Theme for the fix/redirection $templateMgr->template_dir[0] = Core::getBaseDir() . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . 'themes' . DIRECTORY_SEPARATOR . 'ojs-bootstrapped' . DIRECTORY_SEPARATOR . 'templates'; $templateMgr->compile_id = 'bootstrapped'; // Add viewport $viewport = ' <meta name="viewport" content="width=device-width, initial-scale=1">'; // Add Font Awesome $fontAwesome = ' <link rel="stylesheet" id="font-awesome-css" href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" type="text/css" media="screen">'; // Add in jQuery $jQuery = ' <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>'; // Selctivizr for IE Pseudo classes $selctivizr = '<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/mootools/1.5.1/mootools-yui-compressed.js"></script> <!--[if (gte IE 6)&(lte IE 8)]> <script type="text/javascript" src="assets/js/selectivizr-min.js"></script> <![endif]-->'; $additionalHeadData = $templateMgr->get_template_vars('additionalHeadData'); $templateMgr->assign('additionalHeadData', $additionalHeadData . "\n" . $jQuery . "\n" . $viewport . "\n" . $fontAwesome . "\n" . $selctivizr); // Add Scroll2Top JS $templateMgr->addJavaScript($this->getPluginPath() . '/assets/js/scroll2top.js'); // Add Modernizr JS $templateMgr->addJavaScript($this->getPluginPath() . '/assets/js/modernizr.js'); // Add in Bootstrap JS $templateMgr->addJavaScript($this->getPluginPath() . '/components/bootstrap-sass/assets/javascripts/bootstrap.min.js'); // Add Custom JS $templateMgr->addJavaScript($this->getPluginPath() . '/assets/js/custom.js'); if (($stylesheetFilename = $this->getStylesheetFilename()) != null) { $path = Request::getBaseUrl() . '/' . $this->getPluginPath() . '/assets/stylesheets/' . $stylesheetFilename; $templateMgr->addStyleSheet($path); } // borrows logic from user block plugin to handle user dropdown if (!defined('SESSION_DISABLE_INIT')) { $session =& Request::getSession(); $templateMgr->assign_by_ref('userSession', $session); $templateMgr->assign('loggedInUsername', $session->getSessionVar('username')); } $requestedPage = PKPRequest::getRequestedPage(); if ($requestedPage == 'article') { $path = Request::getBaseUrl() . '/' . $this->getPluginPath() . '/assets/stylesheets/style_article.css'; $templateMgr->addStyleSheet($path); $templateMgr->addJavaScript($this->getPluginPath() . '/js/article.js'); } }
/** * @descrpition 添加评论 */ public function addcomment() { $jumpUrl = ITEM_DOMAIN . 'doc/main/aid-' . $this->param['aid']; //判断验证码 $captcha = Request::getSession('captcha'); if ($captcha != strtolower($this->param['captcha'])) { View::showErrorMessage($jumpUrl, '验证码错误'); } if (empty($this->param['aid']) || empty($this->param['item']) || empty($this->param['mid']) || empty($this->param['nickname']) || empty($this->param['content'])) { View::showErrorMessage($jumpUrl, '必填项未填写全'); } $fields = array(); $fields['cid'] = Request::getRequest('cid', 'int'); $fields['aid'] = Request::getRequest('aid', 'int'); $fields['item'] = Request::getRequest('item', 'str'); $fields['mid'] = Request::getRequest('mid', 'int'); $fields['nickname'] = Request::getRequest('nickname', 'str'); $fields['email'] = Request::getRequest('email', 'str'); $fields['website'] = Request::getRequest('website', 'str'); $fields['ctime'] = time(); $fields['content'] = Request::getRequest('content', 'str'); ItemDocCommentBusiness::setComment($fields); //如果是回复别人的回复,则发送邮件提醒 if (EMAIL_SENT_FOR_REPLY && $fields['cid'] > 0) { //根据CID查询评论的详细信息 $comment = CommentBusiness::getComment($fields['cid']); if (!empty($comment['email'])) { $url = 'http://lanewechat.lanecn.com/doc/main/aid-' . $comment['aid']; $title = '您的评论有了新回复【来自LaneBlog的系统邮件提醒】'; $content = "\n"; $content .= '<a href="' . $url . '">你的评论有了新的回复!请点击查看<a/>'; $content .= "\n\n连接无效请复制到浏览器地址栏访问:" . $url; $content .= "\n\nPs:系统发送,请勿直接回复!"; $config = array("from" => EMAIL_ADDRESS, "to" => $comment['email'], "subject" => $title, "body" => $content, "username" => EMAIL_ADDRESS, "password" => EMAIL_PASSWORD); $mail = new MailSocket(); $mail->setServer(EMAIL_SMTP); $mail->setMailInfo($config); // $result = Mail::quickSent($comment['email'], $title, $content, EMAIL_ADDRESS, EMAIL_PASSWORD); } } View::showMessage($jumpUrl, '成功!'); }
function getContents(&$templateMgr) { if (!defined('SESSION_DISABLE_INIT')) { $session =& Request::getSession(); $templateMgr->assign_by_ref('userSession', $session); $templateMgr->assign('loggedInUsername', $session->getSessionVar('username')); $loginUrl = Request::url(null, 'login', 'signIn'); // if the page is not ssl enabled, and force_login_ssl is set, this flag will present a link instead of the form $forceSSL = false; if (Config::getVar('security', 'force_login_ssl')) { if (Request::getProtocol() != 'https') { $loginUrl = Request::url(null, 'login'); $forceSSL = true; } $loginUrl = String::regexp_replace('/^http:/', 'https:', $loginUrl); } $templateMgr->assign('userBlockLoginSSL', $forceSSL); $templateMgr->assign('userBlockLoginUrl', $loginUrl); } return parent::getContents($templateMgr); }
/** * @descrpition 后台登录 ... */ public function login() { $loginInfo = Request::getSession($this->sessionId); if (!empty($loginInfo) && !empty($loginInfo['username']) && !empty($loginInfo['id'])) { View::showAdminMessage('/admin.php/index/main', '已经登录!'); } //表单提交处理 if (Request::getRequest('dosubmit', 'str')) { $username = Request::getRequest('username', 'str'); $password = Request::getRequest('password', 'str'); $password = md5($username . PASSWORD_INTERFERE . $password); $result = $this->adminUserObj->getByUsername($username); if (isset($result) && $result['password'] == $password) { $session = array(); $session['id'] = $result['id']; $session['username'] = $result['username']; Response::setSession($this->sessionId, $session); View::jsJump('/admin.php/index/main'); } else { View::showAdminErrorMessage('/admin.php/admin/login', '登录后台失败!'); } } View::showAdminTpl('login'); }
/** * Search for users to enroll in a specific role. * @param $args array first parameter is the selected role ID */ function enrollSearch($args) { $this->validate(); $roleDao =& DAORegistry::getDAO('RoleDAO'); $journalDao =& DAORegistry::getDAO('JournalDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); $roleId = (int) (isset($args[0]) ? $args[0] : Request::getUserVar('roleId')); $journal =& $journalDao->getJournalByPath(Request::getRequestedJournalPath()); $sort = Request::getUserVar('sort'); $sort = isset($sort) ? $sort : 'name'; $sortDirection = Request::getUserVar('sortDirection'); $templateMgr =& TemplateManager::getManager(); $this->setupTemplate(true); $searchType = null; $searchMatch = null; $search = Request::getUserVar('search'); $searchInitial = Request::getUserVar('searchInitial'); if (!empty($search)) { $searchType = Request::getUserVar('searchField'); $searchMatch = Request::getUserVar('searchMatch'); } elseif (!empty($searchInitial)) { $searchInitial = String::strtoupper($searchInitial); $searchType = USER_FIELD_INITIAL; $search = $searchInitial; } $rangeInfo = $this->getRangeInfo('users'); $users =& $userDao->getUsersByField($searchType, $searchMatch, $search, true, $rangeInfo, $sort); $templateMgr->assign('searchField', $searchType); $templateMgr->assign('searchMatch', $searchMatch); $templateMgr->assign('search', $search); $templateMgr->assign('searchInitial', Request::getUserVar('searchInitial')); $templateMgr->assign_by_ref('roleSettings', $this->retrieveRoleAssignmentPreferences($journal->getId())); $templateMgr->assign('roleId', $roleId); $templateMgr->assign('roleName', $roleDao->getRoleName($roleId)); $fieldOptions = array(USER_FIELD_FIRSTNAME => 'user.firstName', USER_FIELD_LASTNAME => 'user.lastName', USER_FIELD_USERNAME => 'user.username', USER_FIELD_EMAIL => 'user.email'); if ($roleId == ROLE_ID_REVIEWER) { $fieldOptions = array_merge(array(USER_FIELD_INTERESTS => 'user.interests'), $fieldOptions); } $templateMgr->assign('fieldOptions', $fieldOptions); $templateMgr->assign_by_ref('users', $users); $templateMgr->assign_by_ref('thisUser', Request::getUser()); $templateMgr->assign('alphaList', explode(' ', __('common.alphaList'))); $templateMgr->assign('helpTopicId', 'journal.users.index'); $templateMgr->assign('sort', $sort); $session =& Request::getSession(); $referrerUrl = $session->getSessionVar('enrolmentReferrer'); $templateMgr->assign('enrolmentReferrerUrl', isset($referrerUrl) ? Request::url(null, 'manager', 'people', $referrerUrl) : Request::url(null, 'manager')); $session->unsetSessionVar('enrolmentReferrer'); $templateMgr->display('manager/people/searchUsers.tpl'); }
/** * Log the request. * This follows a convoluted execution path in order to obtain the * page title *after* the template has been displayed, even though * the hook is called before execution. */ function logRequest($hookName, $args) { $templateManager =& $args[0]; $template =& $args[1]; $site =& Request::getSite(); $journal =& Request::getJournal(); $session =& Request::getSession(); if (!$journal) { return false; } if (($logUser = $session->getSessionVar(COUNTER_UID_VAR)) == '') { $logUser = Core::getCurrentDate() . '_' . $session->getId(); $session->setSessionVar(COUNTER_UID_VAR, $logUser); } switch ($template) { case 'article/article.tpl': case 'article/interstitial.tpl': case 'article/pdfInterstitial.tpl': // Log the request as an article view. $article = $templateManager->get_template_vars('article'); $galley = $templateManager->get_template_vars('galley'); // If no galley exists, this is an abstract // view -- don't include it. (FIXME?) if (!$galley) { return false; } $logEntry =& new LogEntry(); $logEntry->setSite($site->getTitle($site->getPrimaryLocale())); $logEntry->setJournal($journal->getTitle($journal->getPrimaryLocale())); $logEntry->setJournalUrl(Request::url(null, 'index')); $logEntry->setPrintIssn($journal->getSetting('printIssn')); $logEntry->setOnlineIssn($journal->getSetting('onlineIssn')); $logEntry->setPublisher($journal->getLocalizedSetting('publisherInstitution')); $logEntry->setUser($logUser); if ($galley->isHTMLGalley()) { $logEntry->setType(LOG_ENTRY_TYPE_HTML_ARTICLE); } elseif ($galley->isPdfGalley()) { $logEntry->setType(LOG_ENTRY_TYPE_PDF_ARTICLE); } else { $logEntry->setType(LOG_ENTRY_TYPE_OTHER_ARTICLE); } $logEntry->setValue($article->getArticleTitle()); $logEntryDao =& DAORegistry::getDAO('LogEntryDAO'); $logEntryDao->addEntry($logEntry); break; case 'search/searchResults.tpl': // Log the request as a search. $logEntry =& new LogEntry(); $article = $templateManager->get_template_vars('article'); $logEntry->setSite($site->getTitle($site->getPrimaryLocale())); $logEntry->setJournal($journal->getTitle($journal->getPrimaryLocale())); $logEntry->setJournalUrl(Request::url(null, 'index')); $logEntry->setUser($logUser); $logEntry->setType(LOG_ENTRY_TYPE_SEARCH); $logEntry->setValue(Request::getUserVar('query')); $logEntryDao =& DAORegistry::getDAO('LogEntryDAO'); $logEntryDao->addEntry($logEntry); break; } return false; }
/** * Constructor. * * @param Request $request * @param Container $container */ public function __construct(Request $request, Container $container) { $this->request = $request; $this->session = $request->getSession(); $this->container = $container; }
public function loginAction(Request $request) { if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) { $error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR); } else { $error = $request->getSession()->get(SecurityContext::AUTHENTICATION_ERROR); } return new Response($error); }
/** * Log the request. * This follows a convoluted execution path in order to obtain the * page title *after* the template has been displayed, even though * the hook is called before execution. */ function logRequest($hookName, $args) { $templateManager =& $args[0]; $template =& $args[1]; $site =& Request::getSite(); $journal =& Request::getJournal(); $session =& Request::getSession(); if (!$journal) { return false; } /* NOTE: Project COUNTER has a list of robots on their site unfortunately not in a very accessible format: http://www.projectcounter.org/r3/r3_K.doc */ if (Request::isBot()) { return false; } // TODO: consider the effect of LOCKSS on COUNTER recording switch ($template) { case 'article/article.tpl': case 'article/interstitial.tpl': case 'article/pdfInterstitial.tpl': // Log the request as an article view. $article = $templateManager->get_template_vars('article'); $galley = $templateManager->get_template_vars('galley'); // If no galley exists, this is an abstract // view -- don't include it. (FIXME?) if (!$galley) { return false; } $lastRequestGap = time() - $session->getSessionVar('lastRequest'); // if last request was less than 10 seconds ago then return without recording this view if ($lastRequestGap < 10) { return false; } // if last request was less than 30 seconds ago AND is PDF then return without recording this view if ($galley->isPdfGalley() && $lastRequestGap < 30) { return false; } $session->setSessionVar('lastRequest', time()); $counterReportDao =& DAORegistry::getDAO('CounterReportDAO'); $counterReportDao->incrementCount($article->getJournalId(), (int) strftime('%Y'), (int) strftime('%m'), $galley->isPdfGalley(), $galley->isHTMLGalley()); break; } return false; }