remove several services.globals config wrappers
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
d60920c728
commit
d3b65af616
12 changed files with 34 additions and 84 deletions
|
@ -146,7 +146,7 @@ pub(crate) async fn register_route(
|
|||
let is_guest = body.kind == RegistrationKind::Guest;
|
||||
let emergency_mode_enabled = services.config.emergency_password.is_some();
|
||||
|
||||
if !services.globals.allow_registration() && body.appservice_info.is_none() {
|
||||
if !services.config.allow_registration && body.appservice_info.is_none() {
|
||||
match (body.username.as_ref(), body.initial_device_display_name.as_ref()) {
|
||||
| (Some(username), Some(device_display_name)) => {
|
||||
info!(%is_guest, user = %username, device_name = %device_display_name, "Rejecting registration attempt as registration is disabled");
|
||||
|
@ -166,8 +166,8 @@ pub(crate) async fn register_route(
|
|||
}
|
||||
|
||||
if is_guest
|
||||
&& (!services.globals.allow_guest_registration()
|
||||
|| (services.globals.allow_registration()
|
||||
&& (!services.config.allow_guest_registration
|
||||
|| (services.config.allow_registration
|
||||
&& services.globals.registration_token.is_some()))
|
||||
{
|
||||
info!(
|
||||
|
@ -441,7 +441,7 @@ pub(crate) async fn register_route(
|
|||
}
|
||||
|
||||
// log in conduit admin channel if a guest registered
|
||||
if body.appservice_info.is_none() && is_guest && services.globals.log_guest_registrations() {
|
||||
if body.appservice_info.is_none() && is_guest && services.config.log_guest_registrations {
|
||||
debug_info!("New guest user \"{user_id}\" registered on this server.");
|
||||
|
||||
if !device_display_name.is_empty() {
|
||||
|
@ -490,7 +490,7 @@ pub(crate) async fn register_route(
|
|||
|
||||
if body.appservice_info.is_none()
|
||||
&& !services.server.config.auto_join_rooms.is_empty()
|
||||
&& (services.globals.allow_guests_auto_join_rooms() || !is_guest)
|
||||
&& (services.config.allow_guests_auto_join_rooms || !is_guest)
|
||||
{
|
||||
for room in &services.server.config.auto_join_rooms {
|
||||
let Ok(room_id) = services.rooms.alias.resolve(room).await else {
|
||||
|
|
|
@ -491,7 +491,7 @@ pub(crate) async fn invite_user_route(
|
|||
) -> Result<invite_user::v3::Response> {
|
||||
let sender_user = body.sender_user();
|
||||
|
||||
if !services.users.is_admin(sender_user).await && services.globals.block_non_admin_invites() {
|
||||
if !services.users.is_admin(sender_user).await && services.config.block_non_admin_invites {
|
||||
info!(
|
||||
"User {sender_user} is not an admin and attempted to send an invite to room {}",
|
||||
&body.room_id
|
||||
|
@ -1628,7 +1628,7 @@ pub(crate) async fn invite_helper(
|
|||
reason: Option<String>,
|
||||
is_direct: bool,
|
||||
) -> Result {
|
||||
if !services.users.is_admin(sender_user).await && services.globals.block_non_admin_invites() {
|
||||
if !services.users.is_admin(sender_user).await && services.config.block_non_admin_invites {
|
||||
info!(
|
||||
"User {sender_user} is not an admin and attempted to send an invite to room \
|
||||
{room_id}"
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
use std::time::Duration;
|
||||
|
||||
use axum::extract::State;
|
||||
use ruma::api::client::{
|
||||
error::ErrorKind,
|
||||
presence::{get_presence, set_presence},
|
||||
};
|
||||
use conduwuit::{Err, Result};
|
||||
use ruma::api::client::presence::{get_presence, set_presence};
|
||||
|
||||
use crate::{Error, Result, Ruma};
|
||||
use crate::Ruma;
|
||||
|
||||
/// # `PUT /_matrix/client/r0/presence/{userId}/status`
|
||||
///
|
||||
|
@ -15,24 +13,17 @@ pub(crate) async fn set_presence_route(
|
|||
State(services): State<crate::State>,
|
||||
body: Ruma<set_presence::v3::Request>,
|
||||
) -> Result<set_presence::v3::Response> {
|
||||
if !services.globals.allow_local_presence() {
|
||||
return Err(Error::BadRequest(
|
||||
ErrorKind::forbidden(),
|
||||
"Presence is disabled on this server",
|
||||
));
|
||||
if !services.config.allow_local_presence {
|
||||
return Err!(Request(Forbidden("Presence is disabled on this server")));
|
||||
}
|
||||
|
||||
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
|
||||
if sender_user != &body.user_id && body.appservice_info.is_none() {
|
||||
return Err(Error::BadRequest(
|
||||
ErrorKind::InvalidParam,
|
||||
"Not allowed to set presence of other users",
|
||||
));
|
||||
if body.sender_user() != body.user_id && body.appservice_info.is_none() {
|
||||
return Err!(Request(InvalidParam("Not allowed to set presence of other users")));
|
||||
}
|
||||
|
||||
services
|
||||
.presence
|
||||
.set_presence(sender_user, &body.presence, None, None, body.status_msg.clone())
|
||||
.set_presence(body.sender_user(), &body.presence, None, None, body.status_msg.clone())
|
||||
.await?;
|
||||
|
||||
Ok(set_presence::v3::Response {})
|
||||
|
@ -47,21 +38,15 @@ pub(crate) async fn get_presence_route(
|
|||
State(services): State<crate::State>,
|
||||
body: Ruma<get_presence::v3::Request>,
|
||||
) -> Result<get_presence::v3::Response> {
|
||||
if !services.globals.allow_local_presence() {
|
||||
return Err(Error::BadRequest(
|
||||
ErrorKind::forbidden(),
|
||||
"Presence is disabled on this server",
|
||||
));
|
||||
if !services.config.allow_local_presence {
|
||||
return Err!(Request(Forbidden("Presence is disabled on this server",)));
|
||||
}
|
||||
|
||||
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
|
||||
|
||||
let mut presence_event = None;
|
||||
|
||||
let has_shared_rooms = services
|
||||
.rooms
|
||||
.state_cache
|
||||
.user_sees_user(sender_user, &body.user_id)
|
||||
.user_sees_user(body.sender_user(), &body.user_id)
|
||||
.await;
|
||||
|
||||
if has_shared_rooms {
|
||||
|
@ -99,9 +84,6 @@ pub(crate) async fn get_presence_route(
|
|||
presence: presence.content.presence,
|
||||
})
|
||||
},
|
||||
| _ => Err(Error::BadRequest(
|
||||
ErrorKind::NotFound,
|
||||
"Presence state for this user was not found",
|
||||
)),
|
||||
| _ => Err!(Request(NotFound("Presence state for this user was not found"))),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ pub(crate) async fn set_displayname_route(
|
|||
update_displayname(&services, &body.user_id, body.displayname.clone(), &all_joined_rooms)
|
||||
.await;
|
||||
|
||||
if services.globals.allow_local_presence() {
|
||||
if services.config.allow_local_presence {
|
||||
// Presence update
|
||||
services
|
||||
.presence
|
||||
|
@ -147,7 +147,7 @@ pub(crate) async fn set_avatar_url_route(
|
|||
)
|
||||
.await;
|
||||
|
||||
if services.globals.allow_local_presence() {
|
||||
if services.config.allow_local_presence {
|
||||
// Presence update
|
||||
services
|
||||
.presence
|
||||
|
|
|
@ -50,7 +50,7 @@ pub(crate) async fn set_read_marker_route(
|
|||
}
|
||||
|
||||
// ping presence
|
||||
if services.globals.allow_local_presence() {
|
||||
if services.config.allow_local_presence {
|
||||
services
|
||||
.presence
|
||||
.ping_presence(sender_user, &ruma::presence::PresenceState::Online)
|
||||
|
@ -126,7 +126,7 @@ pub(crate) async fn create_receipt_route(
|
|||
}
|
||||
|
||||
// ping presence
|
||||
if services.globals.allow_local_presence() {
|
||||
if services.config.allow_local_presence {
|
||||
services
|
||||
.presence
|
||||
.ping_presence(sender_user, &ruma::presence::PresenceState::Online)
|
||||
|
|
|
@ -372,7 +372,7 @@ pub(crate) async fn create_room_route(
|
|||
|
||||
// Silently skip encryption events if they are not allowed
|
||||
if pdu_builder.event_type == TimelineEventType::RoomEncryption
|
||||
&& !services.globals.allow_encryption()
|
||||
&& !services.config.allow_encryption
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -25,8 +25,7 @@ pub(crate) async fn send_message_event_route(
|
|||
let appservice_info = body.appservice_info.as_ref();
|
||||
|
||||
// Forbid m.room.encrypted if encryption is disabled
|
||||
if MessageLikeEventType::RoomEncrypted == body.event_type
|
||||
&& !services.globals.allow_encryption()
|
||||
if MessageLikeEventType::RoomEncrypted == body.event_type && !services.config.allow_encryption
|
||||
{
|
||||
return Err!(Request(Forbidden("Encryption has been disabled")));
|
||||
}
|
||||
|
|
|
@ -118,7 +118,7 @@ pub(crate) async fn sync_events_route(
|
|||
let (sender_user, sender_device) = body.sender();
|
||||
|
||||
// Presence update
|
||||
if services.globals.allow_local_presence() {
|
||||
if services.config.allow_local_presence {
|
||||
services
|
||||
.presence
|
||||
.ping_presence(sender_user, &body.body.set_presence)
|
||||
|
@ -279,8 +279,8 @@ pub(crate) async fn build_sync_events(
|
|||
});
|
||||
|
||||
let presence_updates: OptionFuture<_> = services
|
||||
.globals
|
||||
.allow_local_presence()
|
||||
.config
|
||||
.allow_local_presence
|
||||
.then(|| process_presence_updates(services, since, sender_user))
|
||||
.into();
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ pub(crate) async fn create_typing_event_route(
|
|||
}
|
||||
|
||||
// ping presence
|
||||
if services.globals.allow_local_presence() {
|
||||
if services.config.allow_local_presence {
|
||||
services
|
||||
.presence
|
||||
.ping_presence(&body.user_id, &ruma::presence::PresenceState::Online)
|
||||
|
|
|
@ -205,7 +205,7 @@ pub(crate) async fn delete_timezone_key_route(
|
|||
|
||||
services.users.set_timezone(&body.user_id, None);
|
||||
|
||||
if services.globals.allow_local_presence() {
|
||||
if services.config.allow_local_presence {
|
||||
// Presence update
|
||||
services
|
||||
.presence
|
||||
|
@ -233,7 +233,7 @@ pub(crate) async fn set_timezone_key_route(
|
|||
|
||||
services.users.set_timezone(&body.user_id, body.tz.clone());
|
||||
|
||||
if services.globals.allow_local_presence() {
|
||||
if services.config.allow_local_presence {
|
||||
// Presence update
|
||||
services
|
||||
.presence
|
||||
|
@ -326,7 +326,7 @@ pub(crate) async fn set_profile_key_route(
|
|||
);
|
||||
}
|
||||
|
||||
if services.globals.allow_local_presence() {
|
||||
if services.config.allow_local_presence {
|
||||
// Presence update
|
||||
services
|
||||
.presence
|
||||
|
@ -385,7 +385,7 @@ pub(crate) async fn delete_profile_key_route(
|
|||
.set_profile_key(&body.user_id, &body.key_name, None);
|
||||
}
|
||||
|
||||
if services.globals.allow_local_presence() {
|
||||
if services.config.allow_local_presence {
|
||||
// Presence update
|
||||
services
|
||||
.presence
|
||||
|
|
|
@ -103,8 +103,7 @@ pub(crate) async fn create_invite_route(
|
|||
return Err!(Request(Forbidden("This room is banned on this homeserver.")));
|
||||
}
|
||||
|
||||
if services.globals.block_non_admin_invites() && !services.users.is_admin(&invited_user).await
|
||||
{
|
||||
if services.config.block_non_admin_invites && !services.users.is_admin(&invited_user).await {
|
||||
return Err!(Request(Forbidden("This server does not allow room invites.")));
|
||||
}
|
||||
|
||||
|
|
|
@ -111,20 +111,6 @@ impl Service {
|
|||
#[inline]
|
||||
pub fn server_name(&self) -> &ServerName { self.server.name.as_ref() }
|
||||
|
||||
pub fn allow_registration(&self) -> bool { self.server.config.allow_registration }
|
||||
|
||||
pub fn allow_guest_registration(&self) -> bool { self.server.config.allow_guest_registration }
|
||||
|
||||
pub fn allow_guests_auto_join_rooms(&self) -> bool {
|
||||
self.server.config.allow_guests_auto_join_rooms
|
||||
}
|
||||
|
||||
pub fn log_guest_registrations(&self) -> bool { self.server.config.log_guest_registrations }
|
||||
|
||||
pub fn allow_encryption(&self) -> bool { self.server.config.allow_encryption }
|
||||
|
||||
pub fn allow_federation(&self) -> bool { self.server.config.allow_federation }
|
||||
|
||||
pub fn allow_public_room_directory_over_federation(&self) -> bool {
|
||||
self.server
|
||||
.config
|
||||
|
@ -183,22 +169,6 @@ impl Service {
|
|||
|
||||
pub fn forbidden_usernames(&self) -> &RegexSet { &self.server.config.forbidden_usernames }
|
||||
|
||||
pub fn allow_local_presence(&self) -> bool { self.server.config.allow_local_presence }
|
||||
|
||||
pub fn allow_incoming_presence(&self) -> bool { self.server.config.allow_incoming_presence }
|
||||
|
||||
pub fn allow_outgoing_presence(&self) -> bool { self.server.config.allow_outgoing_presence }
|
||||
|
||||
pub fn allow_incoming_read_receipts(&self) -> bool {
|
||||
self.server.config.allow_incoming_read_receipts
|
||||
}
|
||||
|
||||
pub fn allow_outgoing_read_receipts(&self) -> bool {
|
||||
self.server.config.allow_outgoing_read_receipts
|
||||
}
|
||||
|
||||
pub fn block_non_admin_invites(&self) -> bool { self.server.config.block_non_admin_invites }
|
||||
|
||||
/// checks if `user_id` is local to us via server_name comparison
|
||||
#[inline]
|
||||
pub fn user_is_local(&self, user_id: &UserId) -> bool {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue