3 self.abstract_class = true
8 self.my_manifest.content_model
12 self.my_manifest.owner_type
16 t = self.my_manifest.tree['owner']
21 def self._owner_column
22 self.owner_type.to_s + '_id'
25 def self.load_manifest
29 define_singleton_method("content?") do
33 define_singleton_method("owner_type") do
37 define_singleton_method("owner_model") do
40 define_singleton_method("parent_model") do |tree_name|
41 self.my_manifest.tree[tree_name].parent_model
43 o = self._owner_column
44 define_singleton_method("owner_column") do
47 define_singleton_method("child_models") do |tree_name|
48 self.my_manifest.child_models tree_name
51 define_method("parent_model") do |tree_name|
52 self.__send__ self.class.parent_model(tree_name).item_name
54 define_method("elements") do |tree_name|
55 self.my_manifest.child_element_names(tree_name).map {|element_name|
56 self.__send__ element_name
63 def self.operator operators
64 return nil unless self.owner_type
65 operators.__send__ self.owner_type
68 def self.public_list_where
72 def self.edit content_id, operators
73 content = self.find content_id, self.show_opt
74 raise ActiveRecord::Forbidden unless content.own?(operators)
80 self.class.owner_model ? self.__send__(self.class.owner_model.item_name) : self
83 def visible? operators
85 return true if owner_model.own?(operators)
90 operator = self.class.operator operators
91 return false unless operator
92 owner_model.attributes[self.class.owner_column] == operator.id