@@ -144,7 +144,7 @@ impl AuthorizationGrantStage {
144
144
145
145
pub enum LoginHint < ' a > {
146
146
MXID ( & ' a UserId ) ,
147
- EMAIL ( lettre:: Address ) ,
147
+ Email ( lettre:: Address ) ,
148
148
None ,
149
149
}
150
150
@@ -186,32 +186,29 @@ impl AuthorizationGrant {
186
186
return LoginHint :: None ;
187
187
} ;
188
188
189
- match prefix {
190
- "mxid" => {
191
- // Instead of erroring just return none
192
- let Ok ( mxid) = <& UserId >:: try_from ( value) else {
193
- return LoginHint :: None ;
194
- } ;
195
-
196
- // Only handle MXIDs for current homeserver
197
- if mxid. server_name ( ) != homeserver {
198
- return LoginHint :: None ;
199
- }
189
+ if prefix == "mxid" {
190
+ // Instead of erroring just return none
191
+ let Ok ( mxid) = <& UserId >:: try_from ( value) else {
192
+ return LoginHint :: None ;
193
+ } ;
200
194
201
- LoginHint :: MXID ( mxid)
195
+ // Only handle MXIDs for current homeserver
196
+ if mxid. server_name ( ) != homeserver {
197
+ return LoginHint :: None ;
202
198
}
203
- "email" => {
204
- if !login_with_email_allowed {
205
- return LoginHint :: None ;
206
- }
199
+
200
+ LoginHint :: MXID ( mxid)
201
+ } else {
202
+ // If email supports for login_hint supports is enabled
203
+ if login_with_email_allowed {
207
204
// Validate the email
208
205
let Ok ( address) = lettre:: Address :: from_str ( value) else {
209
206
return LoginHint :: None ;
210
207
} ;
211
- LoginHint :: EMAIL ( address)
208
+ return LoginHint :: Email ( address) ;
212
209
}
213
210
// Unknown hint type, treat as none
214
- _ => LoginHint :: None ,
211
+ LoginHint :: None
215
212
}
216
213
}
217
214
@@ -339,7 +336,7 @@ mod tests {
339
336
340
337
let hint = grant. parse_login_hint ( "example.com" , true ) ;
341
338
342
- assert ! ( matches!( hint, LoginHint :: EMAIL ( email) if email. to_string( ) == "example@user" ) ) ;
339
+ assert ! ( matches!( hint, LoginHint :: Email ( email) if email. to_string( ) == "example@user" ) ) ;
343
340
}
344
341
345
342
#[ test]
0 commit comments