Пример #1
0
 public function __construct()
 {
     $mdlPage = new Model_Page();
     $mdlContentNode = new Model_PageNode();
     $select = $mdlPage->select();
     $select->where("namespace = 'content'");
     $pages = $mdlPage->fetchAll($select);
     if ($pages->count() > 0) {
         foreach ($pages as $page) {
             $contentNodes = $mdlContentNode->fetchContentObject($page->id);
             if (isset($contentNodes->content)) {
                 //if the page does not have content it doesnt belong in the index (eg blocks)
                 $title = $mdlPage->getPageTitle($page->id);
                 $link = Digitalus_Toolbox_Page::getUrl($page);
                 $link = strtolower($link);
                 $contentNodes = $mdlContentNode->fetchContentObject($page->id);
                 if (isset($contentNodes->teaser)) {
                     $teaser = $contentNodes->teaser;
                 } else {
                     $teaser = Digitalus_Toolbox_String::truncateText($contentNodes->content);
                 }
                 $content = $contentNodes->content;
                 $this->_addPage($link, $title, $teaser, $content);
             }
         }
     }
 }
Пример #2
0
 public function loginAction()
 {
     $form = new Admin_Form_Login();
     $form->setAction($this->baseUrl . '/public/index/login');
     if ($this->_request->isPost() && $form->isValid($_POST)) {
         $uri = Digitalus_Filter_Post::get('uri');
         $username = Digitalus_Filter_Post::get('adminUsername');
         $password = Digitalus_Filter_Post::get('adminPassword');
         $auth = new Digitalus_Auth($username, $password);
         $result = $auth->authenticate();
         if (!$result) {
             $e = new Digitalus_View_Error();
             $e->add($this->view->getTranslation('The username or password you entered was not correct.'));
         } else {
             $uri = Digitalus_Toolbox_Page::getHomePageName();
             $this->_redirect($uri);
         }
     }
     # ---------------------------------------------------------------------------- #
     $this->page->content = array('label' => 'Auth', 'headline' => $this->view->getTranslation('Authorisation required'), 'content' => $this->view->partial('partials/login.phtml', array('form' => $form)));
     $this->page->defaultContent = $this->page->content;
     // load the view
     Digitalus_Builder::loadPage(null, 'load_view.xml', $this->page, $this->view);
     // render the page
     $this->view->page = $this->page;
     $this->view->layout()->page = $this->page->getParam('xhtml');
     $this->renderScript('index/index.phtml');
 }
Пример #3
0
 /**
  * Constructor
  *
  * @param   object  $item   A Zend_Db_Table_Row object
  */
 public function __construct(Zend_Db_Table_Row $item)
 {
     $this->_innerItem = $item;
     $this->label = Digitalus_Toolbox_Page::getLabel($item);
     $this->link = Digitalus_Toolbox_Page::getUrl($item);
     $this->id = $this->_innerItem->id;
     if ($item->show_on_menu) {
         $this->visible = true;
     } else {
         $this->visible = false;
     }
     $page = new Model_Page();
     if ($page->hasChildren($item)) {
         $this->hasSubmenu = true;
     } else {
         $this->hasSubmenu = false;
     }
 }
Пример #4
0
 /**
  * Creates a challenge Url
  *
  * @return string Challenge Url
  */
 protected function _createChallengeUrl($action = 'challenge')
 {
     if (empty($this->_challengeUrl) || '' == $this->_challengeUrl) {
         $this->_challengeUrl = urlencode('http://' . $_SERVER['HTTP_HOST'] . $this->view->getBaseUrl() . '/' . Digitalus_Toolbox_Page::getCurrentPageName() . '/p' . '/a/' . strtolower($action) . '/u/' . $this->_userName . '/c/' . $this->getChallengeId());
     }
     return $this->_challengeUrl;
 }
Пример #5
0
 /**
  * Get Page data as array
  *
  * @return  array  Returns an array of the page data, otherwise an empty array
  */
 protected function _getPageAsArray($item = null)
 {
     if (empty($item)) {
         $item = $this->getItem();
     }
     $baseUrl = $this->view->baseUrl();
     $mdlMenu = new Model_Menu();
     $page = array('active' => $this->isActive(false), 'class' => 'menuItem', 'id' => $item->id, 'label' => Digitalus_Toolbox_Page::getLabel($item), 'name' => $item->name, 'resource' => strtolower(Digitalus_Toolbox_String::replaceEmptySpace($item->name)), 'title' => Digitalus_Toolbox_Page::getLabel($item), 'uri' => $baseUrl . '/' . Digitalus_Toolbox_String::replaceEmptySpace(Digitalus_Toolbox_Page::getUrl($item)), 'visible' => $this->isVisible($item));
     $subPages = array();
     if ($mdlMenu->hasChildren($this->id)) {
         $children = $mdlMenu->getChildren($this->id);
         foreach ($children as $child) {
             $subPages[] = new Digitalus_Menu_Item(null, $child);
         }
         $page['pages'] = $subPages;
     }
     return $page;
 }
Пример #6
0
 /**
  * The public challenge action for getting a new password
  *
  * @return void
  */
 public function changepasswordAction()
 {
     $uri = new Digitalus_Uri();
     $uriParams = $uri->getParams();
     if (!isset($uriParams['u']) || !isset($uriParams['c'])) {
         $this->_error;
     } else {
         $userName = $uriParams['u'];
         $challengeId = $uriParams['c'];
         $mdlChallenge = new Login_Challenge();
         if (!$mdlChallenge->isValid($challengeId, $userName)) {
             $this->_error = $this->view->getTranslation('Error: No valid challenge was found. Please try again!');
         } else {
             $changePasswordForm = new User_Form();
             $uri = $this->baseUrl . '/' . Digitalus_Toolbox_Page::getCurrentPageName() . '/p/a/changepassword/u/' . $userName . '/c/' . $challengeId;
             $changePasswordForm->setAction($uri);
             $changePasswordForm->getElement('name')->addValidators(array(array('UsernameExists', true)));
             $changePasswordForm->onlyChangepasswordActionElements(array('legend' => 'Change Password'));
             if ($this->_request->isPost() && $changePasswordForm->isValid($_POST)) {
                 $password = Digitalus_Filter_Post::get('password');
                 $passwordConfirm = Digitalus_Filter_Post::get('password_confirm');
                 $mdlUser = new Model_User();
                 if (!$mdlUser->updatePassword($userName, $password, true, $passwordConfirm)) {
                     $this->_error = $this->view->getTranslation("Error: Your password hasn't been updated!");
                 } else {
                     $mdlChallenge->invalidate($challengeId);
                     $this->_message = $this->view->getTranslation('Your password has been updated successfully!');
                 }
             } else {
                 $this->_message = $this->view->getTranslation('Please type in Your user name and Your new password.');
                 $this->view->form = $changePasswordForm;
             }
         }
     }
     $this->view->error = $this->_error;
     $this->view->message = $this->_message;
 }
Пример #7
0
 /**
  * validate the current user's request
  *
  * @param Zend_Controller_Request_Abstract $request
  */
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $this->_identity = Digitalus_Auth::getIdentity();
     $this->_acl = new Digitalus_Acl();
     $role = Model_Group::GUEST_ROLE;
     if (!empty($this->_identity)) {
         $role = $this->_identity->role;
     }
     $module = $request->module;
     $controller = $request->controller;
     $action = $request->action;
     if ($module != 'public' && $controller != 'public') {
         //go from more specific to less specific
         $moduleLevel = $module;
         $controllerLevel = $moduleLevel . '_' . $controller;
         $actionLevel = $controllerLevel . '_' . $action;
         if ($this->_acl->has($actionLevel)) {
             $resource = $actionLevel;
         } else {
             if ($this->_acl->has($controllerLevel)) {
                 $resource = $controllerLevel;
             } else {
                 $resource = $moduleLevel;
             }
         }
         if ($this->_acl->has($resource) && !$this->_acl->isAllowed($role, $resource)) {
             if (!$this->_identity || Model_Group::GUEST_ROLE == $role) {
                 $request->setModuleName($this->_noAuth['admin']['module']);
                 $request->setControllerName($this->_noAuth['admin']['controller']);
                 $request->setActionName($this->_noAuth['admin']['action']);
                 $request->setParam('authPage', 'login');
             } else {
                 $request->setModuleName($this->_noAcl['admin']['module']);
                 $request->setControllerName($this->_noAcl['admin']['controller']);
                 $request->setActionName($this->_noAcl['admin']['action']);
                 $request->setParam('authPage', 'noauth');
             }
         }
     } else {
         $resource = Digitalus_Toolbox_Page::getCurrentPageName();
         // write pageName to registry when coming from a page
         if ('index' == $controller && 'index' == $action) {
             Zend_Registry::set('Digitalus_Page_Name', $resource);
         }
         $resource = strtolower(Digitalus_Toolbox_String::replaceUnderscore($resource));
         // only check Acl if page is NOT homepage
         if (!empty($resource) && '' != $resource && Digitalus_Toolbox_Page::getHomePageName() != $resource) {
             if ($this->_acl->has($resource) && !$this->_acl->isAllowed($role, $resource)) {
                 if (!$this->_identity || Model_Group::GUEST_ROLE != $role) {
                     $request->setModuleName($this->_noAcl['public']['module']);
                     $request->setControllerName($this->_noAcl['public']['controller']);
                     $request->setActionName($this->_noAcl['public']['action']);
                     $request->setParam('authPage', 'login');
                 } else {
                     $request->setModuleName($this->_noAcl['public']['module']);
                     $request->setControllerName($this->_noAcl['public']['controller']);
                     $request->setActionName($this->_noAcl['public']['action']);
                     $request->setParam('authPage', 'noauth');
                 }
             }
         }
     }
 }