Module
Add
View
Update
Delete
@php
$normalize = function ($value) {
return strtolower(str_replace(['-', '.', '_'], '', $value));
};
$actions = ['add', 'view', 'update', 'delete'];
$moduleAliases = [
'user' => ['user', 'users'],
'users' => ['user', 'users'],
'role' => ['role', 'roles'],
'roles' => ['role', 'roles'],
'product' => ['product', 'products'],
'coupon' => ['coupon', 'coupons'],
'location' => ['location', 'locations'],
'locations' => ['location', 'locations'],
'stock' => ['stock'],
'banner' => ['banner'],
'profile' => ['profile'],
];
@endphp
{{ str_replace('-', ' ', $module) }}
@foreach($actions as $action)
@php
$permissionName = null;
$aliases = $moduleAliases[$module] ?? [$module];
foreach ($perms as $perm) {
$normalizedPerm = $normalize($perm);
foreach ($aliases as $alias) {
$normalizedAlias = $normalize($alias);
// VIEW
if ($action === 'view') {
if (
$normalizedPerm === $normalizedAlias ||
\Illuminate\Support\Str::endsWith($perm, '.index')
) {
$permissionName = $perm;
break 2;
}
}
// ADD / UPDATE / DELETE
if (
str_contains($normalizedPerm, $normalize($action)) &&
str_contains($normalizedPerm, $normalizedAlias)
) {
$permissionName = $perm;
break 2;
}
}
}
@endphp
@if($permissionName)
@endif
@endforeach
{{-- Data Scope --}}
{{-- Locations --}}
{{-- Franchise --}}
{{-- Dealer --}}
@endforeach