Adding edit profile (and change password) option for users.
This commit is contained in:
parent
327abf551c
commit
f3b0f041a1
|
@ -29,7 +29,7 @@ class UserController extends Controller
|
|||
|
||||
public function init()
|
||||
{
|
||||
$this->userStore = b8\Store\Factory::getStore('User');
|
||||
$this->userStore = b8\Store\Factory::getStore('User');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -45,6 +45,61 @@ class UserController extends Controller
|
|||
return $this->view->render();
|
||||
}
|
||||
|
||||
public function profile()
|
||||
{
|
||||
$user = $_SESSION['user'];
|
||||
$values = $user->getDataArray();
|
||||
|
||||
if ($this->request->getMethod() == 'POST') {
|
||||
$values = $this->getParams();
|
||||
|
||||
if (!empty($values['password'])) {
|
||||
$values['hash'] = password_hash($values['password'], PASSWORD_DEFAULT);
|
||||
}
|
||||
|
||||
$this->view->updated = true;
|
||||
|
||||
$user->setValues($values);
|
||||
$_SESSION['user'] = $this->userStore->save($user);
|
||||
}
|
||||
|
||||
$form = new Form();
|
||||
$form->setAction(PHPCI_URL.'user/profile');
|
||||
$form->setMethod('POST');
|
||||
|
||||
$name = new Form\Element\Text('name');
|
||||
$name->setClass('form-control');
|
||||
$name->setContainerClass('form-group');
|
||||
$name->setLabel('Name');
|
||||
$name->setRequired(true);
|
||||
$form->addField($name);
|
||||
|
||||
$email = new Form\Element\Email('email');
|
||||
$email->setClass('form-control');
|
||||
$email->setContainerClass('form-group');
|
||||
$email->setLabel('Email Address');
|
||||
$email->setRequired(true);
|
||||
$form->addField($email);
|
||||
|
||||
$password = new Form\Element\Password('password');
|
||||
$password->setClass('form-control');
|
||||
$password->setContainerClass('form-group');
|
||||
$password->setLabel('Password (leave blank if you don\'t want to change it)');
|
||||
$password->setRequired(false);
|
||||
$form->addField($password);
|
||||
|
||||
$submit = new Form\Element\Submit();
|
||||
$submit->setClass('btn btn-success');
|
||||
$submit->setValue('Save »');
|
||||
$form->addField($submit);
|
||||
|
||||
$form->setValues($values);
|
||||
|
||||
$this->view->form = $form;
|
||||
|
||||
return $this->view->render();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a user - handles both form and processing.
|
||||
*/
|
||||
|
|
15
PHPCI/View/User/profile.phtml
Normal file
15
PHPCI/View/User/profile.phtml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<h1><?php print $this->User()->getName(); ?></h1>
|
||||
|
||||
<?php if (isset($updated)): ?>
|
||||
<p class="alert alert-success">Your details have been updated.</p>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Update your details</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<?php print $form; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -37,13 +37,27 @@
|
|||
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><p class="navbar-text"><strong><?php print htmlspecialchars($this->User()->getName()); ?></strong></p></li>
|
||||
<li><a href="<?php print PHPCI_URL ?>session/logout">Log out</a></li>
|
||||
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<img class="pull-left" style="margin-right: 7px; margin-top: -5px; border-radius: 50%" src="http://www.gravatar.com/avatar/<?php print md5($this->User()->getEmail()); ?>?d=mm&s=30">
|
||||
|
||||
<strong><?php print htmlspecialchars($this->User()->getName()); ?></strong> <b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li><a href="<?php print PHPCI_URL ?>user/profile">Edit Profile</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="<?php print PHPCI_URL ?>session/logout">Log out</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<?php if ($this->User()->getIsAdmin()): ?>
|
||||
<li>
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-success navbar-btn" href="<?php echo PHPCI_URL ?>project/add">Add Project</a>
|
||||
</div>
|
||||
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn navbar-btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
Admin <span class="caret"></span>
|
||||
</button>
|
||||
|
|
Loading…
Reference in a new issue