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
00041 $press =& $request->getPress();
00042 $router =& $request->getRouter();
00043 $requestedOp = $router->getRequestedOp($request);
00044
00045
00046
00047 if (!$press && $requestedOp !== 'presses') {
00048
00049
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');
00060 $pressFactory =& $pressDao->getPresses();
00061
00062 if ($requestedOp == 'settings' && $pressFactory->getCount() == 1) {
00063
00064
00065
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 ?>