Project

General

Profile

« Previous | Next » 

Revision 7b832340

Added by Marc Dequènes over 14 years ago

  • ID 7b8323404d9417cd4732eb199306b5fabbf82b84

[fix/evol] corrected before delete hook and added complete hook support for objects

View differences:

lib/ldap_shadows/object.rb
end
def delete
before_delete_job
before_delete_jobs
super
after_save_jobs
end
def delete_recursive
# TODO: recursive instanciation and reverse recursive hook calls
before_delete_job
before_delete_jobs
self.class.delete_all(nil, :scope => :sub, :base => self.dn)
after_delete_jobs
end
def self.hook_before_create(shadow, item)
end
def self.hook_before_modify(shadow, item)
end
def self.hook_before_delete(shadow, item)
end
def self.hook_after_create(shadow, item)
end
def self.hook_after_modify(shadow, item)
end
def self.hook_after_delete(shadow, item)
end
protected
def self.raise_error(msg)
raise ProcessingError, msg
end
def before_save_jobs
check_hooks_before(:save)
check_missing_attributes
......
end
def check_hooks_before(action)
case action
when :save
if self.new_entry?
self.class.hook_before_create(self.class.mapper, self)
else
self.class.hook_before_modify(self.class.mapper, self)
end
when :delete
self.class.hook_before_delete(self.class.mapper, self)
end
self.aspects.each do |aspect|
aklass = self.class.mapper.get_aspect_klass(aspect)
next if aklass.nil?
......
aklass.hook_after_delete(self.class.mapper, self)
end
end
case action
when :save
if self.new_entry?
self.class.hook_after_create(self.class.mapper, self)
else
self.class.hook_after_modify(self.class.mapper, self)
end
when :delete
self.class.hook_after_delete(self.class.mapper, self)
end
end
def fetch_attributes_data(attr_list, expert_attributes, admin_attributes)

Also available in: Unified diff