public function postEdit($id = null) { if (empty($id) || !is_numeric($id)) { redirect(); } $user = User::findOrNew($id); if (empty($user->id)) { redirect(); } $confirm = $this->input->post('confirm'); $form = $this->input->post('form'); $errors = []; if (!empty($confirm) && $confirm == 'ok') { $validator = new \Wasp\Validator($form, $this->validation); if (!$validator->checkAll()) { $errors = $validator->getMessages(); } if (array_count($errors) == 0) { $current_user = $this->auth->getAuthUser(); $group_level = $this->users->getGroupLevel($form['group_id']); $user_data = ['birthday' => wasp_date_format($form['birthday'], 'Y-m-d')]; if ($this->users->groupIdExists($form['group_id']) && ($group_level < $current_user->group->level || $this->auth->is_root())) { if ($user->id != $this->auth->getAuthUserId()) { $user_data['group_id'] = intval($form['group_id']); $user_data['blocked'] = intval($form['blocked']); } } if ($user->id == $current_user->id || $this->auth->isAdmin()) { foreach ($form as $key => $val) { if (!array_key_isset($key, $user_data)) { $user_data[$key] = $val; } } } $this->users->update($user_data); redirect(['controller' => 'users', 'method' => 'edit', 'id' => $id]); } } $this->layout->useThemeCss('datepicker.css')->useThemeJs('bootstrap-datepicker.js', false); return $this->ui->assign('errors', $errors)->assign('user', $user)->assign('groups', UsersGroup::get())->fetch('users/edit'); }