refactor: Use config service
This commit is contained in:
parent
4c8dfc4c2c
commit
f83238df78
1 changed files with 8 additions and 6 deletions
|
@ -3,18 +3,24 @@ use std::sync::Arc;
|
|||
use conduwuit::{Result, Server, implement};
|
||||
use ruma::ServerName;
|
||||
|
||||
use crate::{Dep, config};
|
||||
|
||||
pub struct Service {
|
||||
services: Services,
|
||||
}
|
||||
|
||||
struct Services {
|
||||
pub server: Arc<Server>,
|
||||
pub config: Dep<config::Service>,
|
||||
}
|
||||
|
||||
impl crate::Service for Service {
|
||||
fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
||||
Ok(Arc::new(Self {
|
||||
services: Services { server: args.server.clone() },
|
||||
services: Services {
|
||||
server: args.server.clone(),
|
||||
config: args.depend::<config::Service>("config"),
|
||||
},
|
||||
}))
|
||||
}
|
||||
|
||||
|
@ -25,14 +31,13 @@ impl crate::Service for Service {
|
|||
#[must_use]
|
||||
pub fn is_remote_server_forbidden(&self, server_name: &ServerName) -> bool {
|
||||
// We must never block federating with ourselves
|
||||
if server_name == self.services.server.config.server_name {
|
||||
if server_name == self.services.config.server_name {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if server is explicitly allowed
|
||||
if self
|
||||
.services
|
||||
.server
|
||||
.config
|
||||
.allowed_remote_server_names
|
||||
.is_match(server_name.host())
|
||||
|
@ -42,7 +47,6 @@ pub fn is_remote_server_forbidden(&self, server_name: &ServerName) -> bool {
|
|||
|
||||
// Check if server is explicitly forbidden
|
||||
self.services
|
||||
.server
|
||||
.config
|
||||
.forbidden_remote_server_names
|
||||
.is_match(server_name.host())
|
||||
|
@ -56,7 +60,6 @@ pub fn is_remote_server_room_directory_forbidden(&self, server_name: &ServerName
|
|||
self.is_remote_server_forbidden(server_name)
|
||||
|| self
|
||||
.services
|
||||
.server
|
||||
.config
|
||||
.forbidden_remote_room_directory_server_names
|
||||
.is_match(server_name.host())
|
||||
|
@ -70,7 +73,6 @@ pub fn is_remote_server_media_downloads_forbidden(&self, server_name: &ServerNam
|
|||
self.is_remote_server_forbidden(server_name)
|
||||
|| self
|
||||
.services
|
||||
.server
|
||||
.config
|
||||
.prevent_media_downloads_from
|
||||
.is_match(server_name.host())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue