/** * getItemAccessPermission * * @param MenuItem $item to find permission target item object * * @return \Xpressengine\Permission\Permission * @throws \Xpressengine\Permission\Exceptions\WrongInstanceException */ public function getItemAccessPermission(MenuItem $item) { $registered = $this->permission->findRegistered($this->permissionType, $item->getBreadCrumbsKeyString()); $pureGrant = $registered->pure(Action::ACCESS); $mode = $pureGrant === null ? "inherit" : "manual"; $menuAccessGrant = $registered->offsetGet(Action::ACCESS); $groups = $this->groupRepo->findAll($menuAccessGrant['group']); $users = $this->memberRepo->findAll($menuAccessGrant['user']); $excepts = $this->memberRepo->findAll($menuAccessGrant['except']); return ['mode' => $mode, 'rating' => $menuAccessGrant['rating'], 'group' => $groups, 'user' => $users, 'except' => $excepts]; }