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

Source for file UserController.php

Documentation is available at UserController.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: UserController.php 165 2010-07-02 07:25:12Z teo $
  11. */
  12.  
  13. /**
  14. * User Controller
  15. @author     DotKernel Team <team@dotkernel.com>
  16. */
  17.  
  18. // instantiate classes related to User module: model & view
  19. $userModel new User()
  20. $userView new User_View($tpl);
  21. // all actions MUST set  the variable  $pageTitle
  22. $pageTitle $option->pageTitle->action->{$requestAction};
  23. // switch based on the action, don't forget the default action
  24. switch ($requestAction)
  25. {
  26.     default:
  27.     case 'list':
  28.         // list users
  29.         $page (isset($request['page'])) $request['page'1;
  30.         $users $userModel->getUserList($page);        
  31.         $userView->listUser('list'$users$page);        
  32.     break;
  33.     case 'add':        
  34.         // display form and add new user
  35.         $data array();
  36.         $error array();
  37.         if(array_key_exists('send'$_POST&& 'on' == $_POST['send'])
  38.         {        
  39.             // POST values that will be validated                
  40.             $values array('username' => 
  41.                                 array('username' => $_POST['username']
  42.                                      ),
  43.                             'details' => 
  44.                                 array('firstName' => $_POST['firstName'],
  45.                                       'lastName' => $_POST['lastName']
  46.                                      ),
  47.                             'email' => array('email' => $_POST['email']),
  48.                             'enum' => array('0' => '0,1',
  49.                                             'isActive' => $_POST['isActive']),
  50.                             'password' => array('password' => $_POST['password'],
  51.                                                 'password2' =>  $_POST['password2']
  52.                                                )
  53.                           );
  54.             $valid $userModel->validateUser($values);
  55.             $data $valid['data'];
  56.             $error $valid['error'];
  57.             if(empty($error))
  58.             {    
  59.                 // check if user already exists by $field ('username','email')
  60.                 $checkBy array('username''email');
  61.                 foreach ($checkBy as $field)
  62.                 {                    
  63.                        $userExists $userModel->getUserBy($field$data[$field]);
  64.                     if(!empty($userExists))
  65.                     {
  66.                         $error ucfirst($field' '$data[$field$option->errorMessage->userExists;
  67.                     }
  68.                 }    
  69.             }
  70.             if(empty($error))
  71.             {
  72.                 // no error - then add user
  73.                 $userModel->addUser($data);                
  74.                 $session->message['txt'$option->infoMessage->accountAdd;
  75.                 $session->message['type''info';
  76.                 header('Location: '.$config->website->params->url'/' $requestModule '/' $requestController'/list/');
  77.                 exit;                    
  78.             }
  79.             else
  80.             {                
  81.                 $session->message['txt'$error;
  82.                 $session->message['type''error';
  83.             }
  84.         }
  85.         $userView->details('add',$data);        
  86.     break;
  87.     case 'update':
  88.         // display form and update user
  89.         $error array();
  90.         if(array_key_exists('send'$_POST&& 'on' == $_POST['send'])
  91.         {                
  92.             // POST values that will be validated                        
  93.             $values array('details' => 
  94.                                 array('firstName'=>$_POST['firstName'],
  95.                                       'lastName'=>$_POST['lastName']
  96.                                      ),
  97.                             'email' => array('email' => $_POST['email']),
  98.                             'enum' => array('0' => '0,1',
  99.                                             'isActive' => $_POST['isActive']),
  100.                             'password' => array('password' => $_POST['password'],
  101.                                                 'password2' =>  $_POST['password2']
  102.                                                )
  103.                           );
  104.             $valid $userModel->validateUser($values);
  105.             $data $valid['data'];
  106.             $error $valid['error'];            
  107.             if(empty($error))
  108.             {
  109.                 // no error - then update user
  110.                 $data['id'$request['id'];                
  111.                 $userModel->updateUser($data);
  112.                 $session->message['txt'$option->infoMessage->accountUpdate;
  113.                 $session->message['type''info';
  114.                 header('Location: '.$config->website->params->url'/' $requestModule '/' $requestController'/list/');
  115.                 exit;                
  116.             }
  117.             else
  118.             {
  119.                 $session->message['txt'$error;
  120.                 $session->message['type''error';
  121.             }
  122.         }
  123.         $data $userModel->getUserBy('id'$request['id']);
  124.         $userView->details('update',$data);    
  125.     break;
  126.     case 'activate':
  127.         // activate/inactivate user account
  128.         // this action is called from ajax request dojo.xhrPost()
  129.         $id (isset($_POST['id'])) ? (int)$_POST['id'0;
  130.         $isActive (isset($_POST['isActive'])) $_POST['isActive'0;
  131.         $page (isset($_POST['page'])) ? (int)$_POST['page'1;
  132.         $values array('enum' => array('0' => '0,1''isActive' => $isActive));
  133.         $valid $userModel->validateUser($values);
  134.         if(empty($valid['error']))
  135.         {    
  136.             // no error - then change active value of user
  137.             $userModel->activateUser($id$valid['data']['isActive']);        
  138.         }
  139.         else
  140.         {
  141.             $session->message['txt'$option->errorMessage->trickUserError;
  142.             $session->message['type''error';
  143.         }
  144.         $users $userModel->getUserList($page);
  145.         $session->useAjaxView true;        
  146.         $userView->listUser('list'$users$pagetrue);
  147.     break;
  148.     case 'delete':
  149.         // display confirmation form and delete user account
  150.         if(array_key_exists('send'$_POST&& 'on' == $_POST['send'])
  151.         {    
  152.             if (== $_POST['delete'])
  153.             {
  154.                 // delete user
  155.                 $userModel->deleteUser($request['id']);
  156.                 $session->message['txt'$option->infoMessage->accountDelete;
  157.                 $session->message['type''info';
  158.             }
  159.             else
  160.             {
  161.                 $session->message['txt'$option->infoMessage->noAccountDelete;
  162.                 $session->message['type''info';
  163.             }
  164.             header('Location: '.$config->website->params->url'/' $requestModule '/' $requestController'/list/');
  165.             exit;                
  166.         }
  167.         $data $userModel->getUserBy('id'$request['id']);
  168.         // delete page confirmation
  169.         $userView->details('delete'$data);    
  170.     break;
  171.     case 'send-password':
  172.         // send an email with the password to the selected user
  173.         $data array();
  174.         $error array();
  175.         if ($request['id'0)
  176.         {
  177.             // send user password 
  178.             $userModel->sendPassword($request['id']);                
  179.         }
  180.         else
  181.         {
  182.             $session->message['txt'$option->errorMessage->emailNotSent;
  183.             $session->message['type''error';
  184.         }
  185.         header('Location: '.$config->website->params->url'/' $requestModule '/' $requestController'/list/');
  186.         exit;        
  187.     break;
  188.     case 'logins':
  189.         // list user logins
  190.         $id (isset($request['id'])) ? (int)$request['id'0;        
  191.         $page (isset($request['page'])) $request['page'1;
  192.         $logins $userModel->getLogins($id$page);
  193.         $userView->loginsUser('logins'$logins$page);
  194.     break;
  195. }

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