mirror of
https://forgejo.ellis.link/continuwuation/continuwuity/
synced 2026-07-15 01:38:49 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bcbaa3ec7e | |||
| c0d0236239 | |||
| e3075ed718 |
@@ -0,0 +1 @@
|
|||||||
|
Appservice device management as outlined in MSC4190 (part of Matrix 1.17) is now fully supported. Contributed by @ginger.
|
||||||
@@ -121,7 +121,9 @@ pub(crate) async fn delete_device_route(
|
|||||||
let sender_user = body.identity.expect_sender_user()?;
|
let sender_user = body.identity.expect_sender_user()?;
|
||||||
|
|
||||||
// Appservices get to skip UIAA for this endpoint
|
// Appservices get to skip UIAA for this endpoint
|
||||||
if let Some(sender_device) = body.identity.sender_device() {
|
if !body.identity.is_appservice() {
|
||||||
|
let sender_device = body.identity.expect_sender_device()?;
|
||||||
|
|
||||||
// Prompt the user to confirm with their password using UIAA
|
// Prompt the user to confirm with their password using UIAA
|
||||||
let _ = services
|
let _ = services
|
||||||
.uiaa
|
.uiaa
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ pub(crate) async fn upload_signing_keys_route(
|
|||||||
if uiaa_needed_to_upload_keys(
|
if uiaa_needed_to_upload_keys(
|
||||||
services,
|
services,
|
||||||
sender_user,
|
sender_user,
|
||||||
|
body.identity.is_appservice(),
|
||||||
body.self_signing_key.as_ref(),
|
body.self_signing_key.as_ref(),
|
||||||
body.user_signing_key.as_ref(),
|
body.user_signing_key.as_ref(),
|
||||||
body.master_key.as_ref(),
|
body.master_key.as_ref(),
|
||||||
@@ -231,10 +232,16 @@ pub(crate) async fn upload_signing_keys_route(
|
|||||||
async fn uiaa_needed_to_upload_keys(
|
async fn uiaa_needed_to_upload_keys(
|
||||||
services: crate::State,
|
services: crate::State,
|
||||||
user_id: &UserId,
|
user_id: &UserId,
|
||||||
|
is_appservice: bool,
|
||||||
self_signing_key: Option<&Raw<CrossSigningKey>>,
|
self_signing_key: Option<&Raw<CrossSigningKey>>,
|
||||||
user_signing_key: Option<&Raw<CrossSigningKey>>,
|
user_signing_key: Option<&Raw<CrossSigningKey>>,
|
||||||
master_signing_key: Option<&Raw<CrossSigningKey>>,
|
master_signing_key: Option<&Raw<CrossSigningKey>>,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
|
if is_appservice {
|
||||||
|
// Appservices can skip UIAA for this endpoint
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
let (self_signing_key, user_signing_key, master_signing_key) = (
|
let (self_signing_key, user_signing_key, master_signing_key) = (
|
||||||
self_signing_key.map(Raw::deserialize).flat_ok(),
|
self_signing_key.map(Raw::deserialize).flat_ok(),
|
||||||
user_signing_key.map(Raw::deserialize).flat_ok(),
|
user_signing_key.map(Raw::deserialize).flat_ok(),
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ pub fn versions() -> Vec<String> {
|
|||||||
"v1.14".to_owned(),
|
"v1.14".to_owned(),
|
||||||
"v1.15".to_owned(),
|
"v1.15".to_owned(),
|
||||||
"v1.16".to_owned(),
|
"v1.16".to_owned(),
|
||||||
|
"v1.17".to_owned(),
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user