'View:Dashboard', 'guard_name' => 'web']); // Permissions Analysis Permission::firstOrCreate(['name' => 'View:Analysis', 'guard_name' => 'web']); // Permissions User Permission::firstOrCreate(['name' => 'View:User', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Create:User', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Edit:User', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Delete:User', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'DeleteAny:User', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'ResetPassword:User', 'guard_name' => 'web']); // Permissions Category Permission::firstOrCreate(['name' => 'View:Category', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Create:Category', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Edit:Category', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Delete:Category', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'DeleteAny:Category', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'ToggleStatus:Category', 'guard_name' => 'web']); // Permissions Product Permission::firstOrCreate(['name' => 'View:Product', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Create:Product', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Edit:Product', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Delete:Product', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'DeleteAny:Product', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'ToggleStatus:Product', 'guard_name' => 'web']); // Permissions Order Permission::firstOrCreate(['name' => 'View:Order', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Create:Order', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Edit:Order', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Delete:Order', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'DeleteAny:Order', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Print:Order', 'guard_name' => 'web']); // Permissions Expense Permission::firstOrCreate(['name' => 'View:Expense', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Create:Expense', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Edit:Expense', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Delete:Expense', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'DeleteAny:Expense', 'guard_name' => 'web']); // Permissions Purchase Permission::firstOrCreate(['name' => 'View:Purchase', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Create:Purchase', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Edit:Purchase', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Delete:Purchase', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'DeleteAny:Purchase', 'guard_name' => 'web']); // Permissions Payroll Permission::firstOrCreate(['name' => 'View:Payroll', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Generate:Payroll', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Delete:Payroll', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'DeleteAny:Payroll', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Pay:Payroll', 'guard_name' => 'web']); // Permissions PayrollAdjustment Permission::firstOrCreate(['name' => 'View:PayrollAdjustment', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Create:PayrollAdjustment', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Edit:PayrollAdjustment', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Delete:PayrollAdjustment', 'guard_name' => 'web']); // Permissions General Setting Permission::firstOrCreate(['name' => 'View:Setting', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Edit:Setting', 'guard_name' => 'web']); // Permissions Role Permission::firstOrCreate(['name' => 'View:Role', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Create:Role', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Edit:Role', 'guard_name' => 'web']); Permission::firstOrCreate(['name' => 'Delete:Role', 'guard_name' => 'web']); // Permissions Log Permission::firstOrCreate(['name' => 'View:Log', 'guard_name' => 'web']); // Permissions Activity Permission::firstOrCreate(['name' => 'View:Activity', 'guard_name' => 'web']); // Create Roles $developer = Role::firstOrCreate(['name' => 'Developer', 'guard_name' => 'web']); $owner = Role::firstOrCreate(['name' => 'Owner', 'guard_name' => 'web']); $admin = Role::firstOrCreate(['name' => 'Admin', 'guard_name' => 'web']); // Assign permissions to Developer (All Permissions) $allPermissions = Permission::all(); $developer->syncPermissions($allPermissions); // Assign permissions to Owner (All except View:Log) $ownerPermissions = Permission::whereNotIn('name', [ 'View:Log', 'View:Role', 'Create:Role', 'Edit:Role', 'Delete:Role', ])->get(); $owner->syncPermissions($ownerPermissions); // Assign permissions to Admin // Admin gets everything except deleting users and settings $adminPermissions = Permission::whereNotIn('name', [ 'View:Analysis', 'View:User', 'Create:User', 'Edit:User', 'Delete:User', 'DeleteAny:User', 'ResetPassword:User', 'Create:Category', 'Edit:Category', 'Delete:Category', 'DeleteAny:Category', 'ToggleStatus:Category', 'Create:Product', 'Edit:Product', 'Delete:Product', 'DeleteAny:Product', 'ToggleStatus:Product', 'Generate:Payroll', 'Delete:Payroll', 'DeleteAny:Payroll', 'Pay:Payroll', 'Create:PayrollAdjustment', 'Edit:PayrollAdjustment', 'Delete:PayrollAdjustment', 'DeleteAny:PayrollAdjustment', 'View:Setting', 'Edit:Setting', 'View:Role', 'Create:Role', 'Edit:Role', 'Delete:Role', 'View:Log', 'View:Activity', ])->get(); $admin->syncPermissions($adminPermissions); } }