#ifndef LDAP_USER_DIRECTORY_HPP #define LDAP_USER_DIRECTORY_HPP #include "LdapUserSchemaSettings.hpp" #include "LdapGroupSchemaSettings.hpp" #include "LdapImportSettings.hpp" #include "UserDirectory.hpp" #include "matador/object/collection.hpp" #include "matador/object/object_ptr.hpp" #include "matador/utils/base_class.hpp" namespace work::models::admin { struct LdapUserDirectory : UserDirectory { std::string schema_base_dn; std::string additional_user_base_dn; std::string additional_group_base_dn; matador::object::object_ptr user_schema_settings; matador::object::object_ptr group_schema_settings; matador::object::object_ptr import_settings; matador::object::collection users; matador::object::collection groups; template void process( Operator& op ) { namespace field = matador::access; field::process( op, *matador::base_class( this ) ); field::attribute( op, "schema_base_dn", schema_base_dn, 511 ); field::attribute( op, "additional_user_base_dn", additional_user_base_dn, 511 ); field::attribute( op, "additional_group_base_dn", additional_group_base_dn, 511 ); field::belongs_to( op, "user_schema_settings", user_schema_settings, matador::utils::default_foreign_attributes ); field::belongs_to( op, "group_schema_settings", group_schema_settings, matador::utils::default_foreign_attributes ); field::belongs_to( op, "import_settings", import_settings, matador::utils::default_foreign_attributes ); field::has_many( op, "ldap_users", users, "users_id", matador::utils::default_foreign_attributes ); field::has_many( op, "ldap_groups", groups, "groups_id", matador::utils::default_foreign_attributes ); } }; } #endif //LDAP_USER_DIRECTORY_HPP