mirror of
https://forgejo.ellis.link/continuwuation/continuwuity/
synced 2026-10-06 22:27:37 +00:00
feat: Add support for MSC4540
This commit is contained in:
Generated
+11
-11
@@ -4947,7 +4947,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma"
|
||||
version = "0.17.0"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"assign",
|
||||
"js_int",
|
||||
@@ -4966,7 +4966,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma-appservice-api"
|
||||
version = "0.17.0"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"http",
|
||||
"js_int",
|
||||
@@ -4979,7 +4979,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma-client-api"
|
||||
version = "0.25.0"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"as_variant",
|
||||
"assign",
|
||||
@@ -5001,7 +5001,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma-common"
|
||||
version = "0.20.0"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"as_variant",
|
||||
"base64 0.23.1",
|
||||
@@ -5034,7 +5034,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma-events"
|
||||
version = "0.35.0"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"as_variant",
|
||||
"indexmap 2.14.2",
|
||||
@@ -5055,7 +5055,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma-federation-api"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"http",
|
||||
@@ -5077,7 +5077,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma-identifiers-validation"
|
||||
version = "0.12.1"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"js_int",
|
||||
"thiserror 2.0.21",
|
||||
@@ -5086,7 +5086,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma-macros"
|
||||
version = "0.20.0"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"as_variant",
|
||||
"cfg-if",
|
||||
@@ -5102,7 +5102,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma-push-gateway-api"
|
||||
version = "0.16.0"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"js_int",
|
||||
"ruma-common",
|
||||
@@ -5114,7 +5114,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma-signatures"
|
||||
version = "0.22.0"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"base64 0.23.1",
|
||||
"ed25519-dalek 3.0.0",
|
||||
@@ -5131,7 +5131,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "ruma-state-res"
|
||||
version = "0.18.0"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=2bbec6d679310062f3f2db098dab3b7e97c1cf8f#2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
source = "git+https://github.com/gingershaped/ruwuma.git?rev=47d2b51360e1f87967ce191bcd4e96e66ac38936#47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
dependencies = [
|
||||
"js_int",
|
||||
"ruma-common",
|
||||
|
||||
+2
-1
@@ -348,7 +348,7 @@ version = "1.1.1"
|
||||
# Used for matrix spec type definitions and helpers
|
||||
[workspace.dependencies.ruma]
|
||||
git = "https://github.com/gingershaped/ruwuma.git"
|
||||
rev = "2bbec6d679310062f3f2db098dab3b7e97c1cf8f"
|
||||
rev = "47d2b51360e1f87967ce191bcd4e96e66ac38936"
|
||||
features = [
|
||||
"appservice-api-c",
|
||||
"client-api",
|
||||
@@ -387,6 +387,7 @@ features = [
|
||||
"unstable-msc4466",
|
||||
"unstable-msc4494",
|
||||
"unstable-msc4484",
|
||||
"unstable-msc4540",
|
||||
"unstable-extensible-events",
|
||||
]
|
||||
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
use std::collections::BTreeMap;
|
||||
use std::collections::{BTreeMap, BTreeSet};
|
||||
|
||||
use axum::extract::State;
|
||||
use conduwuit::{Result, Server};
|
||||
use ruma::{
|
||||
RoomVersionId,
|
||||
api::client::discovery::get_capabilities::{
|
||||
self,
|
||||
v3::{
|
||||
Capabilities, GetLoginTokenCapability, ProfileFieldsCapability, RoomVersionStability,
|
||||
RoomVersionsCapability, ThirdPartyIdChangesCapability,
|
||||
api::{
|
||||
OAuthClientScope,
|
||||
client::discovery::get_capabilities::{
|
||||
self,
|
||||
v3::{
|
||||
AdminCapability, Capabilities, GetLoginTokenCapability, ProfileFieldsCapability,
|
||||
RoomVersionStability, RoomVersionsCapability, ThirdPartyIdChangesCapability,
|
||||
},
|
||||
},
|
||||
},
|
||||
assign,
|
||||
@@ -50,6 +53,9 @@ pub(crate) async fn get_capabilities_route(
|
||||
{
|
||||
capabilities.account_moderation.lock = true;
|
||||
capabilities.account_moderation.suspend = true;
|
||||
|
||||
capabilities.admin =
|
||||
AdminCapability::new(BTreeSet::from_iter([OAuthClientScope::ServerAdministration]));
|
||||
}
|
||||
|
||||
capabilities.profile_fields = Some(
|
||||
|
||||
@@ -309,12 +309,14 @@ async fn check_access_token(
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure the user has the right scopes to use the route
|
||||
let user_scopes = if let Some(session_info) = services
|
||||
let session_info = services
|
||||
.oauth
|
||||
.get_session_info_for_device(&sender_user, &sender_device)
|
||||
.await
|
||||
{
|
||||
.map(Box::new);
|
||||
|
||||
// Make sure the user has the right scopes to use the route
|
||||
let user_scopes = if let Some(session_info) = &session_info {
|
||||
session_info.scopes()
|
||||
} else {
|
||||
let mut scopes = BTreeSet::from_iter([OAuthClientScope::ApiFullAccess]);
|
||||
|
||||
Reference in New Issue
Block a user