Group - Role
Now, after create roles, groups, we can assign roles to group.
Create Group - Role example:
use Jsalam\UGRPM\Group;
use Jsalam\UGRPM\Role;
use Jsalam\UGRPM\UGRPM;
// ... $ugrpm initialized before, see installation section
//Roles
$roleCreateArticle = $ugrpm->createRole(new Role(role:"App\Article\create"));
$roleEditArticle = $ugrpm->createRole(new Role(role:"App\Article\edit"));
$roleCreateContent = $ugrpm->createRole(new Role(role:"App\Content\create"));
$roleEditContent = $ugrpm->createRole(new Role(role:"App\Content\edit"));
// Groups
$createGroup = $ugrpm->createGroup(new Group(groupName:"Creators",description:"Creators Group"));
$editGroup = $ugrpm->createGroup(new Group(groupName:"Editors",description:"Editors Group"));
$manageGroup = $ugrpm->createGroup(new Group(groupName:"Managers",description:"Managers Group"));
$ugrpm->createGroupRole($createGroup,$roleCreateArticle);
$ugrpm->createGroupRole($createGroup,$roleCreateContent);
// We can do in one:
$ugrpm->createGroupRoles($editGroup,[$roleEditArticle,$roleEditContent]);
// getting group's roles
$ugrpm->createGroupRoles($manageGroup,array_merge($ugrpm->getGroupRoles($createGroup),$ugrpm->getGroupRoles($editGroup)));
// get Groups have edit artices role.
$groupsEditing = $ugrpm->getRoleGroups($roleEditArticle); // [$createGroup , $manageGroup]
// remove group's editing roles
$ugrpm->removeGroupRoles($manageGroup,[$roleEditArticle,$roleEditContent]);