Example #1
0
 function loginAction()
 {
     $form = $this->getForm();
     if ($this->_request->isPost()) {
         $formData = $this->_request->getPost();
         if ($form->isValid($formData)) {
             $auth = Zend_Auth::getInstance();
             // Setup adapter
             $adapter = new Zend_Auth_Adapter_DbTable($this->_db, 'Extranet_Users', 'EU_Username', 'EU_Password', 'MD5(?)');
             $adapter->setIdentity($_POST['username'])->setCredential($_POST['password']);
             // Authenticate
             $result = $auth->authenticate($adapter);
             switch ($result->getCode()) {
                 case Zend_Auth_Result::FAILURE:
                 case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
                 case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
                 case Zend_Auth_Result::FAILURE_IDENTITY_AMBIGUOUS:
                     $error = Cible_Translation::getCibleText('error_auth_failure');
             }
             if (!$result->isValid()) {
                 $this->view->assign('error', $error);
             } else {
                 $auth->getStorage()->write($adapter->getResultRowObject(array('EU_ID', 'EU_LName', 'EU_FName', 'EU_Email')));
                 // build ACL rights
                 $data = (array) $auth->getStorage()->read();
                 $acl = Cible_FunctionsAdministrators::getACLUser($data['EU_ID']);
                 $defaultSession = new Zend_Session_Namespace();
                 $defaultSession->acl = $acl;
                 $this->_redirect($this->getRequest()->getParam('redirect'));
             }
         }
     }
     $this->view->assign('form', $form);
 }
 function editAction()
 {
     // page title
     $this->view->title = "Information sur le groupe d'administrateur";
     // js import
     $this->view->headScript()->appendFile($this->view->baseUrl() . '/js/administrator.js');
     // get param
     $administratorGroupID = $this->_getParam('administratorGroupID');
     $order = $this->_getParam('order');
     $tablePage = $this->_getParam('tablePage');
     $search = $this->_getParam('search');
     $paramsArray = array("order" => $order, "tablePage" => $tablePage, "search" => $search);
     // get group data
     $groupData = Cible_FunctionsAdministrators::getAdministratorGroupData($administratorGroupID);
     $returnLink = $this->view->url(array('controller' => 'administrator-group', 'action' => 'index', 'administratorGroupID' => null));
     /********** ACTIONS ***********/
     $form = new FormExtranetGroup(array('baseDir' => $this->view->baseUrl(), 'cancelUrl' => "{$returnLink}", 'groupID' => $administratorGroupID));
     $form->setDecorators(array('PrepareElements', array('ViewScript', array('viewScript' => 'administrator-group/formGroup.phtml'))));
     $this->view->form = $form;
     if (!$this->_request->isPost()) {
         $form->populate($groupData->toArray());
     } else {
         $formData = $this->_request->getPost();
         if ($form->isValid($formData)) {
             // validate name is unique
             $findGroup = new ExtranetGroupsIndex();
             $select = $findGroup->select()->where('EGI_Name = ?', $formData['EGI_Name'])->where('EGI_GroupID <> ?', $administratorGroupID);
             $findGroupData = $findGroup->fetchAll($select);
             // name is allready use
             if ($findGroupData->count() > 0) {
                 $form->getElement('EGI_Name')->addError('Un autre groupe possède déjà ce nom');
             } else {
                 $db = $this->_db;
                 // update group data
                 $where = "EG_ID = {$administratorGroupID}";
                 $db->update('Extranet_Groups', array('EG_Status' => $form->getValue('EG_Status')), $where);
                 // update group index data
                 $where = "EGI_GroupID = {$administratorGroupID} AND EGI_LanguageID = " . Zend_Registry::get("languageID");
                 $db->update('Extranet_GroupsIndex', array('EGI_Name' => $form->getValue('EGI_Name'), 'EGI_Description' => $form->getValue('EGI_Description')), $where);
                 // get pages data
                 $pagesArray = Cible_FunctionsPages::getAllPagesDetailsArray();
                 // save group pages permissions
                 // save pages access
                 $this->deleteGroupPagesPermissions($administratorGroupID);
                 $this->saveGroupPagesPermissions($administratorGroupID, $pagesArray, $_POST, "structure");
                 $this->saveGroupPagesPermissions($administratorGroupID, $pagesArray, $_POST, "data");
                 // save roles
                 $this->deleteGroupRoles($administratorGroupID);
                 $this->saveGroupRoles($administratorGroupID, $_POST);
                 header("location:" . $returnLink);
             }
         }
     }
 }
Example #3
0
 function indexAction()
 {
     // retrieve the ID of the requested page
     $pageID = $this->view->pageID = $this->_getParam('ID');
     $pageDetails = new PagesIndex();
     $pageDetailsSelect = $pageDetails->select();
     $pageDetailsSelect->where('PI_PageID = ?', $pageID)->where('PI_LanguageID = ?', $this->_defaultEditLanguage);
     $pageDetailsData = $pageDetails->fetchRow($pageDetailsSelect)->toArray();
     $this->view->assign("pageTitle", $pageDetailsData["PI_PageTitle"]);
     $authData = $this->view->user;
     $authID = $authData['EU_ID'];
     if (Cible_FunctionsAdministrators::checkAdministratorPageAccess($authID, $pageID, "data")) {
         $authData = $this->view->user;
         $authID = $authData['EU_ID'];
         if (Cible_FunctionsAdministrators::checkAdministratorPageAccess($authID, $pageID, "structure")) {
             $this->view->assign('hasAccessToStructure', true);
         }
         // Retrieve the page view layout
         $page = new Pages();
         $page_select = $page->select()->setIntegrityCheck(false);
         $page_select->from('Pages')->join('Views', 'Pages.P_ViewID = Views.V_ID')->where('P_ID = ?', $pageID);
         $page_info = Cible_FunctionsPages::getPageViewDetails($pageID);
         $template_file = 'index/' . $page_info['V_Path'];
         $_zone_count = $page_info['V_ZoneCount'];
         // make a request to get all the blocks to be displayed
         $blocks = new Blocks();
         $select = $blocks->select()->setIntegrityCheck(false);
         $select->from('Blocks')->join('Modules', 'Modules.M_ID = Blocks.B_ModuleID')->join('Pages', 'Blocks.B_PageID = P_ID')->join('BlocksIndex', 'Blocks.B_ID = BlocksIndex.BI_BlockID')->where('Blocks.B_PageID = ?', $pageID)->where('BlocksIndex.BI_LanguageID = ?', Zend_Registry::get('languageID'))->order('Blocks.B_Position ASC');
         //Send the results to the view
         $rows = $blocks->fetchAll($select);
         $_blocks = array();
         foreach ($rows as $row) {
             // create the placeholder object if not already defined
             if (!isset($_blocks[$row['B_ZoneID']])) {
                 $_blocks[$row['B_ZoneID']] = array();
             }
             $_blocks[$row['B_ZoneID']][] = $row->toArray();
         }
         $this->view->assign('template_file', $template_file);
         $this->view->assign('zone_count', $_zone_count);
         $this->view->assign('blocks', $_blocks);
         // Load the modules in the view
         $Modules = new Modules();
         $modules = $Modules->fetchAll();
         $this->view->assign('modules', $modules->toArray());
     } else {
         $this->view->assign('template_file', "");
         $this->view->assign('error_message_permission', $this->view->getCibleText('error_message_permission'));
     }
 }
 public function __construct($options = null, $groupsData = array())
 {
     // variable
     parent::__construct($options);
     $baseDir = $options['baseDir'];
     // html text
     $textAdministratorGroup = new Cible_Form_Element_Html('htmlAdministratorGroup', array('value' => $this->getView()->getCibleText('label_administrator_actives')));
     $this->addElement($textAdministratorGroup);
     $checkBox = new Zend_Form_Element_MultiCheckbox('groups');
     $checkBox->setDecorators(array('ViewHelper', array(array('row' => 'HtmlTag'), array('tag' => 'dd', 'class' => 'checkbox_list'))));
     //$checkBox->setDescription('<em>Example:</em> mydomain.com')
     //->addDecorator('Description', array('escape' => false));
     //show administrator group (first level)
     $groupAdmin = Cible_FunctionsAdministrators::getAdministratorGroupData(1)->toArray();
     $checkBox->addMultiOption("1", $groupAdmin['EGI_Name'] . " (" . $groupAdmin['EGI_Description'] . ")");
     $i = 0;
     foreach ($groupsData as $group) {
         if ($group['EG_Status'] == 'active') {
             $checkBox->addMultiOption($group['EG_ID'], $group['EGI_Name'] . " (" . $group['EGI_Description'] . ")");
         }
         $i++;
     }
     $this->addElement($checkBox);
 }
 function addAction()
 {
     // page title
     $this->view->title = "Ajout d'un administrateur";
     // get group data
     $groupsData = Cible_FunctionsAdministrators::getAllAdministratorGroups();
     /********** ACTIONS ***********/
     $returnLink = $this->view->url(array('controller' => 'administrator', 'action' => 'index'));
     $form = new FormExtranetUser(array('baseDir' => $this->view->baseUrl(), 'cancelUrl' => "{$returnLink}"), $groupsData->toArray());
     $form->getElement('cancel')->setAttrib('onclick', 'document.location.href="' . $returnLink . '"');
     $form->getElement("EU_Password")->setRequired(true);
     $form->getElement("EU_Password")->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => "Veuillez entrer un mot de passe")));
     $this->view->form = $form;
     if ($this->_request->isPost()) {
         $formData = $this->_request->getPost();
         if ($form->isValid($formData)) {
             // validate username is unique
             $findUser = new ExtranetUsers();
             $select = $findUser->select()->where('EU_Username = ?', $form->getValue('EU_Username'));
             $findUserData = $findUser->fetchAll($select);
             // username is allready use
             if ($findUserData->count() > 0) {
                 $form->getElement('EU_Username')->addError('Un autre utilisateur possède déjà ce nom d\'utilisateur');
             } else {
                 $userData = new ExtranetUsers();
                 $row = $userData->createRow();
                 $row->EU_LName = $form->getValue('EU_LName');
                 $row->EU_FName = $form->getValue('EU_FName');
                 $row->EU_Email = $form->getValue('EU_Email');
                 $row->EU_Username = $form->getValue('EU_Username');
                 $row->EU_Password = md5($form->getValue('EU_Password'));
                 $newInsertID = $row->save();
                 // insert all user and group association for that user
                 if ($formData['groups']) {
                     foreach ($formData['groups'] as $group) {
                         $userGroupAssociationData = new ExtranetUsersGroups();
                         $rowGroup = $userGroupAssociationData->createRow();
                         $rowGroup->EUG_UserID = $newInsertID;
                         $rowGroup->EUG_GroupID = $group;
                         $rowGroup->save();
                     }
                 }
                 header("location:" . $returnLink);
             }
         }
     }
 }
Example #6
0
 public function __construct($options = null, $groupsData = array())
 {
     // variable
     parent::__construct($options);
     $baseDir = $options['baseDir'];
     if (array_key_exists('profile', $options)) {
         $profile = $options['profile'];
     } else {
         $profile = false;
     }
     // lastname
     $lname = new Zend_Form_Element_Text('EU_LName');
     $lname->setLabel($this->getView()->getCibleText('form_label_lname'))->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $this->getView()->getCibleText('validation_message_empty_field'))))->setAttrib('class', 'stdTextInput')->setAttrib('escape', false);
     $this->addElement($lname);
     // firstname
     $fname = new Zend_Form_Element_Text('EU_FName');
     $fname->setLabel($this->getView()->getCibleText('form_label_fname'))->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $this->getView()->getCibleText('validation_message_empty_field'))))->setAttrib('class', 'stdTextInput');
     $this->addElement($fname);
     // email
     $regexValidate = new Cible_Validate_Email();
     $regexValidate->setMessage($this->getView()->getCibleText('validation_message_emailAddressInvalid'), 'regexNotMatch');
     $email = new Zend_Form_Element_Text('EU_Email');
     $email->setLabel($this->getView()->getCibleText('form_label_email'))->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addFilter('StringToLower')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $this->getView()->getCibleText('validation_message_empty_field'))))->addValidator($regexValidate)->setAttrib('class', 'stdTextInput');
     $this->addElement($email);
     // username
     $username = new Zend_Form_Element_Text('EU_Username');
     $username->setLabel($this->getView()->getCibleText('form_label_username'))->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $this->getView()->getCibleText('validation_message_empty_field'))))->setAttrib('class', 'stdTextInput')->setAttrib('autocomplete', 'off');
     $this->addElement($username);
     // new password
     $password = new Zend_Form_Element_Password('EU_Password');
     $password->setLabel($this->getView()->getCibleText('form_label_newPwd'))->addFilter('StripTags')->addFilter('StringTrim')->setAttrib('class', 'stdTextInput')->setAttrib('autocomplete', 'off');
     $this->addElement($password);
     // password confirmation
     $passwordConfirmation = new Zend_Form_Element_Password('PasswordConfirmation');
     $passwordConfirmation->setLabel($this->getView()->getCibleText('form_label_confirmNewPwd'))->addFilter('StripTags')->addFilter('StringTrim')->setAttrib('class', 'stdTextInput');
     if (!empty($_POST['EU_Password'])) {
         $passwordConfirmation->setRequired(true)->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => $this->getView()->getCibleText('error_message_password_isEmpty'))));
         $Identical = new Zend_Validate_Identical($_POST['EU_Password']);
         $Identical->setMessages(array('notSame' => $this->getView()->getCibleText('error_message_password_notSame')));
         $passwordConfirmation->addValidator($Identical);
     }
     $this->addElement($passwordConfirmation);
     if ($profile != true) {
         // html text
         $textAdministratorGroup = new Cible_Form_Element_Html('htmlAdministratorGroup', array('value' => $this->getView()->getCibleText('label_administrator_actives')));
         $this->addElement($textAdministratorGroup);
         $checkBox = new Zend_Form_Element_MultiCheckbox('groups');
         $checkBox->setDecorators(array('ViewHelper', array(array('row' => 'HtmlTag'), array('tag' => 'dd', 'class' => 'checkbox_list'))));
         //$checkBox->setDescription('<em>Example:</em> mydomain.com')
         //->addDecorator('Description', array('escape' => false));
         //show administrator group (first level)
         $groupAdmin = Cible_FunctionsAdministrators::getAdministratorGroupData(1)->toArray();
         $checkBox->addMultiOption("1", $groupAdmin['EGI_Name'] . " (" . $groupAdmin['EGI_Description'] . ")");
         $i = 0;
         foreach ($groupsData as $group) {
             if ($group['EG_Status'] == 'active') {
                 $checkBox->addMultiOption($group['EG_ID'], $group['EGI_Name'] . " (" . $group['EGI_Description'] . ")");
             }
             $i++;
         }
         $this->addElement($checkBox);
     }
 }
 public static function addAllRolesResourcesPermissionsUser($acl, $userID, $roleRessourceID)
 {
     $roleResourceSelect = new ExtranetRolesResources();
     $select = $roleResourceSelect->select()->setIntegrityCheck(false);
     $select->from('Extranet_RolesResources', array('ResourceName' => 'Extranet_Resources.ER_ControlName', 'RoleName' => 'Extranet_Roles.ER_ControlName', 'ERR_InheritedParentID', 'ERR_ID'))->join('Extranet_Resources', 'Extranet_Resources.ER_ID = ERR_ResourceID')->join('Extranet_Roles', 'Extranet_Roles.ER_ID = ERR_RoleID')->where('ERR_ID = ?', $roleRessourceID);
     $roleResourceData = $roleResourceSelect->fetchAll($select)->toArray();
     //print_r($roleResourceData);
     foreach ($roleResourceData as $roleResource) {
         if ($roleResource['ERR_InheritedParentID'] != 0) {
             $acl = Cible_FunctionsAdministrators::addAllRolesResourcesPermissionsUser($acl, $userID, $roleResource['ERR_InheritedParentID']);
         }
         // get all permission
         //$this->view->dump($roleResource);
         // get all permission of a role resources associated
         $roleResourcePermissionsSelect = new ExtranetRolesResourcesPermissions();
         $select = $roleResourcePermissionsSelect->select()->setIntegrityCheck(false);
         $select->from('Extranet_RolesResourcesPermissions')->join('Extranet_Permissions', 'EP_ID = ERRP_PermissionID')->where('ERRP_RoleResourceID = ?', $roleResource['ERR_ID']);
         $roleResourcePermissionsData = $roleResourcePermissionsSelect->fetchAll($select);
         //$this->view->dump($roleResourcePermissionsData->toArray());
         foreach ($roleResourcePermissionsData as $permission) {
             $acl->allow($userID, $roleResource['ResourceName'], $permission['EP_ControlName']);
         }
     }
     return $acl;
 }