diff --git a/app/Http/Controllers/Admin/SettingsController.php b/app/Http/Controllers/Admin/SettingsController.php index 3c6782f0..5b05db2b 100644 --- a/app/Http/Controllers/Admin/SettingsController.php +++ b/app/Http/Controllers/Admin/SettingsController.php @@ -16,8 +16,7 @@ use Qirolab\Theme\Theme; class SettingsController extends Controller { - const READ_PERMISSIONS = "admin.settings.read"; - const WRITE_PERMISSIONS = "admin.settings.write"; + /** * Display a listing of the resource. * @@ -26,7 +25,6 @@ class SettingsController extends Controller public function index() { - $this->checkPermission(self::READ_PERMISSIONS); // get all other settings in app/Settings directory // group items by file name like $categories @@ -96,9 +94,10 @@ class SettingsController extends Controller */ public function update(Request $request) { - $this->checkPermission(self::WRITE_PERMISSIONS); - $category = request()->get('category'); + + $this->checkPermission("settings.".strtolower($category).".write"); + $settings_class = request()->get('settings_class'); if (method_exists($settings_class, 'getValidations')) { diff --git a/config/permissions_web.php b/config/permissions_web.php index 47ba6a46..0de10271 100644 --- a/config/permissions_web.php +++ b/config/permissions_web.php @@ -71,8 +71,52 @@ return [ 'admin.logs.read', - 'admin.settings.read', - 'admin.settings.write', + /* + * Settings Permissions + */ + 'settings.discord.read', + 'settings.discord.write', + + 'settings.general.read', + 'settings.general.write', + + 'settings.invoice.read', + 'settings.invoice.write', + + 'settings.locale.read', + 'settings.locale.write', + + 'settings.mail.read', + 'settings.mail.write', + + 'settings.pterodactyl.read', + 'settings.pterodactyl.write', + + 'settings.referral.read', + 'settings.referral.write', + + 'settings.server.read', + 'settings.server.write', + + 'settings.ticket.read', + 'settings.ticket.write', + + 'settings.user.read', + 'settings.user.write', + + 'settings.website.read', + 'settings.website.write', + + 'settings.paypal.read', + 'settings.paypal.write', + + 'settings.stripe.read', + 'settings.stripe.write', + + 'settings.mollie.read', + 'settings.mollie.write', + + /* * Permissions for users */ diff --git a/themes/default/views/admin/settings/index.blade.php b/themes/default/views/admin/settings/index.blade.php index 134e0a95..2c63d428 100644 --- a/themes/default/views/admin/settings/index.blade.php +++ b/themes/default/views/admin/settings/index.blade.php @@ -45,6 +45,7 @@ @@ -65,6 +67,7 @@
@foreach ($settings as $category => $options) + @canany(["settings.".strtolower($category).".read","settings.".strtolower($category).".write"])
@@ -158,6 +161,7 @@
+ @endforeach - @canany(['admin.settings.read','admin.settings.write','admin.overview.read','admin.overview.sync','admin.ticket.read','admin.tickets.write','admin.ticket_blacklist.read','admin.ticket_blacklist.write','admin.roles.read','admin.roles.write','admin.api.read','admin.api.write']) + @canany(['settings.discord.read','settings.discord.write','settings.general.read','settings.general.write','settings.invoice.read','settings.invoice.write','settings.locale.read','settings.locale.write','settings.mail.read','settings.mail.write','settings.pterodactyl.read','settings.pterodactyl.write','settings.referral.read','settings.referral.write','settings.server.read','settings.server.write','settings.ticket.read','settings.ticket.write','settings.user.read','settings.user.write','settings.website.read','settings.website.write','settings.paypal.read','settings.paypal.write','settings.stripe.read','settings.stripe.write','settings.mollie.read','settings.mollie.write','admin.overview.read','admin.overview.sync','admin.ticket.read','admin.tickets.write','admin.ticket_blacklist.read','admin.ticket_blacklist.write','admin.roles.read','admin.roles.write','admin.api.read','admin.api.write']) @endcanany @@ -302,7 +302,34 @@ @endcanany - @canany(['admin.settings.read','admin.settings.write']) + @canany(['settings.discord.read', + 'settings.discord.write', + 'settings.general.read', + 'settings.general.write', + 'settings.invoice.read', + 'settings.invoice.write', + 'settings.locale.read', + 'settings.locale.write', + 'settings.mail.read', + 'settings.mail.write', + 'settings.pterodactyl.read', + 'settings.pterodactyl.write', + 'settings.referral.read', + 'settings.referral.write', + 'settings.server.read', + 'settings.server.write', + 'settings.ticket.read', + 'settings.ticket.write', + 'settings.user.read', + 'settings.user.write', + 'settings.website.read', + 'settings.website.write', + 'settings.paypal.read', + 'settings.paypal.write', + 'settings.stripe.read', + 'settings.stripe.write', + 'settings.mollie.read', + 'settings.mollie.write',])