/** * Execute the job. * * @return Role */ public function handle() { $label = $this->group->getName(); $name = str_slug($label); // We'll create the role if it doesn't exist already. $role = Role::firstOrCreate(compact('name', 'label')); // We'll double check that it was successfully retrieved / created. if ($role instanceof Role) { // Retrieve the members from the AD group. $members = $this->group->getMembers(); foreach ($members as $member) { // Import users that may not already be apart of our local DB. $user = $this->dispatch(new ImportUser($member)); // Make sure the user isn't already apart of the role. $exists = $role->users()->find($user->id); if (!$exists) { // Attach the user to the role if they // aren't currently a member. $role->users()->save($user); } } return $role; } return false; }
/** * Run the migrations. * * @return void */ public function up() { $administrator = Role::firstOrCreate(['name' => 'administrator', 'label' => 'Administrator']); // Welcome Permissions Permission::firstOrCreate(['name' => 'admin.welcome.index', 'label' => 'View Administrator Welcome']); // User Permissions Permission::firstOrCreate(['name' => 'admin.users.index', 'label' => 'View All Users']); Permission::firstOrCreate(['name' => 'admin.users.create', 'label' => 'Create Users']); Permission::firstOrCreate(['name' => 'admin.users.edit', 'label' => 'Edit Users']); Permission::firstOrCreate(['name' => 'admin.users.show', 'label' => 'View Users']); Permission::firstOrCreate(['name' => 'admin.users.destroy', 'label' => 'Delete Users']); // Role Permissions Permission::firstOrCreate(['name' => 'admin.roles.index', 'label' => 'View All Roles']); Permission::firstOrCreate(['name' => 'admin.roles.create', 'label' => 'Create Roles']); Permission::firstOrCreate(['name' => 'admin.roles.edit', 'label' => 'Edit Roles']); Permission::firstOrCreate(['name' => 'admin.roles.show', 'label' => 'View Roles']); Permission::firstOrCreate(['name' => 'admin.roles.destroy', 'label' => 'Delete Roles']); // Permission Permissions Permission::firstOrCreate(['name' => 'admin.permissions.index', 'label' => 'View All Permissions']); Permission::firstOrCreate(['name' => 'admin.permissions.create', 'label' => 'Create Permissions']); Permission::firstOrCreate(['name' => 'admin.permissions.edit', 'label' => 'Edit Permissions']); Permission::firstOrCreate(['name' => 'admin.permissions.show', 'label' => 'View Permissions']); Permission::firstOrCreate(['name' => 'admin.permissions.destroy', 'label' => 'Delete Permissions']); // User Permission Permissions Permission::firstOrCreate(['name' => 'admin.users.permissions.store', 'label' => 'Add Permissions to Users']); Permission::firstOrCreate(['name' => 'admin.users.permissions.destroy', 'label' => 'Remove Permissions from Users']); // Role Permission Permissions Permission::firstOrCreate(['name' => 'admin.roles.permissions.store', 'label' => 'Add Permissions to Roles']); Permission::firstOrCreate(['name' => 'admin.roles.permissions.destroy', 'label' => 'Remove Permissions from Roles']); // Role User Permissions Permission::firstOrCreate(['name' => 'admin.roles.users.store', 'label' => 'Add Users to Roles']); Permission::firstOrCreate(['name' => 'admin.roles.users.destroy', 'label' => 'Remove Users from Roles']); $administrator->grant(Permission::all()); }
/** * Run the database seeds. * * @return void */ public function run() { Role::firstOrCreate(['name' => 'hacker']); Role::firstOrCreate(['name' => 'exec']); Role::firstOrCreate(['name' => 'sponsor']); Role::firstOrCreate(['name' => 'sponsor-group-1']); Role::firstOrCreate(['name' => 'sponsor-group-2']); Role::firstOrCreate(['name' => 'sponsor-group-3']); }
/** * Creates a Role and returns it. * * @param $name * @param $display_name * @param $description * @param bool $enabled * @return \App\Models\Role */ protected static function createRole($name, $display_name, $description, $permissions = null, $enabled = true) { $role = Role::firstOrCreate(['name' => $name, 'display_name' => $display_name, 'description' => $description, 'enabled' => $enabled]); if (!is_null($role) && is_array($permissions)) { $role->perms()->sync($permissions); } return $role; }