Update admin settings, add rules

This commit is contained in:
Daniel Supernault 2021-05-13 23:45:36 -06:00
parent 73d9799a38
commit a4efbb75d8
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7
3 changed files with 117 additions and 31 deletions

View file

@ -19,6 +19,7 @@ trait AdminSettingsController
$short_description = ConfigCacheService::get('app.short_description');
$description = ConfigCacheService::get('app.description');
$types = explode(',', ConfigCacheService::get('pixelfed.media_types'));
$rules = ConfigCacheService::get('app.rules') ? json_decode(ConfigCacheService::get('app.rules'), true) : null;
$jpeg = in_array('image/jpg', $types) ? true : in_array('image/jpeg', $types);
$png = in_array('image/png', $types);
$gif = in_array('image/gif', $types);
@ -31,7 +32,8 @@ trait AdminSettingsController
'jpeg',
'png',
'gif',
'mp4'
'mp4',
'rules'
));
}
@ -50,6 +52,19 @@ trait AdminSettingsController
'type_mp4' => 'nullable',
]);
if($request->filled('rule_delete')) {
$index = (int) $request->input('rule_delete');
$rules = ConfigCacheService::get('app.rules');
$json = json_decode($rules, true);
if(!$rules || empty($json)) {
return;
}
unset($json[$index]);
$json = json_encode(array_values($json));
ConfigCacheService::put('app.rules', $json);
return 200;
}
$media_types = explode(',', config_cache('pixelfed.media_types'));
$media_types_original = $media_types;
@ -115,6 +130,18 @@ trait AdminSettingsController
}
}
if($request->filled('new_rule')) {
$rules = ConfigCacheService::get('app.rules');
$val = $request->input('new_rule');
if(!$rules) {
ConfigCacheService::put('app.rules', json_encode([$val]));
} else {
$json = json_decode($rules, true);
$json[] = $val;
ConfigCacheService::put('app.rules', json_encode(array_values($json)));
}
}
Cache::forget('api:site:configuration:_v0.2');
return redirect('/i/admin/settings');