42 lines
1.9 KiB
C++
42 lines
1.9 KiB
C++
#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<LdapUserSchemaSettings> user_schema_settings;
|
|
matador::object::object_ptr<LdapGroupSchemaSettings> group_schema_settings;
|
|
matador::object::object_ptr<LdapImportSettings> import_settings;
|
|
matador::object::collection<std::string> users;
|
|
matador::object::collection<std::string> groups;
|
|
|
|
template<typename Operator>
|
|
void process( Operator& op ) {
|
|
namespace field = matador::access;
|
|
field::process( op, *matador::base_class<UserDirectory>( 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
|