where("user_id", "=", Auth::user()->id)->get(); return view('app/list', ["msg"=>"", "apps" => $apps]); } public function newAppView() { return view('app/new', ["msg"=>""]); } public function newApp(Request $request) { $this->validate($request, [ 'name' => 'required|max:255|min:3|regex:@^[a-zA-Z0-9]*$@|unique:apps', 'description' => 'required|min:3', 'url' => 'required|url' ]); $app = App::createApp($request->input("name"), $request->input("description"), $request->input("url"), Auth::user()); return "App created"; } public function viewApp(Request $request, $id) { $app = App::query()->where("id", "=", $id)->first(); if($app->user_id != Auth::user()->id) { abort(401); } return view('app/details', ["msg"=>"", "app" => $app]); } public function changeIcon(Request $request, $id) { // Todo: Replace prove of concept with better code $newTmp = tempnam("", "icon_upload"); $request->file("icon")->move("/tmp", $newTmp); $info = getimagesize($newTmp); if($info["0"] != $info["1"]) { echo "Icon is not a squader";exit(); } if($info[0] > 500) { echo "Icon is to big, max 500 px";exit(); } if($info[0] < 50) { echo "Icon is to small, min 50px";exit(); } $app = App::query()->where("id", "=", $id)->firstOrFail(); if($app->user_id != Auth::user()->id) { echo "Its not your app";exit(); } $app->icon = file_get_contents($newTmp); $app->saveOrFail(); echo "OK"; } public function getAppIcon($id) { $app = App::query()->where("id", "=", $id)->firstOrFail(); $r = getimagesizefromstring($app->icon); return response($app->icon) ->header('Content-Type',$r["mime"]); } }