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() }}
+