/**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * 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');
 }