AdminSettingsController.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use Artisan, Cache, DB;
  4. use Illuminate\Http\Request;
  5. use Carbon\Carbon;
  6. use App\{Comment, Like, Media, Page, Profile, Report, Status, User};
  7. use App\Http\Controllers\Controller;
  8. use Jackiedo\DotenvEditor\Facades\DotenvEditor;
  9. use App\Util\Lexer\PrettyNumber;
  10. trait AdminSettingsController
  11. {
  12. public function settings(Request $request)
  13. {
  14. return view('admin.settings.home');
  15. }
  16. public function settingsBackups(Request $request)
  17. {
  18. $path = storage_path('app/'.config('app.name'));
  19. $files = is_dir($path) ? new \DirectoryIterator($path) : [];
  20. return view('admin.settings.backups', compact('files'));
  21. }
  22. public function settingsConfig(Request $request, DotenvEditor $editor)
  23. {
  24. return view('admin.settings.config', compact('editor'));
  25. }
  26. public function settingsMaintenance(Request $request)
  27. {
  28. return view('admin.settings.maintenance');
  29. }
  30. public function settingsStorage(Request $request)
  31. {
  32. $storage = [];
  33. return view('admin.settings.storage', compact('storage'));
  34. }
  35. public function settingsFeatures(Request $request)
  36. {
  37. return view('admin.settings.features');
  38. }
  39. public function settingsHomeStore(Request $request)
  40. {
  41. $this->validate($request, [
  42. 'APP_NAME' => 'required|string',
  43. ]);
  44. Artisan::call('config:clear');
  45. DotenvEditor::setKey('APP_NAME', $request->input('APP_NAME'));
  46. DotenvEditor::save();
  47. return redirect()->back();
  48. }
  49. public function settingsPages(Request $request)
  50. {
  51. $pages = Page::orderByDesc('updated_at')->paginate(10);
  52. return view('admin.pages.home', compact('pages'));
  53. }
  54. public function settingsPageEdit(Request $request)
  55. {
  56. return view('admin.pages.edit');
  57. }
  58. public function settingsSystem(Request $request)
  59. {
  60. $sys = [
  61. 'pixelfed' => config('pixelfed.version'),
  62. 'php' => phpversion(),
  63. 'laravel' => app()->version(),
  64. ];
  65. switch (config('database.default')) {
  66. case 'pgsql':
  67. $sys['database'] = [
  68. 'name' => 'Postgres',
  69. 'version' => explode(' ', DB::select(DB::raw('select version();'))[0]->version)[1]
  70. ];
  71. break;
  72. case 'mysql':
  73. $sys['database'] = [
  74. 'name' => 'MySQL',
  75. 'version' => DB::select( DB::raw("select version()") )[0]->{'version()'}
  76. ];
  77. break;
  78. default:
  79. $sys['database'] = [
  80. 'name' => 'Unknown',
  81. 'version' => '?'
  82. ];
  83. break;
  84. }
  85. return view('admin.settings.system', compact('sys'));
  86. }
  87. }