Check out v4 of the Fauna CLI
v4 of the Fauna CLI is now in beta. The new version introduces enhancements to the developer experience, including an improved authentication workflow. To get started, check out the CLI v4 quick start. |
Role.where()
Learn: Roles |
---|
Get the Set of accessible Roles in the database.
Signature
Role.where(predicate: () => Boolean)) => Set<Role>
Role.where(predicate: (val: Role) => Boolean)) => Set<Role>
Description
Each Role in a Fauna database is represented by a Role
object. The
Role.where()
method gets the Set of accessible roles that match the
predicate function.
If Role.where()
is the last
value in a query, the first page of the Set
is returned.
Staged schema
If a database has staged schema, this method interacts with the database’s staged schema, not the active schema.
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
predicate |
Yes |
An anonymous function that compares values in each document and returns
|
Examples
Role.where(.name.includes("manager"))
{
data: [
{
name: "manager",
coll: Role,
ts: Time("2099-10-28T16:01:40.805Z"),
privileges: [
{
resource: "OrderItem",
actions: {
create: true,
read: true,
write: true,
delete: true
}
},
{
resource: "Customer",
actions: {
read: true
}
},
{
resource: "Manager",
actions: {
read: "(doc) => Query.identity() == doc && Date.today().dayOfWeek < 6"
}
},
{
resource: "getOrCreateCart",
actions: {
call: true
}
},
{
resource: "checkout",
actions: {
call: <<-END
(args) => {
let order = Order.byId(args[0])!
order?.customer == Query.identity()
}
END
}
}
],
membership: [
{
resource: "Manager"
},
{
resource: "User",
predicate: "(user) => user.accessLevel == \"manager\""
}
]
}
]
}
Is this article helpful?
Tell Fauna how the article can be improved:
Visit Fauna's forums
or email docs@fauna.com
Thank you for your feedback!