예제 #1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     $device = Device::current();
     if (Input::hasFile('file')) {
         $inputFile = Input::file('file');
         $package = Package::createFromInputFile($inputFile, $device->user_id);
     } else {
         $package = Package::findOrFailFromArg(Input::get('package'), $device->user_id);
     }
     $ids = explode(',', Input::get('devices'));
     if (count($ids) == 1 && !is_numeric($ids[0])) {
         $token = Token::whereValue($ids[0])->valid()->first();
         if ($token) {
             $devices = Device::whereId($token->owner)->get();
         } else {
             return Response::error(trans('errors.expired_device_qrcode') . $ids[0], 400);
         }
     }
     if (empty($devices)) {
         $devices = Device::whereIn('id', $ids)->where(function ($query) use($device) {
             $query->whereUserId($device->user_id)->orWhere(function ($query) use($device) {
                 $authed_device_ids = DUAuth::whereUserId($device->user_id)->lists('device_id');
                 $query->whereIn('id', $authed_device_ids);
             });
         })->get();
     }
     try {
         $push = Push::send($devices, $package, $device->user_id);
         return Response::json($push);
     } catch (\Exception $e) {
         return Response::exception($e);
     }
 }
예제 #2
0
 /**
  * 授权其他用户
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     $token = Input::get('token');
     /**
      * @var Token $token
      */
     $token = Token::whereValue($token)->valid()->first();
     if (!$token) {
         return Response::error(Lang::get("errors.expired_token"), 401);
     }
     if ($token->owner == $this->device->user_id) {
         return Response::error(Lang::get('errors.auth_self'), 400);
     }
     $auth = DUAuth::whereDeviceId($this->device->id)->whereUserId($token->owner)->first();
     if ($auth) {
         return Response::error(Lang::get('errors.authorized', ['nickname' => $auth->user->nickname]));
     }
     $auth = new DUAuth();
     $auth->user_id = $token->owner;
     $auth->device_id = $this->device->id;
     $auth->save();
     $auth->user;
     return Response::json($auth);
 }