File tree Expand file tree Collapse file tree 1 file changed +9
-25
lines changed
crates/data-model/src/oauth2 Expand file tree Collapse file tree 1 file changed +9
-25
lines changed Original file line number Diff line number Diff line change @@ -188,31 +188,15 @@ impl AuthorizationGrant {
188
188
return LoginHint :: None ;
189
189
} ;
190
190
191
- let Some ( ( prefix, value) ) = login_hint. split_once ( ':' ) else {
192
- // Validate the email
193
- let Ok ( address) = lettre:: Address :: from_str ( login_hint) else {
194
- // Return none if the format is incorrect
195
- return LoginHint :: None ;
196
- } ;
197
- return LoginHint :: Email ( address) ;
198
- } ;
199
-
200
- match prefix {
201
- "mxid" => {
202
- // Instead of erroring just return none
203
- let Ok ( mxid) = <& UserId >:: try_from ( value) else {
204
- return LoginHint :: None ;
205
- } ;
206
-
207
- // Only handle MXIDs for current homeserver
208
- if mxid. server_name ( ) != homeserver {
209
- return LoginHint :: None ;
210
- }
211
-
212
- LoginHint :: MXID ( mxid)
213
- }
214
- // Unknown hint type, treat as none
215
- _ => LoginHint :: None ,
191
+ if let Some ( value) = login_hint. strip_prefix ( "mxid:" )
192
+ && let Ok ( mxid) = <& UserId >:: try_from ( value)
193
+ && mxid. server_name ( ) == homeserver
194
+ {
195
+ LoginHint :: MXID ( mxid)
196
+ } else if let Ok ( email) = lettre:: Address :: from_str ( login_hint) {
197
+ LoginHint :: Email ( email)
198
+ } else {
199
+ LoginHint :: None
216
200
}
217
201
}
218
202
You can’t perform that action at this time.
0 commit comments