It is recommended that if you do have an admin user, add a gate to allow all permissions on their account and pass manage all
to the frontend if you are using something like CASL to authorize
$permissions = ['browse', 'edit','export', 'add','delete']
// $module_names = ['reports', 'expenses','invoices', 'bookings', 'staff','customers','apartments', 'apartment_categories','settings','profile','roles','tax', 'extra-income', 'approvals','suppliers', 'occupancy','payments', 'commissions', 'agents', 'credit_notes']
$module_names = ['payments', 'commissions', 'agents', 'credit_notes']
// $supervisor_permissions = [[1,0,1,0,0],[0,0,0,0,0],[1,0,0,1,0],[1,0,0,0,0],[1,1,0,1,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[1,1,1,1,1], [0,0,0,0,0],[1,0,1,0,0],[0,0,0,0,0],[1,0,1,1,0],[0,0,0,0,0],[1,0,1,0,0],[1,0,1,0,0],[1,0,1,0,0],[1,0,1,1,0], [1,0,1,1,0]]
$supervisor_permissions = [[1,0,1,0,0],[1,0,1,0,0],[1,0,1,1,0], [1,0,1,1,0]]
// $manager_permissions = [[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]]
// $houseKeeper_permissions = [[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]
for ($j=0; $j <= count($module_names)-1; $j++) {
for ($i=0; $i <= count($permissions)-1; $i++) {
// create permissions
$name = $permissions[$i].' '.$module_names[$j];
$permission = \Permission::create(['name' => $name,'guard_name' => 'api']);
// assignroles "suppervissor"
$role = \Role::find(3);
$manager = \Role::find(2);
$manager->givePermissionTo($permission);
if ($supervisor_permissions[$j][$i]) {
$role->givePermissionTo($permission);
}
}
}