Revision efe1cd5c
Added by Marc Dequènes about 15 years ago
- ID efe1cd5c890da81b4c93b1de0643ea67c5e4336d
bin/shadowwalker | ||
---|---|---|
begin
|
||
ActiveLdap::Base.setup_connection(config[:ldap])
|
||
|
||
config[:objects].each_pair do |obj_name, obj_data|
|
||
$ldapctl.load_object(obj_name, obj_data)
|
||
obj_config_dir = File.join(LdapShadows::Config::CFG_DIR, "objects")
|
||
obj_config_pattern = File.join(obj_config_dir, "**", "*.conf")
|
||
|
||
Dir.glob(obj_config_pattern).each do |f|
|
||
next if f[0..0] == "."
|
||
|
||
obj_name = File.basename(f).sub(".conf", "")
|
||
obj_config = YAML.load(IO.read(f))
|
||
obj_config.recursive_symbolize_keys!
|
||
|
||
$ldapctl.load_object(obj_name, obj_config)
|
||
end
|
||
|
||
$ldapctl.load_relations
|
||
rescue ActiveLdap::Error => e
|
||
STDERR.puts _("LDAP connection error: %s") % e.to_s
|
conf/ldap_shadows/objects/bot.conf | ||
---|---|---|
mapping:
|
||
dn_attribute: uid
|
||
prefix: ''
|
||
classes: ['bot']
|
||
sort_by: uid
|
||
presentation:
|
||
allowed_aspects: ['primary', 'mail', 'fs', 'shell', 'ftp', 'web', 'jabber']
|
||
hidden_attributes: ['uid']
|
||
expert_attributes: ['uidNumber', 'gidNumber', 'gecos']
|
conf/ldap_shadows/objects/domain.conf | ||
---|---|---|
mapping:
|
||
dn_attribute: cn
|
||
prefix: ''
|
||
classes: ['genericDomain']
|
||
sort_by: cn
|
||
presentation:
|
||
allowed_aspects: []
|
conf/ldap_shadows/objects/entity.conf | ||
---|---|---|
mapping:
|
||
dn_attribute: o
|
||
prefix: ''
|
||
classes: ['entity']
|
||
excluded_classes: ['dcObject']
|
||
sort_by: o
|
||
presentation:
|
||
name_attribute: o
|
||
hidden_attributes: ['founder']
|
||
associated_relations: ['foundersIndividuals', 'foundersEntities']
|
||
relations:
|
||
foundersIndividuals:
|
||
type: :has_many
|
||
object: individual
|
||
foreign_key: founder
|
||
primary_key: dn
|
||
foundersEntities:
|
||
type: :has_many
|
||
object: entity
|
||
foreign_key: founder
|
||
primary_key: dn
|
conf/ldap_shadows/objects/group.conf | ||
---|---|---|
mapping:
|
||
dn_attribute: cn
|
||
prefix: ''
|
||
classes: ['posixGroup', 'groupOfMembers']
|
||
sort_by: cn
|
||
presentation:
|
||
allowed_aspects: []
|
||
hidden_attributes: ['uniqueMember']
|
||
expert_attributes: ['gidNumber']
|
||
associated_relations: ['individualsPrimaryMembers', 'botsPrimaryMembers', 'individualsSecondaryMembers', 'botsSecondaryMembers']
|
||
relations:
|
||
individualsPrimaryMembers:
|
||
type: :belongs_to
|
||
object: individual
|
||
many: gidNumber
|
||
foreign_key: gidNumber
|
||
botsPrimaryMembers:
|
||
type: :belongs_to
|
||
object: bot
|
||
many: gidNumber
|
||
foreign_key: gidNumber
|
||
individualsSecondaryMembers:
|
||
type: :has_many
|
||
object: individual
|
||
foreign_key: uniqueMember
|
||
primary_key: dn
|
||
botsSecondaryMembers:
|
||
type: :has_many
|
||
object: bot
|
||
foreign_key: uniqueMember
|
||
primary_key: dn
|
conf/ldap_shadows/objects/individual.conf | ||
---|---|---|
mapping:
|
||
dn_attribute: uid
|
||
prefix: ''
|
||
classes: ['individual']
|
||
sort_by: uid
|
||
presentation:
|
||
allowed_aspects: ['primary', 'mail', 'fs', 'shell', 'ftp', 'web', 'jabber']
|
||
hidden_attributes: ['uid']
|
||
expert_attributes: ['uidNumber', 'gidNumber', 'gecos']
|
conf/ldap_shadows/objects/secondary_account.conf | ||
---|---|---|
mapping:
|
||
dn_attribute: uid
|
||
prefix: ''
|
||
classes: ['secondaryAccount']
|
||
sort_by: uid
|
||
presentation:
|
||
allowed_aspects: ['mail', 'fs', 'shell', 'ftp', 'web', 'jabber']
|
conf/ldap_shadows/objects/system_account.conf | ||
---|---|---|
mapping:
|
||
dn_attribute: uid
|
||
prefix: ''
|
||
classes: ['systemAccount']
|
||
sort_by: uid
|
||
presentation:
|
||
allowed_aspects: ['mail', 'fs', 'shell', 'ftp', 'web', 'jabber']
|
conf/ldap_shadows/objects/unit.conf | ||
---|---|---|
mapping:
|
||
dn_attribute: ou
|
||
prefix: ''
|
||
classes: ['organizationalUnit']
|
||
# no sort_by means sort by DN
|
||
presentation:
|
||
name_attribute: dn
|
conf/ldap_shadows/test.conf | ||
---|---|---|
presentation:
|
||
hidden_attributes: ['objectClass', 'userPassword', 'hasSubordinates', 'entryUUID', 'entryDN', 'structuralObjectClass', 'subschemaSubentry']
|
||
tree_objects: ['unit', 'entity']
|
||
objects:
|
||
bot:
|
||
mapping:
|
||
dn_attribute: uid
|
||
prefix: ''
|
||
classes: ['bot']
|
||
sort_by: uid
|
||
presentation:
|
||
allowed_aspects: ['primary', 'mail', 'fs', 'shell', 'ftp', 'web', 'jabber']
|
||
hidden_attributes: ['uid']
|
||
expert_attributes: ['uidNumber', 'gidNumber', 'gecos']
|
||
individual:
|
||
mapping:
|
||
dn_attribute: uid
|
||
prefix: ''
|
||
classes: ['individual']
|
||
sort_by: uid
|
||
presentation:
|
||
allowed_aspects: ['primary', 'mail', 'fs', 'shell', 'ftp', 'web', 'jabber']
|
||
hidden_attributes: ['uid']
|
||
expert_attributes: ['uidNumber', 'gidNumber', 'gecos']
|
||
group:
|
||
mapping:
|
||
dn_attribute: cn
|
||
prefix: ''
|
||
classes: ['posixGroup', 'groupOfMembers']
|
||
sort_by: cn
|
||
presentation:
|
||
allowed_aspects: []
|
||
hidden_attributes: ['uniqueMember']
|
||
expert_attributes: ['gidNumber']
|
||
associated_relations: ['individualsPrimaryMembers', 'botsPrimaryMembers', 'individualsSecondaryMembers', 'botsSecondaryMembers']
|
||
relations:
|
||
individualsPrimaryMembers:
|
||
type: :belongs_to
|
||
object: individual
|
||
many: gidNumber
|
||
foreign_key: gidNumber
|
||
botsPrimaryMembers:
|
||
type: :belongs_to
|
||
object: bot
|
||
many: gidNumber
|
||
foreign_key: gidNumber
|
||
individualsSecondaryMembers:
|
||
type: :has_many
|
||
object: individual
|
||
foreign_key: uniqueMember
|
||
primary_key: dn
|
||
botsSecondaryMembers:
|
||
type: :has_many
|
||
object: bot
|
||
foreign_key: uniqueMember
|
||
primary_key: dn
|
||
entity:
|
||
mapping:
|
||
dn_attribute: o
|
||
prefix: ''
|
||
classes: ['entity']
|
||
excluded_classes: ['dcObject']
|
||
sort_by: o
|
||
presentation:
|
||
name_attribute: o
|
||
hidden_attributes: ['founder']
|
||
associated_relations: ['foundersIndividuals', 'foundersEntities']
|
||
relations:
|
||
foundersIndividuals:
|
||
type: :has_many
|
||
object: individual
|
||
foreign_key: founder
|
||
primary_key: dn
|
||
foundersEntities:
|
||
type: :has_many
|
||
object: entity
|
||
foreign_key: founder
|
||
primary_key: dn
|
||
unit:
|
||
mapping:
|
||
dn_attribute: ou
|
||
prefix: ''
|
||
classes: ['organizationalUnit']
|
||
# no sort_by means sort by DN
|
||
presentation:
|
||
name_attribute: dn
|
||
secondary_account:
|
||
mapping:
|
||
dn_attribute: uid
|
||
prefix: ''
|
||
classes: ['secondaryAccount']
|
||
sort_by: uid
|
||
presentation:
|
||
allowed_aspects: ['mail', 'fs', 'shell', 'ftp', 'web', 'jabber']
|
||
system_account:
|
||
mapping:
|
||
dn_attribute: uid
|
||
prefix: ''
|
||
classes: ['systemAccount']
|
||
sort_by: uid
|
||
presentation:
|
||
allowed_aspects: ['mail', 'fs', 'shell', 'ftp', 'web', 'jabber']
|
||
domain:
|
||
mapping:
|
||
dn_attribute: cn
|
||
prefix: ''
|
||
classes: ['genericDomain']
|
||
sort_by: cn
|
||
presentation:
|
||
allowed_aspects: []
|
||
aspects:
|
||
mail:
|
||
mapping:
|
Also available in: Unified diff
[evol] improve config #1 (objects+relations config is separated)