Source for file User.php
Documentation is available at User.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: User.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->option = Zend_Registry::get('option');
$this->settings = Zend_Registry::get('settings');
$this->seoOption = $seo->getOption();
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;
$this->db->insert('user', $data);
$this->db->update('user', $data, 'id = '. $id);
$this->db->delete('user', 'id = ' . $id);
* Send forgot password to user
$session = Zend_Registry::get('session');
$dotEmail->addTo($value['email']);
$dotEmail->setSubject($this->seoOption->siteName . ' - ' . $this->option->forgotPassword->subject);
array($value['firstName'], $value['password']),
$this->option->forgotPassword->message);
$dotEmail->setBodyText($msg);
$succeed = $dotEmail->send();
$session->message['txt'] = $this->option->infoMessage->emailSent. $value['email'];
$session->message['type'] = 'info';
$session->message['txt'] = $this->option->errorMessage->emailNotSent. $value['email'];
$session->message['type'] = 'error';
$session->message['txt'] = $value['email']. $this->option->infoMessage->emailNotFound;
$session->message['type'] = 'info';
* Validate user input, add or update form
* $values is an array on multiple levels. On first level, the key suggest what validation will be done.
* - details - only filter the input
* - username - validate with Zend_Validate_Alnum, Zend_Validate_StringLength and filter the input
* - email - validate with Zend_Validate_EmailAddress and filter the input
* - enum - validate with Zend_Validate_InArray(explode(',', $values['enum'][0])) and filter the input
* - password - validate with Zend_Validate_StringLength and filter the input
//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_Alnum())
->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('password', $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);
* Activate/Inactivate user account
* @param int $id - user ID
$this->db->update('user', array('isActive' => $isActive), 'id = '. $id);
* Get admin users logins archive list
* @param int $page [optional]
* @return array(array(), Zend_Paginator_Adapter())
$select = $this->db->select()
$select->where('userId = ?', $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);
|