public function showEditUserPage($userId)
 {
     if (!$this->CurrentUser || !$this->CurrentUser->isAdmin()) {
         return Redirect::to('login');
     }
     $thatUser = AmaotoUser::whereId($userId)->first();
     return View::make('admin/edit-user', array('thatUser' => $thatUser));
 }
예제 #2
0
 public function doEditUser()
 {
     try {
         // 检查必需参数
         if (!Input::has('id')) {
             throw new InvalidArgumentException('缺少参数');
         }
         // 检查id格式
         $id = Input::get('id');
         $validator = Validator::make(array('ID' => $id), array('ID' => 'required|integer|exists:users,id'));
         if ($validator->fails()) {
             throw new InvalidArgumentException($validator->messages()->first());
         }
         // 获取用户
         $thatUser = AmaotoUser::whereId($id)->first();
         // 判断是否成功获取
         if (!$thatUser) {
             throw new NotExistException('该用户不存在');
         }
         // 检查权限
         if ($this->CurrentUser->id !== $thatUser->id && !$this->CurrentUser->isAdmin()) {
             throw new PermissionDeniedException('无权编辑该用户');
         }
         // username
         if (Input::has('username')) {
             $username = Input::get('username');
             $validator = Validator::make(array('用户名' => $username), array('用户名' => 'required|alpha_dash'));
             if ($validator->fails()) {
                 throw new InvalidArgumentException($validator->messages()->first());
             }
             $thatUser->username = $username;
         }
         // email
         if (Input::has('email')) {
             $email = Input::get('email');
             $validator = Validator::make(array('Email' => $email), array('Email' => 'email'));
             if ($validator->fails()) {
                 throw new InvalidArgumentException($validator->messages()->first());
             }
             $thatUser->email = $email;
         }
         // password
         if (Input::has('password')) {
             $password = Input::get('password');
             $validator = Validator::make(array('密码' => $password), array('密码' => 'min:8'));
             if ($validator->fails()) {
                 throw new InvalidArgumentException($validator->messages()->first());
             }
             if (!strlen($password) == 0) {
                 $thatUser->password = Hash::make($password);
             }
         }
         // password
         if (Input::has('power') && $this->CurrentUser->isAdmin()) {
             $power = Input::get('power');
             $validator = Validator::make(array('权限' => $power), array('权限' => 'required|integer|min:0|max:99999'));
             if ($validator->fails()) {
                 throw new InvalidArgumentException($validator->messages()->first());
             }
             $thatUser->power = $power;
         }
         $thatUser->save();
         return Response::json(array('type' => 'success', 'message' => '修改成功'));
     } catch (InvalidArgumentException $e) {
         return Response::json(array('type' => 'warning', 'message' => $e->getMessage()));
     } catch (Exception $e) {
         return Response::json(array('type' => 'error', 'message' => $e->getMessage()));
     }
 }