Revision c5ae937c
Added by Marc Dequènes about 15 years ago
- ID c5ae937cec7230cec232bb772e3347f7e6ee333b
data/ldap_shadows/schema/object.yaml | ||
---|---|---|
---
|
||
type: map
|
||
mapping:
|
||
"mapping":
|
||
type: map
|
||
required: yes
|
||
mapping:
|
||
=:
|
||
type: str
|
||
"presentation":
|
||
type: map
|
||
mapping:
|
||
"allowed_aspects":
|
||
type: seq
|
||
sequence:
|
||
- type: str
|
||
"hidden_attributes":
|
||
type: seq
|
||
sequence:
|
||
- type: str
|
||
"expert_attributes":
|
||
type: seq
|
||
sequence:
|
||
- type: str
|
||
|
lib/ldap_shadows/controller.rb | ||
---|---|---|
$KCODE = 'UTF8'
|
||
require 'jcode'
|
||
require 'active_ldap'
|
||
require 'kwalify'
|
||
require 'ldap_shadows/activeldap_fixes'
|
||
require 'ldap_shadows/object'
|
||
|
||
... | ... | |
def initialize(mod_container = LdapShadows::Objects)
|
||
@mod_container = mod_container
|
||
|
||
@schema = {}
|
||
|
||
clear_shadow
|
||
LdapShadows::LdapObject.mapper = self
|
||
end
|
||
... | ... | |
end
|
||
|
||
def load_object(obj_name, obj_def)
|
||
schema = load_schema("object")
|
||
validator = Kwalify::Validator.new(schema)
|
||
errors = validator.validate(obj_def)
|
||
|
||
obj_mapping = obj_def[:mapping]
|
||
klass_name = self.class.object_name_to_klass_name(obj_name)
|
||
|
||
... | ... | |
I18n.load_path += Dir[File.join(translation_path, "**", "*.yml")]
|
||
end
|
||
rescue
|
||
raise PreProcessingError, _("Could not load shadow configiguration: %s") % $!
|
||
raise PreProcessingError, _("Could not load shadow configuration: %s") % $!
|
||
end
|
||
|
||
protected
|
||
... | ... | |
yield(c_name, c_config)
|
||
end
|
||
end
|
||
|
||
def load_schema(type)
|
||
schema = @schema[type]
|
||
if schema.nil?
|
||
schema_file = File.join(Config::DATA_DIR, "schema", type + ".yaml")
|
||
schema = YAML.load(IO.read(schema_file))
|
||
@schema[type] = schema
|
||
end
|
||
schema
|
||
rescue
|
||
raise PreProcessingError, _("Could not load schema: %s") % $!
|
||
end
|
||
end
|
||
|
||
# default location for mapped objects
|
Also available in: Unified diff
[evol] improve config #9 (preliminary work to check object definition against schema)