/** * testRegisterMenuAccessPermission * * @return void */ public function testRegisterMenuPermission() { $permissionFactory = $this->permissionFactory; $permissionFactory->shouldReceive('register')->andReturn(); $permissionHandler = new MenuPermissionHandler($permissionFactory, $this->groupRepoMock, $this->memberRepoMock); $menu = $this->getSampleMenuEntity(); $grant = $this->getSampleGrant(); $permissionHandler->registerMenuPermission($menu, $grant); }
/** * updateMenuPermission * * @param MenuRetrieveHandler $menuHandler menu handler * @param MenuCacheHandler $cacheHandler menu cache handler * @param MenuPermissionHandler $permissionHandler menu permission handler * @param string $menuId menu id * * @return RedirectResponse * @throws Exception */ public function updateMenuPermission(MenuRetrieveHandler $menuHandler, MenuCacheHandler $cacheHandler, MenuPermissionHandler $permissionHandler, $menuId) { XeDB::beginTransaction(); try { $inputs = Request::all(); $menu = $menuHandler->getMenu($menuId); $menuGrant = $permissionHandler->createAccessGrant($inputs); $menuGrant = $permissionHandler->createVisibleGrant($inputs, $menuGrant); $permissionHandler->registerMenuPermission($menu, $menuGrant); $cacheHandler->deleteCachedMenu($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'); }