/** * @param $input * @throws GeneralException * @return bool */ public function create($input) { if (Role::where('role_name', $input['role_name'])->first()) { throw new GeneralException('That role already exists. Please choose a different name.'); } if (count($input['assignees_permissions']) == 0) { throw new GeneralException('You must select at least one permission for this role.'); } $role = new Role(); $role->role_name = $input['role_name']; $role->role_slug = $input['role_slug']; $role->role_description = $input['role_description']; if ($role->save()) { $current = $input['assignees_permissions']; $permissions = []; if (count($current)) { foreach ($current as $perm) { if (is_numeric($perm)) { array_push($permissions, $perm); } } } $role->attachPermissions($permissions); return true; } throw new GeneralException('There was a problem creating this role. Please try again.'); }
public function setupRolesPermissions() { $master = User::findOrFail(1); if ($master) { // Create role $owner = new Role(); $owner->name = 'master'; $owner->display_name = 'Project Owner'; $owner->description = 'The Master of Universe'; $owner->save(); // Create permissions $createUser = new Permission(); $createUser->name = 'user-create'; $createUser->display_name = 'Create Users'; $createUser->description = 'Create new users'; $createUser->save(); $editUser = new Permission(); $editUser->name = 'user-edit'; $editUser->display_name = 'Edit Users'; $editUser->description = 'Edit existing users'; $editUser->save(); $deleteUser = new Permission(); $deleteUser->name = 'user-delete'; $deleteUser->display_name = 'Delete Users'; $deleteUser->description = 'Delete existing users'; $deleteUser->save(); // Attach permissions $owner->attachPermissions([$createUser, $editUser, $deleteUser]); // Attach roles $master->attachRole($owner); // using facade } return redirect()->route('access.test'); }
public static function EventManager($eventId, $permissions) { return DB::transaction(function () use($eventId, $permissions) { $rolename = RoleNames::EventManager($eventId); $role = new Role(); $role->name = $rolename; $role->save(); $role->attachPermissions($permissions); return $role; }); }