feat: Allow devices to be removed from the account panel

This commit is contained in:
Ginger
2026-04-30 11:32:30 -04:00
parent ee73a2b36d
commit 6f17868525
9 changed files with 172 additions and 41 deletions
+11 -5
View File
@@ -7,10 +7,16 @@ use axum::{
extract::State,
routing::method_routing::{get, post},
};
use const_str::concat;
use serde_json::json;
pub(crate) use server_metadata::*;
const BASE_PATH: &str = const_str::concat!(conduwuit_core::ROUTE_PREFIX, "/oauth2/");
const BASE_PATH: &str = concat!(conduwuit_core::ROUTE_PREFIX, "/oauth2/");
const AUTH_CODE_PATH: &str = "grant/authorization_code";
const JWKS_URI_PATH: &str = "client/keys.json";
const CLIENT_REGISTER_PATH: &str = "client/register";
const TOKEN_REVOKE_PATH: &str = "client/revoke";
const TOKEN_PATH: &str = "grant/token";
pub(crate) fn router() -> Router<crate::State> {
Router::new().nest(BASE_PATH, oauth_router())
@@ -24,9 +30,9 @@ pub(crate) fn router() -> Router<crate::State> {
fn oauth_router() -> Router<crate::State> {
Router::new()
.route(CLIENT_REGISTER_PATH, post(register_client::register_client_route))
.route(concat!("/", CLIENT_REGISTER_PATH), post(register_client::register_client_route))
// TODO(unspecced): used by old versions of the matrix-js-sdk
.route(JWKS_URI_PATH, get(async || Json(json!({"keys": []}))))
.route(TOKEN_PATH, post(token::token_route))
.route(TOKEN_REVOKE_PATH, post(token::revoke_token_route))
.route(concat!("/", JWKS_URI_PATH), get(async || Json(json!({"keys": []}))))
.route(concat!("/", TOKEN_PATH), post(token::token_route))
.route(concat!("/", TOKEN_REVOKE_PATH), post(token::revoke_token_route))
}
+6 -7
View File
@@ -4,13 +4,12 @@ use ruma::{api::client::discovery::get_authorization_server_metadata, serde::Raw
use serde_json::{Value, json};
use service::Services;
use crate::Ruma;
pub(super) const AUTH_CODE_PATH: &str = "grant/authorization_code";
pub(super) const JWKS_URI_PATH: &str = "client/keys.json";
pub(super) const CLIENT_REGISTER_PATH: &str = "client/register";
pub(super) const TOKEN_REVOKE_PATH: &str = "client/revoke";
pub(super) const TOKEN_PATH: &str = "grant/token";
use crate::{
Ruma,
client::oauth::{
AUTH_CODE_PATH, CLIENT_REGISTER_PATH, JWKS_URI_PATH, TOKEN_PATH, TOKEN_REVOKE_PATH,
},
};
pub(crate) async fn get_authorization_server_metadata_route(
State(services): State<crate::State>,