anchor.diff:      {[{skipped, skew_skipped(SkewThis)}, {users, [UserJson(El) || El <- Users]}],
        seed_links([{first, First}, {prev, Prev}, {next, CorrectedNext}, {last, Last}])}.
   
  -handle_get_users_page(Req, DomainAtom, Path, PageSize, Start) ->
  +handle_get_users_page(Req, DomainAtom, Path, PageSize, Start, Roles) ->
       Passwordless = menelaus_users:get_passwordless(),
       {PageSkews, Total} =
           pipes:run(menelaus_users:select_users({'_', DomainAtom}),
  -                  filter_out_invalid_roles(),
  +                  [filter_out_invalid_roles(),
  +                   filter_by_roles(Roles)],
                     ?make_consumer(
                        pipes:fold(
                          ?producer(),
  
positive.code:     end.
  
  handle_get_users_with_domain(Req, DomainAtom, Path) ->
      Query = Req:parse_qs(),
  
      case lists:keyfind("pageSize", 1, Query) of
          false ->
              handle_get_all_users(Req, {'_', DomainAtom});
          _ ->
              HasStartFrom = lists:keyfind("startFrom", 1, Query) =/= false,
              menelaus_util:execute_if_validated(
  
negative.code:                     menelaus_util:reply_json(Req, get_user_json(Identity))
              end
      end.
  
  filter_by_roles(all) ->
      pipes:filter(fun (_) -> true end);
  filter_by_roles(Roles) ->
      RoleNames = [Name || {Name, _} <- Roles],
      pipes:filter(
        fun ({{user, _}, Props}) ->
            UserRoles = proplists:get_value(roles, Props),
            lists:any(fun (R) -> lists:member(R, RoleNames) end, UserRoles)
        end).
  
  filter_out_invalid_roles() ->
      Definitions = menelaus_roles:get_definitions(),
  