diff --git a/app/config/routes.yml b/app/config/routes.yml index d8c0974..309bc79 100644 --- a/app/config/routes.yml +++ b/app/config/routes.yml @@ -67,6 +67,12 @@ router: backend-user-edit: pattern: '/admin/user/{id:([0-9]+)}' path: backend::user::edit + backend-user-status: + pattern: '/admin/user/{id:([0-9]+)}/{type}' + path: + module: backend + controller: user + action: status backend-log: pattern: '/admin/log{page:/?([0-9]+)?}' path: backend::log::index diff --git a/app/controllers/backend/UserController.php b/app/controllers/backend/UserController.php index bde79ac..4ebde4f 100644 --- a/app/controllers/backend/UserController.php +++ b/app/controllers/backend/UserController.php @@ -2,7 +2,8 @@ namespace App\Controller\Backend; -use App\Model\Data\User; +use App\Model\Data\User, + App\Form\UserSettings as UserSettingsForm; class UserController extends \Phalcon\Mvc\Controller { @@ -21,4 +22,42 @@ class UserController extends \Phalcon\Mvc\Controller $this->view->pagination_url = '/admin/user/list/'; $this->view->page = $paginator->getPaginate(); } + + public function editAction($id) + { + $user = User::findFirstById($id); + $form = new UserSettingsForm($user, true); + + if ($this->request->isPost()) { + $data = $this->request->getPost(); + + if ($form->isValid($data)) { + + $new_pw = $form->getValue('passwordNew'); + if (strlen($new_pw) > 0) { + $hash = $this->security->hash($new_pw, 12); + $user->setPassword($hash); + } + $user->save(); + $form->initialize(); + + $this->flash->message('success', 'User saved!'); + } else { + $this->flash->message('error', 'Could not save user'); + } + } + + $this->view->user = $user; + $this->view->form = $form; + } + + public function statusAction($id, $type) + { + $user = User::findFirstById($id); + $user->setStatus(ucfirst($type)); + $user->save(); + + $this->flash->success('The account was: ' . $user->getStatus()); + $this->response->redirect('/admin'); + } } diff --git a/app/views/backend/user/edit.volt b/app/views/backend/user/edit.volt new file mode 100644 index 0000000..7f34a01 --- /dev/null +++ b/app/views/backend/user/edit.volt @@ -0,0 +1,63 @@ + +{% if (user.isActive() === false) %} +
+
+

{{ user.getStatus() }}

+
+
+{% endif %} + +
+ +
+ {{ form.renderDecorated('username', [ 'length': 7 ]) }} + {{ form.renderDecorated('id', [ 'length': 2, 'label-length' : 1 ]) }} +
+ +
+ {{ form.renderDecorated('name') }} +
+ +
+ {{ form.renderDecorated('email') }} +
+ +
+
+

Password

+
+
+ +
+ {{ form.renderDecorated('passwordNew') }} +
+ +
+ {{ form.renderDecorated('passwordConfirm') }} +
+ +
+
+
+ {{ form.render('Save') }} + + + {% set actions = [ 'Activate': 'Active', 'Suspend': 'Suspended', 'Delete': 'Deleted' ] %} +
+ {% for label, status in actions %} + + {% if (user.status != status) %} + + {{ label }} + + {% endif %} + + {% endfor %} +
+
+
+ +
+ + diff --git a/app/views/backend/user/index.volt b/app/views/backend/user/index.volt index 35705ad..c03ad3c 100644 --- a/app/views/backend/user/index.volt +++ b/app/views/backend/user/index.volt @@ -27,7 +27,7 @@ {{ item.username }} {{ item.name }} {{ item.email }} - {{ item.type }} + {{ item.type | capitalize }} {{ item.status }} {% endfor %}