get_setup_status(); // Get app pages $pages = Page::all(); // Get all settings $settings = json_decode( Setting::all() ->pluck('value', 'name') ->toJson() ); } catch (PDOException $e) { $setup_status = 'setup-database'; } return view("index") ->with('settings', $settings ?? null) ->with('legal', $pages ?? null) ->with('installation', $setup_status); } /** * Get og site for web crawlers * * @param $token */ public function og_site($token) { // Get all settings $settings = Setting::all(); // Get shared token $shared = get_shared($token); // Get user $user = User::findOrFail($shared->user_id); // Handle single file if ($shared->type === 'file') { // Get file record $file = File::where('user_id', $shared->user_id) ->where('unique_id', $shared->item_id) ->first(); if ($file->thumbnail) { $file->setPublicUrl($token); } $metadata = [ 'is_protected' => $shared->protected, 'url' => url('/shared', ['token' => $token]), 'user' => $user->name, 'name' => $file->name, 'size' => $file->filesize, 'thumbnail' => $file->thumbnail ? $file->thumbnail : null, ]; } // Handle single file if ($shared->type === 'folder') { // Get file record $folder = Folder::where('user_id', $shared->user_id) ->where('unique_id', $shared->item_id) ->first(); $metadata = [ 'is_protected' => $shared->protected, 'url' => url('/shared', ['token' => $token]), 'user' => $user->name, 'name' => $folder->name, 'size' => $folder->items, 'thumbnail' => null, ]; } // Return view return view("og-view") ->with('settings', json_decode($settings->pluck('value', 'name')->toJson())) ->with('metadata', $metadata); } /** * Check if setup wizard was passed * * @return string */ private function get_setup_status(): string { $setup_success = get_setting('setup_wizard_success'); return boolval($setup_success) ? 'setup-done' : 'setup-disclaimer'; } /** * Send contact message from pages * * @param SendMessageRequest $request * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response */ public function contact_form(SendMessageRequest $request) { // Get receiver email $receiver = Setting::where('name', 'contact_email')->first(); // Send message Mail::to($receiver->value)->send(new SendSupportForm($request->all())); return response('Done', 200); } /** * Get single page content * * @param $slug * @return PageResource */ public function get_page($slug) { return new PageResource( Page::where('slug', $slug)->first() ); } /** * Get selected settings from public route * * @param Request $request * @return mixed */ public function get_settings(Request $request) { $column = $request->get('column'); if (strpos($column, '|') !== false) { $columns = collect(explode('|', $column)); $columns->each(function ($column) { if (!in_array($column, $this->whitelist)) abort(401); }); return Setting::whereIn('name', $columns)->pluck('value', 'name'); } if (!in_array($column, $this->whitelist)) abort(401); return Setting::where('name', $column)->pluck('value', 'name'); } /** * Clear application cache */ public function flush_cache() { if (env('APP_DEMO')) { return Demo::response_204(); } if (! app()->runningUnitTests()) { Artisan::call('cache:clear'); Artisan::call('config:clear'); Artisan::call('config:cache'); } return response('Done', 204); } }