• Main Page
  • Modules
  • Classes
  • Files
  • File List

pages/admin/AdminHandler.inc.php

00001 <?php
00002 
00017 import('classes.handler.Handler');
00018 
00019 class AdminHandler extends Handler {
00023    function AdminHandler() {
00024       parent::Handler();
00025 
00026       $this->addRoleAssignment(
00027          array(ROLE_ID_SITE_ADMIN),
00028          array('index', 'settings')
00029       );
00030    }
00031 
00035    function authorize($request, $args, $roleAssignments) {
00036       import('lib.pkp.classes.security.authorization.PKPSiteAccessPolicy');
00037       $this->addPolicy(new PKPSiteAccessPolicy($request, null, $roleAssignments));
00038       $returner = parent::authorize($request, $args, $roleAssignments);
00039 
00040       // Make sure user is in press context. Otherwise, redirect.
00041       $press =& $request->getPress();
00042       $router =& $request->getRouter();
00043       $requestedOp = $router->getRequestedOp($request);
00044 
00045       // The only operation logged users may access outside a press
00046       // context is to create presses.
00047       if (!$press && $requestedOp !== 'presses') {
00048 
00049          // Try to find a press that user has access to.
00050          $targetPress =& $this->getTargetPress($request);
00051          if ($targetPress) {
00052             $url = $router->url($request, $targetPress->getPath(), 'admin', $requestedOp);
00053          } else {
00054             $url = $router->url($request, 'index');
00055          }
00056          $request->redirectUrl($url);
00057       }
00058 
00059       $pressDao =& DAORegistry::getDAO('PressDAO'); /* @var $pressDao PressDAO */
00060       $pressFactory =& $pressDao->getPresses();
00061 
00062       if ($requestedOp == 'settings' && $pressFactory->getCount() == 1) {
00063          // Don't let users access site settings in a single press installation.
00064          // In that case, those settings are available under management or are not
00065          // relevant (like site appearance).
00066          return false;
00067       }
00068 
00069       return $returner;
00070    }
00071 
00077    function index($args, &$request) {
00078       $this->setupTemplate($request);
00079 
00080       $templateMgr =& TemplateManager::getManager();
00081       $templateMgr->assign('helpTopicId', 'site.index');
00082 
00083       $templateMgr->display('admin/index.tpl');
00084    }
00085 
00091    function settings($args, &$request) {
00092       $templateMgr =& TemplateManager::getManager();
00093       $this->setupTemplate($request);
00094       $templateMgr->display('admin/settings.tpl');
00095    }
00096 
00100    function setupTemplate($request) {
00101       parent::setupTemplate();
00102       AppLocale::requireComponents(LOCALE_COMPONENT_PKP_ADMIN, LOCALE_COMPONENT_OMP_MANAGER, LOCALE_COMPONENT_OMP_ADMIN);
00103    }
00104 }
00105 
00106 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1