/** * Invoke put action * * @param int $id * * @return RedirectResponse */ public function __invoke($id) { $formValues = $this->getRequest()->getParsedBody()['form']; $form = Form::create()->getForm(); $this->getResponder()->setData('form', $form); $form->handleRequest(new Request($_GET, $_POST, [], $_COOKIE, $_FILES, $_SERVER)); if ($form->isSubmitted() && $form->isValid()) { /** @var UsersTable $usersTable */ $usersTable = TableRegistry::get('Users.Users'); /** @var User $user */ $user = $usersTable->get($id, ['contain' => 'UserDetails']); $detailsKey = ['first_name', 'middle_name', 'last_name']; $tmpDetails = []; $currentUserDetails = $user->getUserDetails(null, null, true); foreach ($detailsKey as $key) { if (array_key_exists($key, $currentUserDetails)) { $tmpDetails[] = ['id' => $currentUserDetails[$key]->get('id'), 'user_id' => $id, 'key' => $key, 'value' => strip_tags($formValues[$key])]; } else { $tmpDetails[] = ['user_id' => $id, 'key' => $key, 'value' => strip_tags($formValues[$key])]; } } $data = ['username' => $formValues['username'], 'email' => $formValues['email'], 'status' => $formValues['status'], 'details' => $tmpDetails, 'roles' => ['_ids' => $formValues['roles']]]; if (!empty($formValues['password'])) { $data['password'] = (new DefaultPassword())->hash($formValues['password']); } $usersTable->patchEntity($user, $data, ['associated' => ['UserDetails', 'Roles']]); $usersTable->save($user); return new RedirectResponse($this->getRouter()->generateUrl(['users'])); } }
/** * Invoke Action * * @param int $id User id * * @return void * @throws \Rad\Core\Exception\BaseException */ public function __invoke($id = null) { if (null !== $id) { $this->getResponder()->setData('form', Form::create()->getForm($this->getUsers($id))); } else { $this->getResponder()->setData('table', $this->getDataTable()); } }
/** * {@inheritdoc} */ public function __invoke() { /** @var RolesTable $rolesTable */ $rolesTable = TableRegistry::get('Users.Roles'); $formValues = $this->getRequest()->getParsedBody()['form']; $form = Form::create()->getRoleForm(); $this->getResponder()->setData('form', $form); $form->handleRequest(new Request($_GET, $_POST, [], $_COOKIE, $_FILES, $_SERVER)); if ($form->isSubmitted() && $form->isValid()) { /** @var Role $role */ $role = $rolesTable->newEntity(['name' => $formValues['name'], 'title' => $formValues['title'], 'resources' => ['_ids' => $formValues['resources']], 'description' => $formValues['description']], ['associated' => 'Resources']); $rolesTable->save($role); return new RedirectResponse($this->getRouter()->generateUrl(['users', 'roles'])); } }
/** * {@inheritdoc} */ public function __invoke() { /** @var UsersTable $usersTable */ $usersTable = TableRegistry::get('Users.Users'); $formValues = $this->getRequest()->getParsedBody()['form']; $form = Form::create()->getForm(); $this->getResponder()->setData('form', $form); $form->handleRequest(new Request($_GET, $_POST, [], $_COOKIE, $_FILES, $_SERVER)); if ($form->isSubmitted() && $form->isValid()) { $roles = []; foreach ($formValues['roles'] as $role) { $roles[] = new Role(['id' => $role]); } /** @var User $user */ $user = $usersTable->newEntity(); $user->set('username', $formValues['username'])->set('email', $formValues['email'])->set('status', $formValues['status'])->set('password', (new DefaultPassword())->hash($formValues['password']))->set('roles', $roles)->set('details', [new UserDetail(['key' => 'first_name', 'value' => strip_tags($formValues['first_name'])]), new UserDetail(['key' => 'middle_name', 'value' => strip_tags($formValues['middle_name'])]), new UserDetail(['key' => 'last_name', 'value' => strip_tags($formValues['last_name'])])]); $usersTable->save($user); return new RedirectResponse($this->getRouter()->generateUrl(['users'])); } }
/** * Get method * * @throws \Rad\Core\Exception\BaseException */ public function getMethod() { $this->getResponder()->setData('form', Form::create()->getForm()); }