/** * testCreateAccessGrantInherit * * @return void */ public function testCreateAccessGrantInherit() { $permissionHandler = new MenuPermissionHandler($this->permissionFactory, $this->groupRepoMock, $this->memberRepoMock); $inputs = ['accessMode' => 'inherit', 'accessRating' => 'super', 'accessGroup' => [], 'accessUser' => 'user1,user2,user3', 'accessExcept' => 'user4']; $grant = $permissionHandler->createAccessGrant($inputs); $key = Action::ACCESS; $visibleGrant = $grant->{$key}; $this->assertEquals(null, $visibleGrant['rating']); $this->assertEquals(null, $visibleGrant['group']); $this->assertEquals(null, $visibleGrant['user']); $this->assertEquals(null, $visibleGrant['except']); }
/** * updateItemPermission * * @param MenuRetrieveHandler $menuHandler menu handler * @param MenuCacheHandler $cacheHandler menu cache handler * @param MenuPermissionHandler $permissionHandler menu permission handler * @param string $menuId menu id * @param string $itemId menu item id * * @return RedirectResponse */ public function updateItemPermission(MenuRetrieveHandler $menuHandler, MenuCacheHandler $cacheHandler, MenuPermissionHandler $permissionHandler, $menuId, $itemId) { XeDB::beginTransaction(); try { $inputs = Request::all(); $menu = $menuHandler->getMenu($menuId); $item = $menu->getItem($itemId); $menuGrant = $permissionHandler->createAccessGrant($inputs); $menuGrant = $permissionHandler->createVisibleGrant($inputs, $menuGrant); $permissionHandler->registerItemPermission($item, $menuGrant); $cacheHandler->deleteCachedMenu($item->menuId); } catch (Exception $e) { XeDB::rollback(); Request::flash(); return Redirect::back()->with('alert', ['type' => 'danger', 'message' => $e->getMessage()]); } XeDB::commit(); return Redirect::route('settings.menu.index'); }