Source for file Admin.php
Documentation is available at Admin.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: Admin.php 158 2010-06-25 08:59:20Z teo $
* Here are all the actions related to the user
* @author DotKernel Team <team@dotkernel.com>
$this->db = Zend_Registry::get('database');
$this->config = Zend_Registry::get('configuration');
$this->settings = Zend_Registry::get('settings');
$this->option = Zend_Registry::get('option');
* Check to see if user can login
$password = md5($data['username']. $this->config->settings->admin->salt. $data['password']);
$select = $this->db->select()
->where('isActive = ?','1')
->where('username = ?', $data['username'])
->where('password = ?', $password);
$results = $this->db->fetchAll($select);
if( 1 == count($results))
public function getUserBy($field = '', $value = '')
$select = $this->db->select()
->where($field. ' = ?', $value)
$result = $this->db->fetchRow($select);
* @param int $page [optional]
* @return array(array(), Zend_Paginator_Adapter())
$select = $this->db->select()
$paginatorAdapter = new Zend_Paginator_Adapter_DbSelect($select);
$select->limit($this->settings->resultsPerPage) :
$select->limit($this->settings->resultsPerPage, ($page- 1)* $this->settings->resultsPerPage);
$data = $this->db->fetchAll($select);
return array('data'=> $data,'paginatorAdapter'=> $paginatorAdapter);
// if you want to add an inactive user, un-comment the below line, default: isActive = 1
// $data['isActive'] = 0;
$data['password'] = md5($data['username']. $this->config->settings->admin->salt. $data['password']);
$this->db->insert('admin', $data);
$data['password'] = md5($user['username']. $this->config->settings->admin->salt. $data['password']);
$this->db->update('admin', $data, 'id = ' . $id);
$this->db->delete('admin', 'id = ' . $id);
* Validate the data that comes from login form
* @param string $username
* @param string $password
* @param string $send [optional] which is a control key
public function validateLogin($username, $password, $send = 'off')
$validatorUsername = new Zend_Validate();
$validatorUsername->addValidator(new Zend_Validate_StringLength(
$this->option->validate->username->lengthMin,
$this->option->validate->username->lengthMax
->addValidator(new Zend_Validate_Alnum());
if ($validatorUsername->isValid($username))
$login['username'] = $username;
$error['username'] = $this->option->errorMessage->invalidUsername;
$validatorPassword = new Zend_Validate();
$validatorPassword->addValidator(new Zend_Validate_StringLength(
$this->option->validate->password->lengthMin,
$this->option->validate->password->lengthMax
if ($validatorPassword->isValid($password))
$login['password'] = $password;
$error['password'] = $this->option->errorMessage->invalidPassword;
return array('login'=> $login, 'error'=> $error);
* Validate user input, add or update form
//validate the input data - username, password and email will be also filtered
$validatorChain = new Zend_Validate();
//validate details parameters
$validatorChain = new Zend_Validate();
$validatorChain->addValidator(new Zend_Validate_Alpha())
->addValidator(new Zend_Validate_StringLength(
$this->option->validate->details->lengthMin,
$this->option->validate->details->lengthMax
$validatorEmail = new Zend_Validate_EmailAddress();
$validatorEnum = new Zend_Validate_InArray(explode(',', $values['enum'][0]));
unset ($values['enum'][0]);
if(array_key_exists('email', $values) && ($values['password']['password'] != '' || $values['password']['password2'] != ''))
if($values['password']['password'] == $values['password']['password2'])
unset ($values['password']['password2']);
$validatorChain = new Zend_Validate();
$validatorChain->addValidator(new Zend_Validate_StringLength(
$this->option->validate->password->lengthMin,
$this->option->validate->password->lengthMax
$error['password'] = $this->option->errorMessage->passwordTwice;
return array('data' => $data, 'error' => $error);
* Update active field for admin user
$this->db->update('admin', array('isActive' => $isActive), 'id = '. $id);
$this->db->insert('adminLogin', $data);
* Get admin users logins archive list
* @param int $page [optional]
* @return array(array(), Zend_Paginator_Adapter())
$select = $this->db->select()
$select->where('adminId = ?', $id);
$select->order('dateLogin DESC');
$paginatorAdapter = new Zend_Paginator_Adapter_DbSelect($select);
$select->limit($this->settings->resultsPerPage) :
$select->limit($this->settings->resultsPerPage, ($page- 1)* $this->settings->resultsPerPage);
$data = $this->db->fetchAll($select);
return array('data'=> $data,'paginatorAdapter'=> $paginatorAdapter);
|