role()
Assigning Sync Gateway roles
Related Topics: access() | channel() | expiry() | requireAccess() | requireAdmin() | requireRole() | requireUser() | role() | throw()
- Function
-
role(username, rolename)
Purpose
Use the role()
function to add a role to a user.
This indirectly gives them access to any channels assigned to that role.
Roles, like users, have to be explicitly created by an administrator. |
Arguments
Argument | Description |
---|---|
|
Must be a string identifying a role, or an array of strings identifying multiple roles; the function is applied to each role in the array. If the value resolves to null the function result is a no-op. Note — Role names must always be prefixed with |
username |
Must be a string identifying a user, or an array of strings identifying multiple users; the function is applied to each user in the array. If the value resolves to null the function result is a no-op. |
Context
This function affects the user’s ability to revise documents, if the access function requires role membership to validate certain types of changes.
Its use is similar to access
.
Nonexistent roles don’t cause an error, but have no effect on the user’s access privileges.
You can create roles retrospectively. As soon as a role is created, any pre-existing references to it take effect. |
Use
role ("jchris", "role:admin"); (1)
role ("jchris", ["role:portlandians", "role:portlandians-owners"]); (2)
role (["snej", "jchris", "traun"], "role:mobile"); (3)
role ("ed", null); (4)
1 | The role admin is assigned to the user |
2 | Both the named roles are assigned to the user |
3 | The role mobile is assigned to all the named users |
4 | No op |