From c18b01dc2df9ee1f88d7fa95ab8369984012b4ee Mon Sep 17 00:00:00 2001 From: Ginger Date: Wed, 26 Aug 2026 14:28:41 -0400 Subject: [PATCH] fix: Don't bail on unrecognized OAuth scopes --- src/service/oauth/grant.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/service/oauth/grant.rs b/src/service/oauth/grant.rs index 45dba7640..1e346ee13 100644 --- a/src/service/oauth/grant.rs +++ b/src/service/oauth/grant.rs @@ -115,7 +115,8 @@ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { | Self::ClientApi => write!(f, "urn:matrix:client:api:*"), | Self::Device(device_id) => write!(f, "urn:matrix:client:device:{device_id}"), - | Self::ServerAdministration => write!(f, "urn:matrix:client:cc.c10y.msc4484.server_administration"), + | Self::ServerAdministration => + write!(f, "urn:matrix:client:cc.c10y.msc4484.server_administration"), } } } @@ -130,7 +131,8 @@ pub fn to_scopes(&self) -> Result, String> { regex!(r"urn:matrix:(client|org.matrix.msc2967.client):api:\*"); let device_token_regex = regex!(r"urn:matrix:(client|org.matrix.msc2967.client):device:([a-zA-Z0-9-._~]{5,})"); - let server_administration_regex = regex!(r"urn:matrix:client:cc.c10y.msc4484.server_administration"); + let server_administration_regex = + regex!(r"urn:matrix:client:cc.c10y.msc4484.server_administration"); let mut scopes = HashSet::new(); @@ -143,12 +145,8 @@ pub fn to_scopes(&self) -> Result, String> { } else if let Some(captures) = device_token_regex.captures(token) { scopes .insert(RequestedScope::Device(captures.get(2).unwrap().as_str().into())) - } else if token == "openid" { - // TODO(unspecced): Element sets this scope but doesn't use - // it for anything - true } else { - return Err(format!("Invalid scope: {token}")); + continue; } };