completed schema layout
This commit is contained in:
parent
7b5123df16
commit
9f7a0c8625
|
|
@ -6,15 +6,18 @@
|
|||
#include "matador/utils/base_class.hpp"
|
||||
|
||||
namespace work::models::admin {
|
||||
struct LdapUserDirectory;
|
||||
|
||||
struct LdapGroupSchemaSettings : core::Model {
|
||||
std::string group_object_filter;
|
||||
std::string user_member_attribute;
|
||||
matador::object::object_ptr<LdapUserDirectory> ldap_user_directory;
|
||||
|
||||
template<typename Operator>
|
||||
void process( Operator& op ) {
|
||||
namespace field = matador::access;
|
||||
field::process( op, *matador::base_class<Model>( this ) );
|
||||
field::has_one(op, "ldap_user_directory", ldap_user_directory, matador::utils::default_foreign_attributes);
|
||||
field::attribute( op, "group_object_filter", group_object_filter, 511 );
|
||||
field::attribute( op, "user_member_attribute", user_member_attribute, 511 );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,16 +6,19 @@
|
|||
#include "matador/utils/base_class.hpp"
|
||||
|
||||
namespace work::models::admin {
|
||||
struct LdapUserDirectory;
|
||||
|
||||
struct LdapImportSettings : core::Model {
|
||||
std::string default_role;
|
||||
unsigned int sync_interval;
|
||||
unsigned int network_timeout;
|
||||
matador::object::object_ptr<LdapUserDirectory> ldap_user_directory;
|
||||
|
||||
template<typename Operator>
|
||||
void process( Operator& op ) {
|
||||
namespace field = matador::access;
|
||||
field::process( op, *matador::base_class<Model>( this ) );
|
||||
field::has_one(op, "ldap_user_directory", ldap_user_directory, matador::utils::default_foreign_attributes);
|
||||
field::attribute( op, "default_role", default_role, 511 );
|
||||
field::attribute( op, "sync_interval", sync_interval );
|
||||
field::attribute( op, "network_timeout", network_timeout );
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
#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"
|
||||
|
|
@ -13,14 +16,24 @@ 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 );
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,22 +5,26 @@
|
|||
|
||||
#include "matador/utils/base_class.hpp"
|
||||
|
||||
|
||||
namespace work::models::admin {
|
||||
struct LdapUserDirectory;
|
||||
|
||||
struct LdapUserSchemaSettings : core::Model {
|
||||
std::string user_object_filter;
|
||||
std::string user_unique_id_attribute;
|
||||
std::string user_member_of_attribute;
|
||||
std::string user_name_attribute;
|
||||
matador::object::object_ptr<LdapUserDirectory> ldap_user_directory;
|
||||
|
||||
template<typename Operator>
|
||||
void process( Operator& op ) {
|
||||
namespace field = matador::access;
|
||||
field::process( op, *matador::base_class<Model>( this ) );
|
||||
field::attribute( op, "user_object_filter", user_object_filter, 511 );
|
||||
field::attribute( op, "user_unique_id_attribute", user_unique_id_attribute, 511 );
|
||||
field::attribute( op, "user_member_of_attribute", user_member_of_attribute, 511 );
|
||||
field::attribute( op, "user_name_attribute", user_name_attribute, 511 );
|
||||
field::process(op, *matador::base_class<Model>( this ));
|
||||
field::has_one(op, "ldap_user_directory", ldap_user_directory, matador::utils::default_foreign_attributes);
|
||||
field::attribute(op, "user_object_filter", user_object_filter, 511);
|
||||
field::attribute(op, "user_unique_id_attribute", user_unique_id_attribute, 511);
|
||||
field::attribute(op, "user_member_of_attribute", user_member_of_attribute, 511);
|
||||
field::attribute(op, "user_name_attribute", user_name_attribute, 511);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue