21 lines
589 B
Dart
21 lines
589 B
Dart
/// Account role as reported by MarianumConnect. Only used for display and for
|
|
/// deriving policies; features gate on capabilities and requirements instead
|
|
/// of comparing roles.
|
|
enum UserRole {
|
|
student,
|
|
teacher,
|
|
staff,
|
|
parent,
|
|
unknown;
|
|
|
|
/// Unknown or missing values map to [unknown] so a new server-side role
|
|
/// never breaks older app versions.
|
|
static UserRole parse(String? wire) => switch (wire) {
|
|
'STUDENT' => UserRole.student,
|
|
'TEACHER' => UserRole.teacher,
|
|
'STAFF' => UserRole.staff,
|
|
'PARENT' => UserRole.parent,
|
|
_ => UserRole.unknown,
|
|
};
|
|
}
|