/** * Displays the user administration */ public function download($id) { $request = \App\Models\SharedFile::find($id); $now = \Carbon\Carbon::now(); $expires = $request->request->expires_at; if ($now->timestamp < $expires->timestamp) { $file = $request->file; $path = $file->path; $rackRepo = new \App\Repositories\Rackspace(); $container = $rackRepo->getRackspaceContainer(); $distantFile = $container->getObject($path); $url = $distantFile->getTemporaryUrl(60, 'GET'); return \Redirect::away($url); } else { return view('share.expired'); } }
/** * Create a file sharing request */ public function create($input) { $user = \Auth::user(); $input['user_id'] = $user->id; $now = \Carbon\Carbon::now(); $input['expires_at'] = $now->addDays($input['expires_at'])->toDateTimeString(); $request = \App\Models\SharedFileRequest::create($input); if ($request) { foreach ($input['files'] as $file) { $fileShare = \App\Models\SharedFile::create(['request_id' => $request->id, 'file_id' => $file['id'], 'user_id' => $user->id]); $file = FSFile::find($file['id']); $file->resolvable_type = 'FileShare'; $file->resolvable_id = $fileShare->id; $file->save(); } foreach ($input['recipients'] as $recipient) { $d = \App\Models\SharedFileRecipient::create(['request_id' => $request->id, 'email' => $recipient]); } \Event::fire(new \App\Events\FileShared($request)); } return $request; }