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