/** * 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); } }
/** * 授权其他用户 * * @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); }