Admin
[ class tree: Admin ] [ index: Admin ] [ all elements ]

Source for file AdminController.php

Documentation is available at AdminController.php

  1. <?php
  2. /**
  3. * DotBoost Technologies Inc.
  4. * DotKernel Application Framework
  5. *
  6. @category   DotKernel
  7. @package    Admin
  8. @copyright  Copyright (c) 2009 DotBoost  Technologies (http://www.dotboost.com)
  9. @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  10. @version    $Id: AdminController.php 165 2010-07-02 07:25:12Z teo $
  11. */
  12.  
  13. /**
  14. * Admin Controller
  15. @author     DotKernel Team <team@dotkernel.com>
  16. */
  17.  
  18. $adminView new Admin_View($tpl);
  19. $adminModel new Admin();
  20. // switch based on the action, NO default action here
  21. $pageTitle $option->pageTitle->action->{$requestAction};
  22. switch ($requestAction)
  23. {
  24.     case 'login':
  25.         // show the Login form
  26.         $adminView->loginForm('login');
  27.     break;    
  28.     case 'logout':
  29.         Dot_Auth::clearIdentity('admin');
  30.         header('location: '.$config->website->params->url.'/' $requestModule);
  31.         exit;
  32.     break;    
  33.     case 'authorize':    
  34.         // validate the authorization request parameters 
  35.         $validate $adminModel->validateLogin($_POST['username']$_POST['password']$_POST['send']);
  36.         if(!empty($validate['login']&& empty($validate['error']))
  37.         {
  38.             // login info are VALID, we can see if is a valid user now 
  39.             $user $adminModel->checkLogin($validate['login']);
  40.             if(!empty($user))
  41.             {
  42.                 $session->admin $user[0];
  43.                 //prepare data for register the login
  44.                 $dataLogin array('ip' => Dot_Kernel::getUserIp()
  45.                               'adminId' => $session->admin['id']
  46.                               'username' => $session->admin['username']
  47.                               'referer' => $_SERVER['HTTP_REFERER'],
  48.                               'userAgent' => $_SERVER["HTTP_USER_AGENT"]);
  49.                 $adminModel->registerLogin($dataLogin);
  50.                 header('Location: '.$config->website->params->url.'/' $requestModule );
  51.                 exit;
  52.             }
  53.             else
  54.             {
  55.                 unset($session->admin);
  56.                 // check if account is inactive
  57.                 $adminTmp $adminModel->getUserBy('username',$validate['login']['username']);
  58.                 (== $adminTmp['isActive']?
  59.                     $session->message['txt'$option->errorMessage->wrongCredentials:
  60.                     $session->message['txt'$option->errorMessage->inactiveAcount;
  61.                 $session->message['type''error';                
  62.                 header('Location: '.$config->website->params->url'/' $requestModule '/' $requestController'/login');
  63.                 exit;                
  64.             }
  65.         }
  66.         else
  67.         {
  68.             // login info are NOT VALID
  69.             $session->message['txt'array($validate['error']['username']$validate['error']['password']);
  70.             $session->message['type''error';
  71.             header('Location: '.$config->website->params->url'/' $requestModule '/' $requestController'/login');
  72.             exit;
  73.         }            
  74.     break;
  75.     case 'account':
  76.         //display my account form
  77.         $data $adminModel->getUserBy('id'$session->admin['id']);
  78.         $adminView->details('update',$data);    
  79.     break;
  80.     case 'list':
  81.         // list admin users
  82.         $page (isset($request['page'])) $request['page'1;
  83.         $users $adminModel->getUserList($page);        
  84.         $adminView->listUser('list'$users$page);    
  85.     break;    
  86.     case 'add':
  87.         // display form and add new admin
  88.         $data array();
  89.         $error array();
  90.         if(array_key_exists('send'$_POST&& 'on' == $_POST['send'])
  91.         {        
  92.             // POST values that will be validated                
  93.             $values array('username' => 
  94.                                 array('username' => $_POST['username']
  95.                                      ),
  96.                             'details' => 
  97.                                 array('firstName' => $_POST['firstName'],
  98.                                       'lastName' => $_POST['lastName']
  99.                                      ),
  100.                             'email' => array('email' => $_POST['email']),
  101.                             'enum' => array('0' => '0,1',
  102.                                             'isActive' => $_POST['isActive']),
  103.                             'password' => array('password' => $_POST['password'],
  104.                                                 'password2' =>  $_POST['password2']
  105.                                                )
  106.                           );
  107.             $valid $adminModel->validateUser($values);
  108.             $data $valid['data'];
  109.             $error $valid['error'];
  110.             if(empty($error))
  111.             {    
  112.                 // check if admin already exists by $field ('username','email')
  113.                 $checkBy array('username''email');
  114.                 foreach ($checkBy as $field)
  115.                 {                    
  116.                        $adminExists $adminModel->getUserBy($field$data[$field]);
  117.                     if(!empty($adminExists))
  118.                     {
  119.                         $error ucfirst($field' '$data[$field$option->errorMessage->userExists;
  120.                     }
  121.                 }    
  122.             }
  123.             if(empty($error))
  124.             {
  125.                 // no error - then add admin user
  126.                 $adminModel->addUser($data);                
  127.                 $session->message['txt'$option->infoMessage->accountAdd;
  128.                 $session->message['type''info';
  129.                 header('Location: '.$config->website->params->url'/' $requestModule '/' $requestController'/list/');
  130.                 exit;                    
  131.             }
  132.             else
  133.             {                
  134.                 $session->message['txt'$error;
  135.                 $session->message['type''error';
  136.             }
  137.         }
  138.         $adminView->details('add',$data);        
  139.     break;
  140.     case 'update':
  141.         // display form and update admin user
  142.         $error array();
  143.         if(array_key_exists('send'$_POST&& 'on' == $_POST['send'])
  144.         {                
  145.             // POST values that will be validated                        
  146.             $values array('details' => 
  147.                                 array('firstName'=>$_POST['firstName'],
  148.                                       'lastName'=>$_POST['lastName']
  149.                                      ),
  150.                             'email' => array('email' => $_POST['email']),
  151.                             'enum' => array('0' => '0,1',
  152.                                             'isActive' => $_POST['isActive']),
  153.                             'password' => array('password' => $_POST['password'],
  154.                                                 'password2' =>  $_POST['password2']
  155.                                                )
  156.                           );
  157.             $valid $adminModel->validateUser($values);
  158.             $data $valid['data'];
  159.             $error $valid['error'];            
  160.             if(empty($error))
  161.             {
  162.                 // no error - then update admin user
  163.                 $data['id'$request['id'];                
  164.                 $adminModel->updateUser($data);
  165.                 $session->message['txt'$option->infoMessage->accountUpdate;
  166.                 $session->message['type''info';
  167.                 header('Location: '.$config->website->params->url'/' $requestModule '/' $requestController'/list/');
  168.                 exit;                
  169.             }
  170.             else
  171.             {
  172.                 $session->message['txt'$error;
  173.                 $session->message['type''error';
  174.             }
  175.         }
  176.         $data $adminModel->getUserBy('id'$request['id']);
  177.         $adminView->details('update',$data);    
  178.     break;
  179.     case 'activate':
  180.         // this action is called from ajax request dojo.xhrPost()
  181.         // activate/inactivate admin user
  182.         $id (isset($_POST['id'])) ? (int)$_POST['id'0;
  183.         $isActive (isset($_POST['isActive'])) $_POST['isActive'0;
  184.         $page (isset($_POST['page'])) ? (int)$_POST['page'1;
  185.         $values array('enum' => array('0' => '0,1''isActive' => $isActive));
  186.         $valid $adminModel->validateUser($values);
  187.         if(empty($valid['error']))
  188.         {    
  189.             // no error - then change active value of admin user
  190.             $adminModel->activateUser($id$valid['data']['isActive']);        
  191.         }
  192.         else
  193.         {
  194.             $session->message['txt'$option->errorMessage->trickUserError;
  195.             $session->message['type''error';
  196.         }
  197.         $users $adminModel->getUserList($page);
  198.         $session->useAjaxView true;        
  199.         $adminView->listUser('list'$users$pagetrue);
  200.     break;
  201.     case 'delete':
  202.         // display confirmation form and delete admin user
  203.         if(array_key_exists('send'$_POST&& 'on' == $_POST['send'])
  204.         {    
  205.             if (== $_POST['delete'])
  206.             {
  207.                 // delete admin user
  208.                 $adminModel->deleteUser($request['id']);
  209.                 $session->message['txt'$option->infoMessage->accountDelete;
  210.                 $session->message['type''info';
  211.             }
  212.             else
  213.             {
  214.                 $session->message['txt'$option->infoMessage->noAccountDelete;
  215.                 $session->message['type''info';
  216.             }
  217.             header('Location: '.$config->website->params->url'/' $requestModule '/' $requestController'/list/');
  218.             exit;                
  219.         }
  220.         $data $adminModel->getUserBy('id'$request['id']);
  221.         // delete page confirmation
  222.         $adminView->details('delete'$data);    
  223.     break;
  224.     case 'logins':
  225.         // list user logins
  226.         $id (isset($request['id'])) ? (int)$request['id'0;        
  227.         $page (isset($request['page'])) $request['page'1;
  228.         $logins $adminModel->getLogins($id$page);
  229.         $adminView->loginsUser('logins'$logins$page);
  230.     break;
  231. }

Documentation generated on Wed, 21 Jul 2010 07:34:35 +0000 by phpDocumentor 1.4.3