UGRPM

مجموعة - وظيفة

الآن و بعد إنشاء مجموعات و وظائف يمكننا إسناد وظائف للمجموعات بعدة طرق.
مثال للتعامل بين المجموعات و الوظائف:
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]);