Role.where()
Learn: Roles |
---|
Get a Set of user-defined roles that match a provided predicate.
Description
Gets a Set of user-defined roles,
represented as Role
documents, that match a provided
predicate function.
Role
documents are FQL versions of a database’s FSL
role schema. See Roles.
If Role.where()
is the last expression in a query, the first page of the Set
is returned. See Pagination.
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 a Set of |
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\""
}
]
}
]
}