anchor.diff:         {[admin], none},
          {[], [read]}]},
        {bucket_sasl, [bucket_name],
  +      [],
         [{[{bucket, bucket_name}, data], all},
          {[{bucket, bucket_name}], [read]},
          {[pools], [read]}]},
        {views_admin, [bucket_name],
  +      [{name, <<"Views Admin">>},
  +       {desc, <<"Can manage views for specified buckets">>}],
         [{[{bucket, bucket_name}, views], all},
          {[{bucket, bucket_name}, data], [read]},
          {[{bucket, all}, settings], [read]},
  
positive.code: 
  compile_roles(Roles, Definitions) ->
      lists:map(fun (Name) when is_atom(Name) ->
                        {Name, [], Permissions} = lists:keyfind(Name, 1, Definitions),
                        Permissions;
                    ({Name, Params}) ->
                        {Name, ParamDefinitions, Permissions} = lists:keyfind(Name, 1, Definitions),
                        substitute_params(Params, ParamDefinitions, Permissions)
                end, Roles).
  
  
negative.code:        {[admin], none},
         {[], [read]}]},
       {replication_admin, [],
        [{name, <<"Replication Admin">>},
         {desc, <<"Can manage ONLY XDCR features (cluster AND bucket level)">>}],
        [{[{bucket, all}, xdcr], all},
         {[xdcr], all},
         {[admin], none},
  