From 6ea2bdc782b5b8b3322254a23cf1a993052be018 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 7 May 2023 05:04:18 -0600 Subject: [PATCH] Update Admin Dashboard, allow admins to designate an admin account for the landing page and instance api endpoint --- app/Http/Controllers/Api/ApiV1Controller.php | 3 ++ app/Http/Controllers/LandingController.php | 4 +- app/Services/ConfigCacheService.php | 4 ++ app/Services/LandingService.php | 7 +++- resources/views/admin/settings/home.blade.php | 37 +++++++++++-------- 5 files changed, 36 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/Api/ApiV1Controller.php b/app/Http/Controllers/Api/ApiV1Controller.php index e6f60d066..1ba73ae8f 100644 --- a/app/Http/Controllers/Api/ApiV1Controller.php +++ b/app/Http/Controllers/Api/ApiV1Controller.php @@ -1554,6 +1554,9 @@ class ApiV1Controller extends Controller { $res = Cache::remember('api:v1:instance-data-response-v1', 1800, function () { $contact = Cache::remember('api:v1:instance-data:contact', 604800, function () { + if(config_cache('instance.admin.pid')) { + return AccountService::getMastodon(config_cache('instance.admin.pid'), true); + } $admin = User::whereIsAdmin(true)->first(); return $admin && isset($admin->profile_id) ? AccountService::getMastodon($admin->profile_id, true) : diff --git a/app/Http/Controllers/LandingController.php b/app/Http/Controllers/LandingController.php index 1472a78e7..ad1b51042 100644 --- a/app/Http/Controllers/LandingController.php +++ b/app/Http/Controllers/LandingController.php @@ -15,7 +15,7 @@ class LandingController extends Controller return redirect('/'); } - abort_if(config('instance.landing.show_directory') == false, 404); + abort_if(config_cache('instance.landing.show_directory') == false, 404); return view('site.index'); } @@ -26,7 +26,7 @@ class LandingController extends Controller return redirect('/'); } - abort_if(config('instance.landing.show_explore') == false, 404); + abort_if(config_cache('instance.landing.show_explore') == false, 404); return view('site.index'); } diff --git a/app/Services/ConfigCacheService.php b/app/Services/ConfigCacheService.php index 4ffa8da6c..23b762486 100644 --- a/app/Services/ConfigCacheService.php +++ b/app/Services/ConfigCacheService.php @@ -65,6 +65,10 @@ class ConfigCacheService 'pixelfed.directory.latest_response', 'pixelfed.directory.is_synced', 'pixelfed.directory.testimonials', + + 'instance.landing.show_directory', + 'instance.landing.show_explore', + 'instance.admin.pid', // 'system.user_mode' ]; diff --git a/app/Services/LandingService.php b/app/Services/LandingService.php index f0af2ddf8..2a5acda07 100644 --- a/app/Services/LandingService.php +++ b/app/Services/LandingService.php @@ -30,6 +30,9 @@ class LandingService }); $contactAccount = Cache::remember('api:v1:instance-data:contact', 604800, function () { + if(config_cache('instance.admin.pid')) { + return AccountService::getMastodon(config_cache('instance.admin.pid'), true); + } $admin = User::whereIsAdmin(true)->first(); return $admin && isset($admin->profile_id) ? AccountService::getMastodon($admin->profile_id, true) : @@ -53,8 +56,8 @@ class LandingService 'name' => config_cache('app.name'), 'url' => config_cache('app.url'), 'domain' => config('pixelfed.domain.app'), - 'show_directory' => config('instance.landing.show_directory'), - 'show_explore_feed' => config('instance.landing.show_explore'), + 'show_directory' => config_cache('instance.landing.show_directory'), + 'show_explore_feed' => config_cache('instance.landing.show_explore'), 'open_registration' => config_cache('pixelfed.open_registration') == 1, 'version' => config('pixelfed.version'), 'about' => [ diff --git a/resources/views/admin/settings/home.blade.php b/resources/views/admin/settings/home.blade.php index 89f860b0a..7635ac61f 100644 --- a/resources/views/admin/settings/home.blade.php +++ b/resources/views/admin/settings/home.blade.php @@ -148,36 +148,43 @@
- - -

The instance name. Change in Brand section.

+

Configure your landing page

- - -

Description of instance used on about section. Change in Brand section.

-
-
-
-
- +

Discovery

- +
-

To disable the Directory, set INSTANCE_LANDING_SHOW_DIRECTORY=false in .env

- +
-

To disable the Explore feed, set INSTANCE_LANDING_SHOW_EXPLORE=false in .env

+
+
+
+
+
+

Admin Account

+ +
+