From d854ace89f507661cdd7e5bfd11a6863fcf694d3 Mon Sep 17 00:00:00 2001 From: Simon Broeng Jensen Date: Wed, 5 Feb 2025 09:11:27 +0100 Subject: [PATCH] domain-model: move domain::model module to separate crate --- Cargo.lock | 20 ++++++++ Cargo.toml | 1 + crates/domain-model/Cargo.toml | 50 +++++++++++++++++++ .../domain-model/src}/error.rs | 0 crates/domain-model/src/lib.rs | 2 + .../domain-model/src}/model/deserialize.rs | 6 +-- .../src}/model/group_attribute_schema.rs | 0 .../src}/model/group_attributes.rs | 0 .../src}/model/group_object_classes.rs | 0 .../domain-model/src}/model/groups.rs | 0 .../src}/model/jwt_refresh_storage.rs | 0 .../domain-model/src}/model/jwt_storage.rs | 0 .../domain-model/src}/model/memberships.rs | 0 .../domain-model/src}/model/mod.rs | 2 +- .../src}/model/password_reset_tokens.rs | 0 .../domain-model/src}/model/prelude.rs | 0 .../src}/model/user_attribute_schema.rs | 0 .../src}/model/user_attributes.rs | 0 .../src}/model/user_object_classes.rs | 0 .../domain-model/src}/model/users.rs | 0 server/Cargo.toml | 3 ++ server/src/domain/handler.rs | 2 +- server/src/domain/ldap/user.rs | 2 +- server/src/domain/ldap/utils.rs | 2 +- server/src/domain/mod.rs | 2 - server/src/domain/opaque_handler.rs | 2 +- .../src/domain/sql_group_backend_handler.rs | 6 ++- server/src/domain/sql_opaque_handler.rs | 6 ++- .../src/domain/sql_schema_backend_handler.rs | 6 ++- server/src/domain/sql_user_backend_handler.rs | 11 ++-- server/src/infra/access_control.rs | 2 +- server/src/infra/auth_service.rs | 3 +- server/src/infra/db_cleaner.rs | 8 +-- server/src/infra/graphql/query.rs | 2 +- server/src/infra/ldap_handler.rs | 12 +++-- server/src/infra/sql_backend_handler.rs | 10 ++-- server/src/infra/tcp_backend_handler.rs | 2 +- server/src/infra/tcp_server.rs | 2 +- server/src/infra/test_utils.rs | 3 +- 39 files changed, 125 insertions(+), 42 deletions(-) create mode 100644 crates/domain-model/Cargo.toml rename {server/src/domain => crates/domain-model/src}/error.rs (100%) create mode 100644 crates/domain-model/src/lib.rs rename {server/src/domain => crates/domain-model/src}/model/deserialize.rs (94%) rename {server/src/domain => crates/domain-model/src}/model/group_attribute_schema.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/group_attributes.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/group_object_classes.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/groups.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/jwt_refresh_storage.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/jwt_storage.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/memberships.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/mod.rs (92%) rename {server/src/domain => crates/domain-model/src}/model/password_reset_tokens.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/prelude.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/user_attribute_schema.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/user_attributes.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/user_object_classes.rs (100%) rename {server/src/domain => crates/domain-model/src}/model/users.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 707c64f..09c4b03 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2536,6 +2536,7 @@ dependencies = [ "lettre", "lldap_auth", "lldap_domain", + "lldap_domain_model", "lldap_validation", "log", "mockall", @@ -2644,6 +2645,25 @@ dependencies = [ "uuid 1.11.0", ] +[[package]] +name = "lldap_domain_model" +version = "0.1.0" +dependencies = [ + "base64 0.21.7", + "bincode", + "chrono", + "derive_more 1.0.0", + "lldap_auth", + "lldap_domain", + "orion", + "pretty_assertions", + "sea-orm", + "serde", + "serde_bytes", + "thiserror", + "uuid 1.11.0", +] + [[package]] name = "lldap_migration_tool" version = "0.4.2" diff --git a/Cargo.toml b/Cargo.toml index 9b1ad3c..36c1ecf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ members = [ "crates/auth", "crates/domain", + "crates/domain-model", "crates/validation", "server", "app", diff --git a/crates/domain-model/Cargo.toml b/crates/domain-model/Cargo.toml new file mode 100644 index 0000000..1e35938 --- /dev/null +++ b/crates/domain-model/Cargo.toml @@ -0,0 +1,50 @@ +[package] +authors = ["Valentin Tolmer "] +name = "lldap_domain_model" +version = "0.1.0" +edition = "2021" + +[features] +test = [] + +[dependencies] +base64 = "0.21" +bincode = "1.3" +orion = "0.17" +serde = "1" +serde_bytes = "0.11" +thiserror = "1" + +[dev-dependencies] +pretty_assertions = "1" + +[dependencies.chrono] +features = ["serde"] +version = "0.4" + +[dependencies.derive_more] +features = ["debug", "display", "from", "from_str"] +default-features = false +version = "1" + +[dependencies.lldap_auth] +path = "../auth" +features = ["opaque_server", "opaque_client", "sea_orm"] + +[dependencies.lldap_domain] +path = "../domain" + +[dependencies.sea-orm] +version = "0.12" +default-features = false +features = [ + "macros", + "with-chrono", + "with-uuid", + "sqlx-all", + "runtime-actix-rustls", +] + +[dependencies.uuid] +features = ["v1", "v3"] +version = "1" diff --git a/server/src/domain/error.rs b/crates/domain-model/src/error.rs similarity index 100% rename from server/src/domain/error.rs rename to crates/domain-model/src/error.rs diff --git a/crates/domain-model/src/lib.rs b/crates/domain-model/src/lib.rs new file mode 100644 index 0000000..3849a7b --- /dev/null +++ b/crates/domain-model/src/lib.rs @@ -0,0 +1,2 @@ +pub mod error; +pub mod model; diff --git a/server/src/domain/model/deserialize.rs b/crates/domain-model/src/model/deserialize.rs similarity index 94% rename from server/src/domain/model/deserialize.rs rename to crates/domain-model/src/model/deserialize.rs index 5584000..8c29ada 100644 --- a/server/src/domain/model/deserialize.rs +++ b/crates/domain-model/src/model/deserialize.rs @@ -1,4 +1,4 @@ -use crate::domain::error::DomainError; +use crate::error::DomainError; use lldap_domain::{ schema::AttributeList, types::{Attribute, AttributeName, AttributeType, AttributeValue, Cardinality, Serialized}, @@ -6,7 +6,7 @@ use lldap_domain::{ // Value must be a serialized attribute value of the type denoted by typ, // and either a singleton or unbounded list, depending on is_list. -pub(crate) fn deserialize_attribute_value( +pub fn deserialize_attribute_value( value: &Serialized, typ: AttributeType, is_list: bool, @@ -39,7 +39,7 @@ pub(crate) fn deserialize_attribute_value( } } -pub(crate) fn deserialize_attribute( +pub fn deserialize_attribute( name: AttributeName, value: &Serialized, schema: &AttributeList, diff --git a/server/src/domain/model/group_attribute_schema.rs b/crates/domain-model/src/model/group_attribute_schema.rs similarity index 100% rename from server/src/domain/model/group_attribute_schema.rs rename to crates/domain-model/src/model/group_attribute_schema.rs diff --git a/server/src/domain/model/group_attributes.rs b/crates/domain-model/src/model/group_attributes.rs similarity index 100% rename from server/src/domain/model/group_attributes.rs rename to crates/domain-model/src/model/group_attributes.rs diff --git a/server/src/domain/model/group_object_classes.rs b/crates/domain-model/src/model/group_object_classes.rs similarity index 100% rename from server/src/domain/model/group_object_classes.rs rename to crates/domain-model/src/model/group_object_classes.rs diff --git a/server/src/domain/model/groups.rs b/crates/domain-model/src/model/groups.rs similarity index 100% rename from server/src/domain/model/groups.rs rename to crates/domain-model/src/model/groups.rs diff --git a/server/src/domain/model/jwt_refresh_storage.rs b/crates/domain-model/src/model/jwt_refresh_storage.rs similarity index 100% rename from server/src/domain/model/jwt_refresh_storage.rs rename to crates/domain-model/src/model/jwt_refresh_storage.rs diff --git a/server/src/domain/model/jwt_storage.rs b/crates/domain-model/src/model/jwt_storage.rs similarity index 100% rename from server/src/domain/model/jwt_storage.rs rename to crates/domain-model/src/model/jwt_storage.rs diff --git a/server/src/domain/model/memberships.rs b/crates/domain-model/src/model/memberships.rs similarity index 100% rename from server/src/domain/model/memberships.rs rename to crates/domain-model/src/model/memberships.rs diff --git a/server/src/domain/model/mod.rs b/crates/domain-model/src/model/mod.rs similarity index 92% rename from server/src/domain/model/mod.rs rename to crates/domain-model/src/model/mod.rs index 2ac6b04..e22ce9a 100644 --- a/server/src/domain/model/mod.rs +++ b/crates/domain-model/src/model/mod.rs @@ -1,6 +1,6 @@ pub mod prelude; -pub(crate) mod deserialize; +pub mod deserialize; pub mod groups; pub mod jwt_refresh_storage; pub mod jwt_storage; diff --git a/server/src/domain/model/password_reset_tokens.rs b/crates/domain-model/src/model/password_reset_tokens.rs similarity index 100% rename from server/src/domain/model/password_reset_tokens.rs rename to crates/domain-model/src/model/password_reset_tokens.rs diff --git a/server/src/domain/model/prelude.rs b/crates/domain-model/src/model/prelude.rs similarity index 100% rename from server/src/domain/model/prelude.rs rename to crates/domain-model/src/model/prelude.rs diff --git a/server/src/domain/model/user_attribute_schema.rs b/crates/domain-model/src/model/user_attribute_schema.rs similarity index 100% rename from server/src/domain/model/user_attribute_schema.rs rename to crates/domain-model/src/model/user_attribute_schema.rs diff --git a/server/src/domain/model/user_attributes.rs b/crates/domain-model/src/model/user_attributes.rs similarity index 100% rename from server/src/domain/model/user_attributes.rs rename to crates/domain-model/src/model/user_attributes.rs diff --git a/server/src/domain/model/user_object_classes.rs b/crates/domain-model/src/model/user_object_classes.rs similarity index 100% rename from server/src/domain/model/user_object_classes.rs rename to crates/domain-model/src/model/user_object_classes.rs diff --git a/server/src/domain/model/users.rs b/crates/domain-model/src/model/users.rs similarity index 100% rename from server/src/domain/model/users.rs rename to crates/domain-model/src/model/users.rs diff --git a/server/Cargo.toml b/server/Cargo.toml index e3f6d46..42b5231 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -91,6 +91,9 @@ path = "../crates/domain" path = "../crates/domain" features = ["test"] +[dependencies.lldap_domain_model] +path = "../crates/domain-model" + [dependencies.lldap_validation] path = "../crates/validation" diff --git a/server/src/domain/handler.rs b/server/src/domain/handler.rs index d9f122c..9b0cbff 100644 --- a/server/src/domain/handler.rs +++ b/server/src/domain/handler.rs @@ -1,4 +1,3 @@ -use crate::domain::{error::Result, model::UserColumn}; use async_trait::async_trait; use lldap_domain::{ requests::{ @@ -11,6 +10,7 @@ use lldap_domain::{ User, UserAndGroups, UserId, Uuid, }, }; +use lldap_domain_model::{error::Result, model::UserColumn}; use serde::{Deserialize, Serialize}; use std::collections::HashSet; diff --git a/server/src/domain/ldap/user.rs b/server/src/domain/ldap/user.rs index e9aa4e6..300867f 100644 --- a/server/src/domain/ldap/user.rs +++ b/server/src/domain/ldap/user.rs @@ -16,12 +16,12 @@ use crate::domain::{ LdapInfo, UserFieldType, }, }, - model::UserColumn, schema::PublicSchema, }; use lldap_domain::types::{ AttributeName, AttributeType, GroupDetails, LdapObjectClass, User, UserAndGroups, UserId, }; +use lldap_domain_model::model::UserColumn; pub fn get_user_attribute( user: &User, diff --git a/server/src/domain/ldap/utils.rs b/server/src/domain/ldap/utils.rs index 4d06da8..55ac497 100644 --- a/server/src/domain/ldap/utils.rs +++ b/server/src/domain/ldap/utils.rs @@ -7,7 +7,6 @@ use tracing::{debug, instrument, warn}; use crate::domain::{ handler::SubStringFilter, ldap::error::{LdapError, LdapResult}, - model::UserColumn, schema::PublicSchema, }; use lldap_domain::types::{ @@ -29,6 +28,7 @@ impl From for SubStringFilter { } } } +use lldap_domain_model::model::UserColumn; fn make_dn_pair(mut iter: I) -> LdapResult<(String, String)> where diff --git a/server/src/domain/mod.rs b/server/src/domain/mod.rs index 80e5857..3d5ea11 100644 --- a/server/src/domain/mod.rs +++ b/server/src/domain/mod.rs @@ -1,8 +1,6 @@ pub mod deserialize; -pub mod error; pub mod handler; pub mod ldap; -pub mod model; pub mod opaque_handler; pub mod schema; pub mod sql_backend_handler; diff --git a/server/src/domain/opaque_handler.rs b/server/src/domain/opaque_handler.rs index 7e1cd1c..e8a7e58 100644 --- a/server/src/domain/opaque_handler.rs +++ b/server/src/domain/opaque_handler.rs @@ -1,6 +1,6 @@ -use crate::domain::error::Result; use async_trait::async_trait; use lldap_domain::types::UserId; +use lldap_domain_model::error::Result; pub use lldap_auth::{login, registration}; diff --git a/server/src/domain/sql_group_backend_handler.rs b/server/src/domain/sql_group_backend_handler.rs index 31dc49c..f2d0ccc 100644 --- a/server/src/domain/sql_group_backend_handler.rs +++ b/server/src/domain/sql_group_backend_handler.rs @@ -1,8 +1,6 @@ use crate::{ domain::{ - error::{DomainError, Result}, handler::{GroupBackendHandler, GroupListerBackendHandler, GroupRequestFilter}, - model::{self, deserialize, GroupColumn, MembershipColumn}, sql_backend_handler::SqlBackendHandler, }, infra::access_control::UserReadableBackendHandler, @@ -12,6 +10,10 @@ use lldap_domain::{ requests::{CreateGroupRequest, UpdateGroupRequest}, types::{AttributeName, Group, GroupDetails, GroupId, Serialized, Uuid}, }; +use lldap_domain_model::{ + error::{DomainError, Result}, + model::{self, deserialize, GroupColumn, MembershipColumn}, +}; use sea_orm::{ sea_query::{Alias, Cond, Expr, Func, IntoCondition, OnConflict, SimpleExpr}, ActiveModelTrait, ColumnTrait, DatabaseTransaction, EntityTrait, QueryFilter, QueryOrder, diff --git a/server/src/domain/sql_opaque_handler.rs b/server/src/domain/sql_opaque_handler.rs index 14c6d30..ee5487b 100644 --- a/server/src/domain/sql_opaque_handler.rs +++ b/server/src/domain/sql_opaque_handler.rs @@ -1,7 +1,5 @@ use super::{ - error::{DomainError, Result}, handler::{BindRequest, LoginHandler}, - model::{self, UserColumn}, opaque_handler::{login, registration, OpaqueHandler}, sql_backend_handler::SqlBackendHandler, }; @@ -9,6 +7,10 @@ use async_trait::async_trait; use base64::Engine; use lldap_auth::opaque; use lldap_domain::types::UserId; +use lldap_domain_model::{ + error::{DomainError, Result}, + model::{self, UserColumn}, +}; use sea_orm::{ActiveModelTrait, ActiveValue, EntityTrait, QuerySelect}; use secstr::SecUtf8; use tracing::{debug, info, instrument, warn}; diff --git a/server/src/domain/sql_schema_backend_handler.rs b/server/src/domain/sql_schema_backend_handler.rs index f4115f2..84bc8d2 100644 --- a/server/src/domain/sql_schema_backend_handler.rs +++ b/server/src/domain/sql_schema_backend_handler.rs @@ -1,7 +1,5 @@ use crate::domain::{ - error::{DomainError, Result}, handler::{ReadSchemaBackendHandler, SchemaBackendHandler}, - model, sql_backend_handler::SqlBackendHandler, }; use async_trait::async_trait; @@ -10,6 +8,10 @@ use lldap_domain::{ schema::{AttributeList, AttributeSchema, Schema}, types::{AttributeName, LdapObjectClass}, }; +use lldap_domain_model::{ + error::{DomainError, Result}, + model, +}; use sea_orm::{ ActiveModelTrait, DatabaseTransaction, EntityTrait, QueryOrder, Set, TransactionTrait, }; diff --git a/server/src/domain/sql_user_backend_handler.rs b/server/src/domain/sql_user_backend_handler.rs index 7a2ede7..a07fee2 100644 --- a/server/src/domain/sql_user_backend_handler.rs +++ b/server/src/domain/sql_user_backend_handler.rs @@ -1,9 +1,7 @@ use crate::domain::{ - error::{DomainError, Result}, handler::{ ReadSchemaBackendHandler, UserBackendHandler, UserListerBackendHandler, UserRequestFilter, }, - model::{self, deserialize, GroupColumn, UserColumn}, sql_backend_handler::SqlBackendHandler, }; use async_trait::async_trait; @@ -11,6 +9,10 @@ use lldap_domain::{ requests::{CreateUserRequest, UpdateUserRequest}, types::{AttributeName, GroupDetails, GroupId, Serialized, User, UserAndGroups, UserId, Uuid}, }; +use lldap_domain_model::{ + error::{DomainError, Result}, + model::{self, deserialize, GroupColumn, UserColumn}, +}; use sea_orm::{ sea_query::{ query::OnConflict, Alias, Cond, Expr, Func, IntoColumnRef, IntoCondition, SimpleExpr, @@ -414,10 +416,9 @@ impl UserBackendHandler for SqlBackendHandler { #[cfg(test)] mod tests { use super::*; - use crate::domain::{ - handler::SubStringFilter, model::UserColumn, sql_backend_handler::tests::*, - }; + use crate::domain::{handler::SubStringFilter, sql_backend_handler::tests::*}; use lldap_domain::types::{Attribute, JpegPhoto}; + use lldap_domain_model::model::UserColumn; use pretty_assertions::{assert_eq, assert_ne}; #[tokio::test] diff --git a/server/src/infra/access_control.rs b/server/src/infra/access_control.rs index 312fb19..f1585a3 100644 --- a/server/src/infra/access_control.rs +++ b/server/src/infra/access_control.rs @@ -4,7 +4,6 @@ use async_trait::async_trait; use tracing::info; use crate::domain::{ - error::Result, handler::{ BackendHandler, GroupBackendHandler, GroupListerBackendHandler, GroupRequestFilter, ReadSchemaBackendHandler, SchemaBackendHandler, UserBackendHandler, @@ -23,6 +22,7 @@ use lldap_domain::{ UserAndGroups, UserId, }, }; +use lldap_domain_model::error::Result; #[derive(Clone, Copy, PartialEq, Eq, Debug)] pub enum Permission { diff --git a/server/src/infra/auth_service.rs b/server/src/infra/auth_service.rs index 8846418..921b002 100644 --- a/server/src/infra/auth_service.rs +++ b/server/src/infra/auth_service.rs @@ -23,12 +23,11 @@ use tracing::{debug, info, instrument, warn}; use lldap_auth::{login, password_reset, registration, JWTClaims}; use lldap_domain::types::{GroupDetails, GroupName, UserId}; +use lldap_domain_model::{error::DomainError, model::UserColumn}; use crate::{ domain::{ - error::DomainError, handler::{BackendHandler, BindRequest, LoginHandler, UserRequestFilter}, - model::UserColumn, opaque_handler::OpaqueHandler, }, infra::{ diff --git a/server/src/infra/db_cleaner.rs b/server/src/infra/db_cleaner.rs index 3dd772e..b5d3c00 100644 --- a/server/src/infra/db_cleaner.rs +++ b/server/src/infra/db_cleaner.rs @@ -1,9 +1,9 @@ -use crate::domain::{ - model::{self, JwtRefreshStorageColumn, JwtStorageColumn, PasswordResetTokensColumn}, - sql_tables::DbConnection, -}; +use crate::domain::sql_tables::DbConnection; use actix::prelude::{Actor, AsyncContext, Context}; use cron::Schedule; +use lldap_domain_model::model::{ + self, JwtRefreshStorageColumn, JwtStorageColumn, PasswordResetTokensColumn, +}; use sea_orm::{ColumnTrait, EntityTrait, QueryFilter}; use std::{str::FromStr, time::Duration}; use tracing::{error, info, instrument}; diff --git a/server/src/infra/graphql/query.rs b/server/src/infra/graphql/query.rs index f30f8a2..eb2059b 100644 --- a/server/src/infra/graphql/query.rs +++ b/server/src/infra/graphql/query.rs @@ -5,7 +5,6 @@ use crate::{ deserialize::deserialize_attribute_value, handler::{BackendHandler, ReadSchemaBackendHandler}, ldap::utils::{map_user_field, UserFieldType}, - model::UserColumn, schema::PublicSchema, }, infra::{ @@ -19,6 +18,7 @@ use juniper::{graphql_object, FieldResult, GraphQLInputObject}; use lldap_domain::types::{ AttributeType, Cardinality, GroupDetails, GroupId, LdapObjectClass, UserId, }; +use lldap_domain_model::model::UserColumn; use serde::{Deserialize, Serialize}; use tracing::{debug, debug_span, Instrument, Span}; diff --git a/server/src/infra/ldap_handler.rs b/server/src/infra/ldap_handler.rs index b161354..636986b 100644 --- a/server/src/infra/ldap_handler.rs +++ b/server/src/infra/ldap_handler.rs @@ -926,16 +926,18 @@ mod tests { use super::*; use crate::{ domain::handler::*, - domain::model::UserColumn, infra::test_utils::{setup_default_schema, MockTestBackendHandler}, }; use chrono::TimeZone; use ldap3_proto::proto::{ LdapDerefAliases, LdapSearchScope, LdapSubstringFilter, LdapWhoamiRequest, }; - use lldap_domain::schema::{AttributeList, AttributeSchema, Schema}; - use lldap_domain::types::*; - use lldap_domain::uuid; + use lldap_domain::{ + schema::{AttributeList, AttributeSchema, Schema}, + types::*, + uuid, + }; + use lldap_domain_model::model::UserColumn; use mockall::predicate::eq; use pretty_assertions::assert_eq; use std::collections::HashSet; @@ -1854,7 +1856,7 @@ mod tests { ])))) .times(1) .return_once(|_| { - Err(crate::domain::error::DomainError::InternalError( + Err(lldap_domain_model::error::DomainError::InternalError( "Error getting groups".to_string(), )) }); diff --git a/server/src/infra/sql_backend_handler.rs b/server/src/infra/sql_backend_handler.rs index 17b20cd..7d8620f 100644 --- a/server/src/infra/sql_backend_handler.rs +++ b/server/src/infra/sql_backend_handler.rs @@ -1,12 +1,12 @@ use super::tcp_backend_handler::TcpBackendHandler; -use crate::domain::{ - error::*, - model::{self, JwtRefreshStorageColumn, JwtStorageColumn, PasswordResetTokensColumn}, - sql_backend_handler::SqlBackendHandler, -}; +use crate::domain::sql_backend_handler::SqlBackendHandler; use async_trait::async_trait; use chrono::NaiveDateTime; use lldap_domain::types::UserId; +use lldap_domain_model::{ + error::*, + model::{self, JwtRefreshStorageColumn, JwtStorageColumn, PasswordResetTokensColumn}, +}; use sea_orm::{ sea_query::{Cond, Expr}, ActiveModelTrait, ColumnTrait, EntityTrait, IntoActiveModel, QueryFilter, QuerySelect, diff --git a/server/src/infra/tcp_backend_handler.rs b/server/src/infra/tcp_backend_handler.rs index c185b5f..e146951 100644 --- a/server/src/infra/tcp_backend_handler.rs +++ b/server/src/infra/tcp_backend_handler.rs @@ -2,8 +2,8 @@ use async_trait::async_trait; use chrono::NaiveDateTime; use std::collections::HashSet; -use crate::domain::error::Result; use lldap_domain::types::UserId; +use lldap_domain_model::error::Result; #[async_trait] pub trait TcpBackendHandler: Sync { diff --git a/server/src/infra/tcp_server.rs b/server/src/infra/tcp_server.rs index 7699e23..0e6f1b7 100644 --- a/server/src/infra/tcp_server.rs +++ b/server/src/infra/tcp_server.rs @@ -1,6 +1,5 @@ use crate::{ domain::{ - error::DomainError, handler::{BackendHandler, LoginHandler}, opaque_handler::OpaqueHandler, }, @@ -19,6 +18,7 @@ use actix_service::map_config; use actix_web::{dev::AppConfig, guard, web, App, HttpResponse, Responder}; use anyhow::{Context, Result}; use hmac::Hmac; +use lldap_domain_model::error::DomainError; use sha2::Sha512; use std::collections::HashSet; use std::path::PathBuf; diff --git a/server/src/infra/test_utils.rs b/server/src/infra/test_utils.rs index 6d5b588..abd6dcc 100644 --- a/server/src/infra/test_utils.rs +++ b/server/src/infra/test_utils.rs @@ -1,4 +1,4 @@ -use crate::domain::{error::Result, handler::*, opaque_handler::*}; +use crate::domain::{handler::*, opaque_handler::*}; use lldap_domain::{ requests::{ CreateAttributeRequest, CreateGroupRequest, CreateUserRequest, UpdateGroupRequest, @@ -7,6 +7,7 @@ use lldap_domain::{ schema::{AttributeList, AttributeSchema, Schema}, types::*, }; +use lldap_domain_model::error::Result; use async_trait::async_trait; use std::collections::HashSet;