Source for file AdminController.php
Documentation is available at AdminController.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: AdminController.php 165 2010-07-02 07:25:12Z teo $
* @author DotKernel Team <team@dotkernel.com>
$adminModel = new Admin();
// switch based on the action, NO default action here
$pageTitle = $option->pageTitle->action->{$requestAction};
$adminView->loginForm('login');
header('location: '. $config->website->params->url. '/' . $requestModule);
// validate the authorization request parameters
$validate = $adminModel->validateLogin($_POST['username'], $_POST['password'], $_POST['send']);
if(!empty($validate['login']) && empty($validate['error']))
// login info are VALID, we can see if is a valid user now
$user = $adminModel->checkLogin($validate['login']);
$session->admin = $user[0];
//prepare data for register the login
'adminId' => $session->admin['id'],
'username' => $session->admin['username'],
'referer' => $_SERVER['HTTP_REFERER'],
'userAgent' => $_SERVER["HTTP_USER_AGENT"]);
$adminModel->registerLogin($dataLogin);
header('Location: '. $config->website->params->url. '/' . $requestModule );
// check if account is inactive
$adminTmp = $adminModel->getUserBy('username',$validate['login']['username']);
(1 == $adminTmp['isActive']) ?
$session->message['txt'] = $option->errorMessage->wrongCredentials:
$session->message['txt'] = $option->errorMessage->inactiveAcount;
$session->message['type'] = 'error';
header('Location: '. $config->website->params->url. '/' . $requestModule . '/' . $requestController. '/login');
// login info are NOT VALID
$session->message['txt'] = array($validate['error']['username'], $validate['error']['password']);
$session->message['type'] = 'error';
header('Location: '. $config->website->params->url. '/' . $requestModule . '/' . $requestController. '/login');
//display my account form
$data = $adminModel->getUserBy('id', $session->admin['id']);
$adminView->details('update',$data);
$page = (isset ($request['page'])) ? $request['page'] : 1;
$users = $adminModel->getUserList($page);
$adminView->listUser('list', $users, $page);
// display form and add new admin
// 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 = $adminModel->validateUser($values);
$error = $valid['error'];
// check if admin already exists by $field ('username','email')
$checkBy = array('username', 'email');
foreach ($checkBy as $field)
$adminExists = $adminModel->getUserBy($field, $data[$field]);
$error = ucfirst($field) . ' '. $data[$field] . $option->errorMessage->userExists;
// no error - then add admin user
$adminModel->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';
$adminView->details('add',$data);
// display form and update admin 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 = $adminModel->validateUser($values);
$error = $valid['error'];
// no error - then update admin user
$data['id'] = $request['id'];
$adminModel->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 = $adminModel->getUserBy('id', $request['id']);
$adminView->details('update',$data);
// this action is called from ajax request dojo.xhrPost()
// activate/inactivate admin user
$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 = $adminModel->validateUser($values);
if(empty($valid['error']))
// no error - then change active value of admin user
$adminModel->activateUser($id, $valid['data']['isActive']);
$session->message['txt'] = $option->errorMessage->trickUserError;
$session->message['type'] = 'error';
$users = $adminModel->getUserList($page);
$session->useAjaxView = true;
$adminView->listUser('list', $users, $page, true);
// display confirmation form and delete admin user
if (1 == $_POST['delete'])
$adminModel->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 = $adminModel->getUserBy('id', $request['id']);
// delete page confirmation
$adminView->details('delete', $data);
$id = (isset ($request['id'])) ? (int) $request['id'] : 0;
$page = (isset ($request['page'])) ? $request['page'] : 1;
$logins = $adminModel->getLogins($id, $page);
$adminView->loginsUser('logins', $logins, $page);
|