Source for file UserController.php
Documentation is available at UserController.php
* DotBoost Technologies Inc.
* DotKernel Application Framework
* @copyright Copyright (c) 2009 DotBoost Technologies (http://www.dotboost.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* @version $Id: UserController.php 165 2010-07-02 07:25:12Z teo $
* @author DotKernel Team <team@dotkernel.com>
// instantiate classes related to User module: model & view
// all actions MUST set the variable $pageTitle
$pageTitle = $option->pageTitle->action->{$requestAction};
// switch based on the action, don't forget the default action
$page = (isset ($request['page'])) ? $request['page'] : 1;
$users = $userModel->getUserList($page);
$userView->listUser('list', $users, $page);
// display form and add new user
// POST values that will be validated
$values = array('username' =>
array('username' => $_POST['username']
array('firstName' => $_POST['firstName'],
'lastName' => $_POST['lastName']
'email' => array('email' => $_POST['email']),
'enum' => array('0' => '0,1',
'isActive' => $_POST['isActive']),
'password' => array('password' => $_POST['password'],
'password2' => $_POST['password2']
$valid = $userModel->validateUser($values);
$error = $valid['error'];
// check if user already exists by $field ('username','email')
$checkBy = array('username', 'email');
foreach ($checkBy as $field)
$userExists = $userModel->getUserBy($field, $data[$field]);
$error = ucfirst($field) . ' '. $data[$field] . $option->errorMessage->userExists;
// no error - then add user
$userModel->addUser($data);
$session->message['txt'] = $option->infoMessage->accountAdd;
$session->message['type'] = 'info';
header('Location: '. $config->website->params->url. '/' . $requestModule . '/' . $requestController. '/list/');
$session->message['txt'] = $error;
$session->message['type'] = 'error';
$userView->details('add',$data);
// display form and update user
// POST values that will be validated
$values = array('details' =>
array('firstName'=> $_POST['firstName'],
'lastName'=> $_POST['lastName']
'email' => array('email' => $_POST['email']),
'enum' => array('0' => '0,1',
'isActive' => $_POST['isActive']),
'password' => array('password' => $_POST['password'],
'password2' => $_POST['password2']
$valid = $userModel->validateUser($values);
$error = $valid['error'];
// no error - then update user
$data['id'] = $request['id'];
$userModel->updateUser($data);
$session->message['txt'] = $option->infoMessage->accountUpdate;
$session->message['type'] = 'info';
header('Location: '. $config->website->params->url. '/' . $requestModule . '/' . $requestController. '/list/');
$session->message['txt'] = $error;
$session->message['type'] = 'error';
$data = $userModel->getUserBy('id', $request['id']);
$userView->details('update',$data);
// activate/inactivate user account
// this action is called from ajax request dojo.xhrPost()
$id = (isset ($_POST['id'])) ? (int) $_POST['id'] : 0;
$isActive = (isset ($_POST['isActive'])) ? $_POST['isActive'] : 0;
$page = (isset ($_POST['page'])) ? (int) $_POST['page'] : 1;
$values = array('enum' => array('0' => '0,1', 'isActive' => $isActive));
$valid = $userModel->validateUser($values);
if(empty($valid['error']))
// no error - then change active value of user
$userModel->activateUser($id, $valid['data']['isActive']);
$session->message['txt'] = $option->errorMessage->trickUserError;
$session->message['type'] = 'error';
$users = $userModel->getUserList($page);
$session->useAjaxView = true;
$userView->listUser('list', $users, $page, true);
// display confirmation form and delete user account
if (1 == $_POST['delete'])
$userModel->deleteUser($request['id']);
$session->message['txt'] = $option->infoMessage->accountDelete;
$session->message['type'] = 'info';
$session->message['txt'] = $option->infoMessage->noAccountDelete;
$session->message['type'] = 'info';
header('Location: '. $config->website->params->url. '/' . $requestModule . '/' . $requestController. '/list/');
$data = $userModel->getUserBy('id', $request['id']);
// delete page confirmation
$userView->details('delete', $data);
// send an email with the password to the selected user
$userModel->sendPassword($request['id']);
$session->message['txt'] = $option->errorMessage->emailNotSent;
$session->message['type'] = 'error';
header('Location: '. $config->website->params->url. '/' . $requestModule . '/' . $requestController. '/list/');
$id = (isset ($request['id'])) ? (int) $request['id'] : 0;
$page = (isset ($request['page'])) ? $request['page'] : 1;
$logins = $userModel->getLogins($id, $page);
$userView->loginsUser('logins', $logins, $page);
|