コード例 #1
0
ファイル: Gear.php プロジェクト: romartyn/cogear
 /**
  * Edit action
  * 
  * @param   string  $login
  */
 public function edit_action($id = NULL)
 {
     $id or $id = $this->user->id;
     $user = new User_Object();
     $this->db->where('id', $id);
     if (!$user->find()) {
         return _404();
     }
     if (!access('user edit_all') && $this->id != $user->id) {
         return _403();
     }
     $this->renderUserInfo($user);
     $user = new User_Object();
     $user->where('id', $id);
     $user->find();
     $form = new Form('User.profile');
     $user->password = '';
     $form->object($user->object());
     if ($form->elements->avatar->is_ajaxed && Ajax::get('action') == 'replace') {
         $user->avatar = '';
         $user->update();
     }
     if ($result = $form->result()) {
         if ($user->login != $result['login']) {
             $redirect = Url::gear('user') . $result['login'];
         }
         if ($result->delete && access('users delete_all')) {
             $user->delete();
             flash_success(t('User <b>%s</b> was deleted!'));
             redirect(Url::link('/users'));
         }
         $user->merge($result);
         if ($result->password) {
             $user->hashPassword();
         } else {
             unset($user->password);
         }
         if ($user->update()) {
             d('User edit');
             flash_success(t('User data saved!'), t('Success'));
             d();
             if ($user->id == $this->id) {
                 $this->store($user->object()->toArray());
             }
             redirect(Url::gear('user') . $user->login);
         }
     }
     append('content', $form->render());
 }