Exemple #1
0
 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');
 }