mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-25 15:55:22 +00:00
Update Directory logic, add curated onboarding support
This commit is contained in:
parent
4c5e8288b0
commit
59c70239f8
3 changed files with 31 additions and 14 deletions
|
@ -75,6 +75,7 @@ trait AdminDirectoryController
|
||||||
}
|
}
|
||||||
|
|
||||||
$res['community_guidelines'] = config_cache('app.rules') ? json_decode(config_cache('app.rules'), true) : [];
|
$res['community_guidelines'] = config_cache('app.rules') ? json_decode(config_cache('app.rules'), true) : [];
|
||||||
|
$res['curated_onboarding'] = (bool) config_cache('instance.curated_registration.enabled');
|
||||||
$res['open_registration'] = (bool) config_cache('pixelfed.open_registration');
|
$res['open_registration'] = (bool) config_cache('pixelfed.open_registration');
|
||||||
$res['oauth_enabled'] = (bool) config_cache('pixelfed.oauth_enabled') && file_exists(storage_path('oauth-public.key')) && file_exists(storage_path('oauth-private.key'));
|
$res['oauth_enabled'] = (bool) config_cache('pixelfed.oauth_enabled') && file_exists(storage_path('oauth-public.key')) && file_exists(storage_path('oauth-private.key'));
|
||||||
|
|
||||||
|
@ -124,7 +125,7 @@ trait AdminDirectoryController
|
||||||
|
|
||||||
$res['requirements_validator'] = $validator->errors();
|
$res['requirements_validator'] = $validator->errors();
|
||||||
|
|
||||||
$res['is_eligible'] = $res['open_registration'] &&
|
$res['is_eligible'] = ($res['open_registration'] || $res['curated_onboarding']) &&
|
||||||
$res['oauth_enabled'] &&
|
$res['oauth_enabled'] &&
|
||||||
$res['activitypub_enabled'] &&
|
$res['activitypub_enabled'] &&
|
||||||
count($res['requirements_validator']) === 0 &&
|
count($res['requirements_validator']) === 0 &&
|
||||||
|
@ -227,7 +228,7 @@ trait AdminDirectoryController
|
||||||
->each(function($name) {
|
->each(function($name) {
|
||||||
Storage::delete($name);
|
Storage::delete($name);
|
||||||
});
|
});
|
||||||
$path = $request->file('banner_image')->store('public/headers');
|
$path = $request->file('banner_image')->storePublicly('public/headers');
|
||||||
$res['banner_image'] = $path;
|
$res['banner_image'] = $path;
|
||||||
ConfigCacheService::put('app.banner_image', url(Storage::url($path)));
|
ConfigCacheService::put('app.banner_image', url(Storage::url($path)));
|
||||||
|
|
||||||
|
@ -249,7 +250,8 @@ trait AdminDirectoryController
|
||||||
{
|
{
|
||||||
$reqs = [];
|
$reqs = [];
|
||||||
$reqs['feature_config'] = [
|
$reqs['feature_config'] = [
|
||||||
'open_registration' => config_cache('pixelfed.open_registration'),
|
'open_registration' => (bool) config_cache('pixelfed.open_registration'),
|
||||||
|
'curated_onboarding' => (bool) config_cache('instance.curated_registration.enabled'),
|
||||||
'activitypub_enabled' => config_cache('federation.activitypub.enabled'),
|
'activitypub_enabled' => config_cache('federation.activitypub.enabled'),
|
||||||
'oauth_enabled' => config_cache('pixelfed.oauth_enabled'),
|
'oauth_enabled' => config_cache('pixelfed.oauth_enabled'),
|
||||||
'media_types' => Str::of(config_cache('pixelfed.media_types'))->explode(','),
|
'media_types' => Str::of(config_cache('pixelfed.media_types'))->explode(','),
|
||||||
|
@ -265,7 +267,8 @@ trait AdminDirectoryController
|
||||||
];
|
];
|
||||||
|
|
||||||
$validator = Validator::make($reqs['feature_config'], [
|
$validator = Validator::make($reqs['feature_config'], [
|
||||||
'open_registration' => 'required|accepted',
|
'open_registration' => 'required_unless:curated_onboarding,true',
|
||||||
|
'curated_onboarding' => 'required_unless:open_registration,true',
|
||||||
'activitypub_enabled' => 'required|accepted',
|
'activitypub_enabled' => 'required|accepted',
|
||||||
'oauth_enabled' => 'required|accepted',
|
'oauth_enabled' => 'required|accepted',
|
||||||
'media_types' => [
|
'media_types' => [
|
||||||
|
|
|
@ -78,10 +78,11 @@ class PixelfedDirectoryController extends Controller
|
||||||
$res['community_guidelines'] = json_decode($guidelines->v, true);
|
$res['community_guidelines'] = json_decode($guidelines->v, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
$openRegistration = ConfigCache::whereK('pixelfed.open_registration')->first();
|
$openRegistration = (bool) config_cache('pixelfed.open_registration');
|
||||||
if($openRegistration) {
|
$res['open_registration'] = $openRegistration;
|
||||||
$res['open_registration'] = (bool) $openRegistration;
|
|
||||||
}
|
$curatedOnboarding = (bool) config_cache('instance.curated_registration.enabled');
|
||||||
|
$res['curated_onboarding'] = $curatedOnboarding;
|
||||||
|
|
||||||
$oauthEnabled = ConfigCache::whereK('pixelfed.oauth_enabled')->first();
|
$oauthEnabled = ConfigCache::whereK('pixelfed.oauth_enabled')->first();
|
||||||
if($oauthEnabled) {
|
if($oauthEnabled) {
|
||||||
|
|
|
@ -109,12 +109,20 @@
|
||||||
<div class="card text-left">
|
<div class="card text-left">
|
||||||
<div class="list-group list-group-flush">
|
<div class="list-group list-group-flush">
|
||||||
<div class="list-group-item">
|
<div class="list-group-item">
|
||||||
<i
|
<template v-if="requirements.curated_onboarding === true">
|
||||||
class="far"
|
<i class="far fa-exclamation-circle text-success"></i>
|
||||||
:class="[ requirements.open_registration ? 'fa-check-circle text-success' : 'fa-exclamation-circle text-danger']"></i>
|
<span class="ml-2 font-weight-bold">
|
||||||
<span class="ml-2 font-weight-bold">
|
Curated account registration
|
||||||
{{ requirements.open_registration ? 'Open' : 'Closed' }} account registration
|
</span>
|
||||||
</span>
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<i
|
||||||
|
class="far"
|
||||||
|
:class="[ requirements.open_registration ? 'fa-check-circle text-success' : 'fa-exclamation-circle text-danger']"></i>
|
||||||
|
<span class="ml-2 font-weight-bold">
|
||||||
|
{{ requirements.open_registration ? 'Open' : 'Closed' }} account registration
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="list-group-item">
|
<div class="list-group-item">
|
||||||
|
@ -895,6 +903,7 @@
|
||||||
activitypub_enabled: undefined,
|
activitypub_enabled: undefined,
|
||||||
open_registration: undefined,
|
open_registration: undefined,
|
||||||
oauth_enabled: undefined,
|
oauth_enabled: undefined,
|
||||||
|
curated_onboarding: undefined,
|
||||||
},
|
},
|
||||||
feature_config: [],
|
feature_config: [],
|
||||||
requirements_validator: [],
|
requirements_validator: [],
|
||||||
|
@ -951,6 +960,10 @@
|
||||||
this.requirements.open_registration = res.data.open_registration;
|
this.requirements.open_registration = res.data.open_registration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(res.data.curated_onboarding) {
|
||||||
|
this.requirements.curated_onboarding = res.data.curated_onboarding;
|
||||||
|
}
|
||||||
|
|
||||||
if(res.data.oauth_enabled) {
|
if(res.data.oauth_enabled) {
|
||||||
this.requirements.oauth_enabled = res.data.oauth_enabled;
|
this.requirements.oauth_enabled = res.data.oauth_enabled;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue