Skip to content

Instantly share code, notes, and snippets.

@moseskamau338
Created February 20, 2023 20:11
Show Gist options
  • Save moseskamau338/99086b2e08347826113c227dd7a0ce01 to your computer and use it in GitHub Desktop.
Save moseskamau338/99086b2e08347826113c227dd7a0ce01 to your computer and use it in GitHub Desktop.
Useful scripts

This script should help you get started with a quick list of all your permissions as needed

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);
		}
	}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment