Merge pull request #1774 from PhantomRay/prod

feat: support for JWT authentication
This commit is contained in:
Krille-chan 2024-05-10 10:48:32 +02:00 committed by GitHub
commit 188a4e2596
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 1 deletions

View File

@ -1398,7 +1398,9 @@ enum LoginType {
@EnhancedEnumValue(name: 'm.login.password')
mLoginPassword,
@EnhancedEnumValue(name: 'm.login.token')
mLoginToken
mLoginToken,
@EnhancedEnumValue(name: 'org.matrix.login.jwt')
mLoginJWT
}
///

View File

@ -308,6 +308,7 @@ extension LoginTypeFromStringExtension on Iterable<LoginType> {
final override = {
'm.login.password': LoginType.mLoginPassword,
'm.login.token': LoginType.mLoginToken,
'org.matrix.login.jwt': LoginType.mLoginJWT,
}[val];
// ignore: unnecessary_this
return this.contains(override) ? override : null;
@ -320,25 +321,31 @@ extension LoginTypeEnhancedEnum on LoginType {
String get name => {
LoginType.mLoginPassword: 'm.login.password',
LoginType.mLoginToken: 'm.login.token',
LoginType.mLoginJWT: 'org.matrix.login.jwt',
}[this]!;
bool get isMLoginPassword => this == LoginType.mLoginPassword;
bool get isMLoginToken => this == LoginType.mLoginToken;
bool get isMLoginJWT => this == LoginType.mLoginJWT;
T when<T>({
required T Function() mLoginPassword,
required T Function() mLoginToken,
required T Function() mLoginJWT,
}) =>
{
LoginType.mLoginPassword: mLoginPassword,
LoginType.mLoginToken: mLoginToken,
LoginType.mLoginJWT: mLoginJWT,
}[this]!();
T maybeWhen<T>({
T? Function()? mLoginPassword,
T? Function()? mLoginToken,
T? Function()? mLoginJWT,
required T Function() orElse,
}) =>
{
LoginType.mLoginPassword: mLoginPassword,
LoginType.mLoginToken: mLoginToken,
LoginType.mLoginJWT: mLoginJWT,
}[this]
?.call() ??
orElse();