OSDN Git Service

f3e369494102a1b5e77d63c9c821382d5a018308
[pettanr/pettanr.git] / lib / peta / system_resource.rb
1 module Peta
2   class SystemResource < Item
3     self.abstract_class = true
4     
5     # Dynamic ClassMethods
6     
7     # ClassMethods
8     
9     def self.enable_list
10       self.find(:all).delete_if {|system_resource|
11       p system_resource
12       p system_resource.enable?
13         system_resource.enable? == false
14       }
15     end
16     
17     def self.edit system_resource_id, operators
18       system_resource = self.find system_resource_id, self.show_opt
19       raise ActiveRecord::Forbidden unless system_resource.own?(operators)
20       system_resource
21     end
22     
23     def my_engine_resource
24       Manifest.manifest.system_resources.engine_resources[self.table_name]
25     end
26     
27     def enable?
28       return false unless er = self.my_engine_resource
29       er.resource_items.include? self.classname
30     end
31     
32     def my_engine_name
33       self.my_engine_resource.resource_items[self.classname]
34     end
35     
36     def own? operators
37       operators.admin?
38     end
39     
40   end
41 end