Changeset 27716 for plugins/diemPlugin
- Timestamp:
- 02/08/10 11:37:12 (3 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmFront/lib/BasedmFrontActions.class.php
r27551 r27716 6 6 public function executePage(dmWebRequest $request) 7 7 { 8 $slug = $request->getParameter('slug'); 9 10 // find matching page_route for this slug 11 $pageRoute = $this->getService('page_routing')->find($slug); 12 13 if ($pageRoute) 14 { 15 $this->page = $pageRoute->getPage(); 16 17 // found a page on another culture 18 if($pageRoute->getCulture() !== $this->getUser()->getCulture()) 19 { 20 $this->getUser()->setCulture($pageRoute->getCulture()); 21 } 22 } 23 // the page does not exist 24 else 25 { 26 // if page_not_found_handler suggest a redirection 27 if ($redirectionUrl = $this->getService('page_not_found_handler')->getRedirection($slug)) 28 { 29 return $this->redirect($redirectionUrl, 301); 30 } 31 32 // else use main.error404 page 33 $this->page = dmDb::table('DmPage')->fetchError404(); 34 } 8 $this->page = $this->getPageFromRequest($request); 35 9 36 10 $this->secure(); … … 39 13 } 40 14 15 protected function getPageFromRequest(dmWebRequest $request) 16 { 17 if($request->hasParameter('dm_page')) 18 { 19 return $request->getParameter('dm_page'); 20 } 21 22 $slug = $request->getParameter('slug'); 23 24 // find matching page_route for this slug 25 $pageRoute = $this->getService('page_routing')->find($slug); 26 27 if ($pageRoute) 28 { 29 $page = $pageRoute->getPage(); 30 31 // found a page on another culture 32 if($pageRoute->getCulture() !== $this->getUser()->getCulture()) 33 { 34 $this->getUser()->setCulture($pageRoute->getCulture()); 35 } 36 } 37 // the page does not exist 38 else 39 { 40 // if page_not_found_handler suggest a redirection 41 if ($redirectionUrl = $this->getService('page_not_found_handler')->getRedirection($slug)) 42 { 43 return $this->redirect($redirectionUrl, 301); 44 } 45 46 // else use main.error404 page 47 $page = dmDb::table('DmPage')->fetchError404(); 48 } 49 50 return $page; 51 } 52 41 53 protected function secure() 42 54 { 55 $user = $this->getUser(); 56 43 57 if ( 44 // the site is not active and requires the view_sitepermission to be displayed45 (!dmConfig::get('site_active') && !$ this->getUser()->can('site_view'))46 // the page is not active and requires the view_sitepermission to be displayed47 || (!$this->page->get('is_active') && !$ this->getUser()->can('site_view'))58 // the site is not active and requires the site_view permission to be displayed 59 (!dmConfig::get('site_active') && !$user->can('site_view')) 60 // the page is not active and requires the site_view permission to be displayed 61 || (!$this->page->get('is_active') && !$user->can('site_view')) 48 62 // the page is secured and requires authentication to be displayed 49 || ($this->page->get('is_secure') && !$ this->getUser()->isAuthenticated())63 || ($this->page->get('is_secure') && !$user->isAuthenticated()) 50 64 // the page is secured and the user has not required credentials 51 || ($this->page->get('is_secure') && $this->page->get('credentials') && !$ this->getUser()->can($this->page->get('credentials')))65 || ($this->page->get('is_secure') && $this->page->get('credentials') && !$user->can($this->page->get('credentials'))) 52 66 ) 53 67 { 54 // use main.login page 55 $this->page = dmDb::table('DmPage')->fetchLogin(); 68 $this->getResponse()->setStatusCode($user->isAuthenticated() ? 403 : 401); 69 70 // use main.signin page 71 $this->page = dmDb::table('DmPage')->fetchSignin(); 56 72 } 57 73 } … … 62 78 63 79 return $this->renderPage(); 64 }65 66 public function executeLogin(dmWebRequest $request)67 {68 $this->page = dmDb::table('DmPage')->fetchLogin();69 70 return $this->renderPage();71 }72 73 public function executeSecure(dmWebRequest $request)74 {75 return $this->executeLogin($request);76 80 } 77 81 … … 85 89 $this->response->setStatusCode(404); 86 90 } 87 elseif($this->page->isModuleAction('main', 'login')) 88 { 89 $this->getResponse()->setStatusCode(401); 90 } 91 91 92 92 $template = $this->page->getPageView()->getLayout()->get('template'); 93 93 94 94 if (empty($template)) 95 95 { … … 99 99 $this->setTemplate($template); 100 100 101 $userLayout = dmProject::rootify('apps/front/modules/dmFront/templates/layout');101 $userLayout = sfConfig::get('sf_root_dir').'/apps/front/modules/dmFront/templates/layout'; 102 102 if (file_exists($userLayout.'.php')) 103 103 { … … 106 106 else 107 107 { 108 $this->setLayout( dmOs::join(sfConfig::get('dm_front_dir'), 'modules/dmFront/templates/layout'));108 $this->setLayout(sfConfig::get('dm_front_dir').'/modules/dmFront/templates/layout'); 109 109 } 110 110 … … 181 181 } 182 182 183 184 183 public function executeEditToggle(sfWebRequest $request) 185 184 {