Files
sdk-for-dart/lib/role.dart
T
2026-03-26 05:07:38 +00:00

66 lines
1.6 KiB
Dart

part of 'dart_appwrite.dart';
/// Helper class to generate role strings for [Permission].
class Role {
Role._();
/// Grants access to anyone.
///
/// This includes authenticated and unauthenticated users.
static String any() {
return 'any';
}
/// Grants access to a specific user by user ID.
///
/// You can optionally pass verified or unverified for
/// [status] to target specific types of users.
static String user(String id, [String status = '']) {
if (status.isEmpty) {
return 'user:$id';
}
return 'user:$id/$status';
}
/// Grants access to any authenticated or anonymous user.
///
/// You can optionally pass verified or unverified for
/// [status] to target specific types of users.
static String users([String status = '']) {
if (status.isEmpty) {
return 'users';
}
return 'users/$status';
}
/// Grants access to any guest user without a session.
///
/// Authenticated users don't have access to this role.
static String guests() {
return 'guests';
}
/// Grants access to a team by team ID.
///
/// You can optionally pass a role for [role] to target
/// team members with the specified role.
static String team(String id, [String role = '']) {
if (role.isEmpty) {
return 'team:$id';
}
return 'team:$id/$role';
}
/// Grants access to a specific member of a team.
///
/// When the member is removed from the team, they will
/// no longer have access.
static String member(String id) {
return 'member:$id';
}
/// Grants access to a user with the specified label.
static String label(String name) {
return 'label:$name';
}
}