/** * 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'); }
/** * testGetMenu * * @return void */ public function testGetMenu() { $menuRepo = $this->menuRepository; $typeHandler = $this->typeHandler; $permissionHandler = $this->menuPermissionHandler; $cacheHandler = $this->cacheHandler; $menuPermission = $this->menuPermission; $dummyMenu1 = new MenuEntity(['id' => 'main', 'title' => 'testTitle1', 'description' => 'testDescription'], new TreeCollection([new MenuItem(['id' => 'testMenuItem1'])])); $menuHandler = new MenuRetrieveHandler($menuRepo, $typeHandler, $permissionHandler, $cacheHandler); $cacheHandler->shouldReceive('isExistCachedMenu')->andReturn(false); $cacheHandler->shouldReceive('setCachedMenu')->andReturn(false); $menuRepo->shouldReceive('findMenu')->andReturn($dummyMenu1); $permissionHandler->shouldReceive('getMenuPermissions')->andReturn(['main' => $menuPermission, '' => $menuPermission]); $menu = $menuHandler->getMenu('main'); $this->assertEquals($dummyMenu1, $menu); }