Current File : /home/karenpetzb/application/modules/backoffice/controllers/AdminController.php
<?php

class Backoffice_AdminController extends Modules_Backoffice_Controllers_MainController
{

	function init()
	{
		$this->view->title = "Administration";  
		$this->view->currentMenu = "Admin";
		$this->isConnectedWithRole('isAdmin');
	}
	function indexAction()
	{
		$this->_forward('/list');

	}
	function setroleAction()
	{
		if ($this->_request->isPost()) {
				
			$params = $this->_request->getPost();
			if ($params['roletype'] == 'isPromo') { $data = array('isPROMO' => $params['rolevalue']); }
			if ($params['roletype'] == 'isCategory') { $data = array('isCATEGORY' => $params['rolevalue']); }
			if ($params['roletype'] == 'isCommand') { $data = array('isCOMMAND' => $params['rolevalue']); }
			if ($params['roletype'] == 'isProduct') { $data = array('isPRODUCT' => $params['rolevalue']); }
			if ($params['roletype'] == 'isSupplier') { $data = array('isSUPPLIER' => $params['rolevalue']); }
			if ($params['roletype'] == 'isUser') { $data = array('isUSER' => $params['rolevalue']); }
			if ($params['roletype'] == 'isAdmin') { $data = array('isADMIN' => $params['rolevalue']); }
			if ($params['roletype'] == 'isFooter') { $data = array('isFOOTER' => $params['rolevalue']); }
			if ($params['roletype'] == 'isStats') { $data = array('isSTATS' => $params['rolevalue']); }
				
			$id = $params['idadmin'];
				
			try {
				if ( $id > 0) {
					$admin = new Admin();

					$admin->update($data, 'ID = '.$id);
				}
			} catch (Zend_Exception $e) {
				$this->view->messageError = $e->getMessage();
					$this->log($e->getMessage(),'err');
				$this->_forward('/list');
			}
		}
		$this->_forward('/list');
	}
	function listAction()
	{
		$this->view->titlePage = "Gestion des administrateurs";
		$adminNamespace = $this->getSession();
	  
		//Gestion des tris
		$table = 'NOM';
		$tri = 'ASC';

		if ($this->_request->getParam('col'))
		{
			$adminNamespace->triAdminCol = $this->_request->getParam('col');
			($adminNamespace->triAdminSens == 'ASC') ? $adminNamespace->triAdminSens = 'DESC' : $adminNamespace->triAdminSens = 'ASC';
		}
		if (isset($adminNamespace->triAdminCol)) {
			$table = $adminNamespace->triAdminCol;
			$tri = $adminNamespace->triAdminSens;
		}
	  
		//Appel model pour listing
		$admin = new Admin();
		$select = $admin->select()->where("Login <> 'Maintenance'")->order($table.' '.$tri);
	  
		$this->view->listadmins = $admin->fetchAll($select);
	  
	}

	function delAction() {

		$this->view->messageSuccess = "";
		$this->view->messageError = "";

		if($this->_request->getParam('id')) {
			$id = (int)$this->_request->getParam('id');
			if ($id > 0) {
				try {
					$admin = new Admin();

					$admin->delete('ID = '.$id);

					$this->view->messageSuccess = "L'administrateur � �t� supprim�";
					$this->log("L'administrateur a ete supprime",'info');
				} catch (Zend_Exception $e) {
					$this->view->messageError = $e->getMessage();
					$this->log($e->getMessage(),'err');
				}
			}
		}
		$this->_forward('/list');

	}

	function editAction()
	{
		 
		$this->view->titlePage = "Modifer un administrateur";
		$this->view->messageSuccess = "";
		$this->view->messageError = "";
			

		if ($this->_request->isPost()) {

			//filtres pour changer les chaines
			$filter = new Zend_Filter();
			$filter	->addFilter(new Zend_Filter_StripTags())
			->addFilter(new Zend_Filter_StringTrim());

			//valideurs pour les chaines
			$validator = new Zend_Validate();
			$validator -> addValidator(new Zend_Validate_NotEmpty());

			$validatorEmail = new Zend_Validate_EmailAddress();

			//get the form params
			$params = $this->_request->getPost();
				
			//Refractor the params
			$dataTemp = array (
			 		'NOM' => $filter->filter($params['lastname']),
			 		'ID' => $filter->filter($params['id']),
			 		'PRENOM' => $filter->filter($params['firstname']),
			 		'LOGIN' => $filter->filter($params['login']),
			 		'EMAIL' => $filter->filter($params['email'])
			);
			 
			$mdp = $filter->filter($params['editpassword']);
			$mdp2 = $filter->filter($params['editpassword2']);
			
				
			if ($validator->isValid($dataTemp['NOM']) &&
			$validator->isValid($dataTemp['PRENOM']) &&
			$validator->isValid($dataTemp['LOGIN']) &&
			$validatorEmail->isValid($dataTemp['EMAIL'])
			) {
					
				$data = array (
			 		'NOM' => $dataTemp['NOM'],
			 		'PRENOM' => $dataTemp['PRENOM'],
			 		'LOGIN' => $dataTemp['LOGIN'],
			 		'EMAIL' => $dataTemp['EMAIL']
				);
				
				if ($validator->isValid($mdp) && $validator->isValid($mdp2) &&
				     ($mdp == $mdp2)) {
					$data['MDP'] =  md5($mdp);
				}
			
			
				try {

					$id = $dataTemp['ID'];
					 
					if ( $id > 0) {
						$admin = new Admin();
							
						$n = $admin->update($data, 'ID = '.$id);
						 
						$this->log('Update : '.$n.' : '.$data['NOM'].' '.$data['PRENOM'],'info');
						 
						$this->_forward('/list');
					}
				} catch (Zend_Exception $e) {

					$this->view->messageError = "L'email ou le login existe d�j�";
					 
					$this->log($e->getMessage(),'err');
					 
					$this->view->populateForm = $dataTemp;
					 
				}
			} else {
				foreach ($validator->getErrors() as $errorCode) {
					$this->view->messageError =  $this->getErrorValidator($errorCode);
				}
				foreach ($validatorEmail->getErrors() as $errorCode) {
					$this->view->messageError =  $this->getErrorValidator($errorCode);
				}
				$this->view->populateForm = $dataTemp;
			}

		} else {
			//populate form
			$id = (int)$this->_request->getParam('id');
			 
			if ($id > 0) {
				$admin = new Admin();
				$row = $admin->fetchRow('ID = '.$id);
				$this->view->populateForm = $row->toArray();
			}
		}
	}

	function addAction()
	{
		 
		$this->view->titlePage = "Ajouter un administrateur";
		$this->view->messageSuccess = "";
		$this->view->messageError = "";
			
		if ($this->_request->isPost()) {

			//filtres pour changer les chaines
			$filter = new Zend_Filter();
			$filter	->addFilter(new Zend_Filter_StripTags())
			->addFilter(new Zend_Filter_StringTrim());

			//valideurs pour les chaines
			$validator = new Zend_Validate();
			$validator -> addValidator(new Zend_Validate_NotEmpty());

			$validatorEmail = new Zend_Validate_EmailAddress();

			//get the form params
			$params = $this->_request->getPost();
				
			//Refractor the params
			$mdp = $filter->filter($params['addpassword']);
			$mdp2 = $filter->filter($params['addpassword2']);
				
			$dataTemp = array (
			 		'NOM' => $filter->filter($params['lastname']),
			 		'PRENOM' => $filter->filter($params['firstname']),
			 		'LOGIN' => $filter->filter($params['addlogin']),
			 		'EMAIL' => $filter->filter($params['email'])
			);
				
			if ($validator->isValid($dataTemp['NOM']) &&
			$validator->isValid($dataTemp['PRENOM']) &&
			$validator->isValid($dataTemp['LOGIN']) &&
			$validatorEmail->isValid($dataTemp['EMAIL']) &&
			$validator->isValid($mdp) &&
			$validator->isValid($mdp2) &&
			($mdp == $mdp2)
			) {
					
				$data = array (
			 		'NOM' => $dataTemp['NOM'],
			 		'PRENOM' => $dataTemp['PRENOM'],
			 		'LOGIN' => $dataTemp['LOGIN'],
			 		'MDP' => md5($mdp),
			 		'EMAIL' => $dataTemp['EMAIL'],
			 		'ROLE' => '100'
			 		);
			 		try {
			 			$admin = new Admin();
			 			$admin->insert($data);

			 			$this->view->messageSuccess = "L'administrateur a �t� ajout�";
			 			$this->log("L'administrateur a �t� ajout�",'info');
			 		} catch (Zend_Exception $e) {

			 			$this->view->messageError = "L'email ou le login existe d�j�";
			 			$this->log($e->getMessage(),'err');
			 			$this->view->populateForm = $dataTemp;
			 		}
			} else {
				foreach ($validator->getErrors() as $errorCode) {
					$this->view->messageError =  $this->getErrorValidator($errorCode);
				}
				foreach ($validatorEmail->getErrors() as $errorCode) {
					$this->view->messageError =  $this->getErrorValidator($errorCode);
				}
				$this->view->populateForm = $dataTemp;
			}

		}
	}

}
?>