security: expand and complete permissions matrix with granular, enterprise-ready permissions

This commit is contained in:
2026-05-21 22:15:53 +07:00
parent 65804be1cb
commit 7965b34c85
44 changed files with 179 additions and 145 deletions
@@ -15,7 +15,7 @@ class SystemSettingController extends Controller
*/
public function index()
{
abort_if(!auth()->user()->hasRole('super-admin') && !auth()->user()->can('settings.manage'), 403, 'Unauthorized. Settings management permission required.');
abort_if(!auth()->user()->hasRole('super-admin') && !auth()->user()->can('settings.view'), 403, 'Unauthorized. Settings view permission required.');
$settings = Setting::all()->pluck('value', 'key');
@@ -73,7 +73,7 @@ class SystemSettingController extends Controller
*/
public function update(Request $request)
{
abort_if(!auth()->user()->hasRole('super-admin') && !auth()->user()->can('settings.manage'), 403, 'Unauthorized. Settings management permission required.');
abort_if(!auth()->user()->hasRole('super-admin') && !auth()->user()->can('settings.edit'), 403, 'Unauthorized. Settings edit permission required.');
$validated = $request->validate([
'settings' => 'required|array',
@@ -140,7 +140,7 @@ class SystemSettingController extends Controller
*/
public function testEmail(Request $request)
{
abort_if(!auth()->user()->hasRole('super-admin') && !auth()->user()->can('settings.manage'), 403, 'Unauthorized. Settings management permission required.');
abort_if(!auth()->user()->hasRole('super-admin') && !auth()->user()->can('settings.test-email'), 403, 'Unauthorized. SMTP testing permission required.');
$request->validate([
'recipient' => 'required|email',