Skip to content

Commit fb5c4de

Browse files
committed
Simplify handling of login hints
1 parent 576b5c6 commit fb5c4de

File tree

1 file changed

+9
-25
lines changed

1 file changed

+9
-25
lines changed

crates/data-model/src/oauth2/authorization_grant.rs

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -188,31 +188,15 @@ impl AuthorizationGrant {
188188
return LoginHint::None;
189189
};
190190

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
216200
}
217201
}
218202

0 commit comments

Comments
 (0)