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.firstWhere()
Learn: Roles |
---|
Get the first user-defined role matching a provided predicate.
Description
Gets the first user-defined role, represented as
a Role
document, that matches a
provided predicate function.
Role
documents are FQL versions of a database’s FSL
role schema. See Roles.
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 |
---|---|---|---|
pred |
Yes |
Anonymous predicate function that:
The method returns the first |
Examples
Role.firstWhere(.name.includes("manager"))
{
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!