2013-10-10 02:44:53 +00:00
|
|
|
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This class provides User Account Update functions
|
|
|
|
*
|
|
|
|
* @package OSB
|
|
|
|
* @category Controllers/User
|
|
|
|
* @author Deon George
|
|
|
|
* @copyright (c) 2009-2013 Open Source Billing
|
|
|
|
* @license http://dev.osbill.net/license.html
|
|
|
|
*/
|
|
|
|
class Controller_User_Account extends Controller_Account {
|
|
|
|
protected $secure_actions = array(
|
|
|
|
'edit'=>TRUE,
|
|
|
|
'resetpassword'=>TRUE,
|
|
|
|
);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Enable User to Edit their Account Details
|
|
|
|
*/
|
|
|
|
public function action_edit() {
|
|
|
|
// Store our new values
|
|
|
|
$this->ao->values($_POST);
|
|
|
|
|
|
|
|
// Run validation and save
|
|
|
|
if ($this->ao->changed())
|
|
|
|
if ($this->ao->check()) {
|
2013-04-26 01:42:09 +00:00
|
|
|
SystemMessage::factory()
|
|
|
|
->title('Record updated')
|
|
|
|
->type('success')
|
|
|
|
->body(_('Your account record has been updated.'));
|
2013-10-10 02:44:53 +00:00
|
|
|
|
|
|
|
$this->ao->save();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
$output = '';
|
2013-04-26 01:42:09 +00:00
|
|
|
|
|
|
|
// @todo Need to check that this still works with the new bootstrap theming
|
2013-10-10 02:44:53 +00:00
|
|
|
foreach ($this->ao->validation()->errors('forms/login') as $field => $error)
|
|
|
|
$output .= sprintf('<li><b>%s</b> %s</li>',$field,$error);
|
|
|
|
|
|
|
|
if ($output)
|
|
|
|
$output = sprintf('<ul>%s</ul>',$output);
|
|
|
|
|
2013-04-26 01:42:09 +00:00
|
|
|
SystemMessage::factory()
|
|
|
|
->title(_('Record NOT updated'))
|
|
|
|
->type('error')
|
|
|
|
->body(_('Your updates didnt pass validation.').'<br/>'.$output);
|
2013-10-10 02:44:53 +00:00
|
|
|
}
|
|
|
|
|
2013-04-26 01:42:09 +00:00
|
|
|
Block::factory()
|
|
|
|
->title(sprintf('Account: %s',$this->ao->accnum()))
|
|
|
|
->title_icon('icon-wrench')
|
|
|
|
->type('form-horizontal')
|
|
|
|
->body(View::factory('account/user/edit')->set('o',$this->ao));
|
2013-10-10 02:44:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public function action_resetpassword() {
|
|
|
|
// @todo Fix this next logic, since matches_ifset is not being called when the value is on the form, but empty
|
|
|
|
if (empty($_POST['password_confirm']))
|
|
|
|
$_POST['password_confirm'] = ' ';
|
|
|
|
|
|
|
|
// Store our new values
|
|
|
|
$this->ao->values($_POST);
|
|
|
|
|
|
|
|
// Run validation and save
|
|
|
|
if ($this->ao->changed())
|
|
|
|
if ($this->ao->check()) {
|
2013-04-26 01:42:09 +00:00
|
|
|
SystemMessage::factory()
|
|
|
|
->title('Record updated')
|
|
|
|
->type('success')
|
|
|
|
->body(_('Your account record has been updated.'));
|
2013-10-10 02:44:53 +00:00
|
|
|
|
|
|
|
$this->ao->save();
|
|
|
|
|
|
|
|
// Log the password reset
|
|
|
|
$this->ao->log('Password reset');
|
|
|
|
|
|
|
|
HTTP::redirect('login');
|
|
|
|
|
|
|
|
} else {
|
2013-04-26 01:42:09 +00:00
|
|
|
// @todo Need to check that this still works with the new bootstrap theming
|
2013-10-10 02:44:53 +00:00
|
|
|
$output = '';
|
2013-04-26 01:42:09 +00:00
|
|
|
|
2013-10-10 02:44:53 +00:00
|
|
|
foreach ($this->ao->validation()->errors('forms/login') as $field => $error)
|
|
|
|
$output .= sprintf('<li><b>%s</b> %s</li>',$field,$error);
|
|
|
|
|
|
|
|
if ($output)
|
|
|
|
$output = sprintf('<ul>%s</ul>',$output);
|
|
|
|
|
2013-04-26 01:42:09 +00:00
|
|
|
SystemMessage::factory()
|
|
|
|
->title(_('Record NOT updated'))
|
|
|
|
->type('error')
|
|
|
|
->body(_('Your updates didnt pass validation.').'<br/>'.$output);
|
2013-10-10 02:44:53 +00:00
|
|
|
}
|
|
|
|
|
2013-04-26 01:42:09 +00:00
|
|
|
// @todo To add JS password validation (minimum length and both values equal)
|
|
|
|
Block::factory()
|
|
|
|
->title(sprintf('Password Reset: %s',$this->ao->accnum()))
|
|
|
|
->title_icon('icon-cog')
|
|
|
|
->type('form-horizontal')
|
|
|
|
->body(View::factory('account/user/resetpassword')->set('o',$this->ao));
|
2013-10-10 02:44:53 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|