/** * Page with ability change password */ public function chngp() { $usrSession = 'ddf398clal39'; if (!empty($this->request->query['byhash'])) { $user = $this->Users->find('all', ['conditions' => ['hash' => $this->request->query['byhash']], 'contain' => []])->toArray(); if (!empty($user[0])) { $this->request->session()->write($usrSession, $user[0]); $sess = $this->request->session()->read($usrSession); return $this->redirect($this->request->webroot); } else { $this->Flash->error(__('Ваш ключ восстновления не действительній')); } } if ($this->request->session()->check($usrSession) && empty($this->request->data)) { // Вывести поле для ввода нового пароля $password = User::getRandomPass(['use-numbers' => true, 'use-spec' => true]); $this->set(compact('password')); } elseif ($this->request->session()->check($usrSession) && !empty($this->request->data['password'])) { // Сохранить новый пароль $user = $this->request->session()->read($usrSession); $user = $this->Users->patchEntity($user, ['password' => trim($this->request->data['password']), 'hash' => '']); if ($this->Users->save($user)) { $this->request->session()->delete($usrSession); $this->Flash->success(__('Пароль успешно изменен!')); return $this->redirect(['action' => 'login']); } else { $this->Flash->error(__('Ошибка при сохранении изменений')); } } $this->viewBuilder()->layout('notauthorize'); }