public function testFilterRoutesNeedPermission() { $router = m::mock('Router'); $router->shouldReceive('filter')->once(); $router->shouldReceive('when')->once(); $app = array('router' => $router); $entrust = new Entrust($app); $entrust->routeNeedsPermission('admin', 'manage_users'); }
/** * Filters a route for the permission. * * If the third parameter is null then return 403. * Overwise the $result is returned. * * @param string $route Route pattern. i.e: "admin/*" * @param array|string $permissions The permission needed. * @param mixed $result i.e: Redirect::to('/') * @param bool $cumulative Must have all permissions * @return mixed * @static */ public static function routeNeedsPermission($route, $permissions, $result = null, $cumulative = true) { return \Zizaco\Entrust\Entrust::routeNeedsPermission($route, $permissions, $result, $cumulative); }
/** * Filters a route for a permission or set of permissions. * * If the third parameter is null then abort with status code 403. * Otherwise the $result is returned. * * @param string $route Route pattern. i.e: "admin/*" * @param array|string $permissions The permission(s) needed * @param mixed $result i.e: Redirect::to('/') * @param bool $requireAll User must have all permissions * @return mixed * @static */ public static function routeNeedsPermission($route, $permissions, $result = null, $requireAll = true) { return \Zizaco\Entrust\Entrust::routeNeedsPermission($route, $permissions, $result, $requireAll); }
public function testRouteNeedsPermission() { /* |------------------------------------------------------------ | Set |------------------------------------------------------------ */ $app = new stdClass(); $app->router = m::mock('Route'); $entrust = new Entrust($app); $route = 'route'; $onePerm = 'can_a'; $manyPerm = ['can_a', 'can_b', 'can_c']; $onePermFilterName = $this->makeFilterName($route, [$onePerm]); $manyPermFilterName = $this->makeFilterName($route, $manyPerm); /* |------------------------------------------------------------ | Expectation |------------------------------------------------------------ */ $app->router->shouldReceive('filter')->with(m::anyOf($onePermFilterName, $manyPermFilterName), m::type('Closure'))->twice()->ordered(); $app->router->shouldReceive('when')->with($route, m::anyOf($onePermFilterName, $manyPermFilterName))->twice(); /* |------------------------------------------------------------ | Assertion |------------------------------------------------------------ */ $entrust->routeNeedsPermission($route, $onePerm); $entrust->routeNeedsPermission($route, $manyPerm); }