PageController.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Auth;
  5. use App\Page;
  6. class PageController extends Controller
  7. {
  8. public function __construct()
  9. {
  10. $this->middleware(['auth', 'admin']);
  11. }
  12. protected function authCheck($admin_only = false)
  13. {
  14. $auth = $admin_only ?
  15. Auth::check() && Auth::user()->is_admin == true :
  16. Auth::check();
  17. if($auth == false) {
  18. abort(403);
  19. }
  20. }
  21. public function edit(Request $request)
  22. {
  23. $this->authCheck(true);
  24. $this->validate($request, [
  25. 'page' => 'required|string'
  26. ]);
  27. $slug = urldecode($request->page);
  28. $page = Page::firstOrCreate(['slug' => $slug]);
  29. return view('admin.pages.edit', compact('page'));
  30. }
  31. public function store(Request $request)
  32. {
  33. $this->validate($request, [
  34. 'slug' => 'required|string',
  35. 'content' => 'required|string',
  36. 'title' => 'nullable|string',
  37. 'active' => 'required|boolean'
  38. ]);
  39. $slug = urldecode($request->input('slug'));
  40. $page = Page::firstOrCreate(['slug' => $slug]);
  41. $page->content = $request->input('content');
  42. $page->title = $request->input('title');
  43. $page->active = (bool) $request->input('active');
  44. $page->save();
  45. return response()->json(['msg' => 200]);
  46. }
  47. }