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); } } } }
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); } } } }
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; }