OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openproject/lib/access_control_patch.rb

24 lines
620 B

module AccessControlPatch
def self.included(base) # :nodoc:
base.extend(ClassMethods)
# Same as typing in the class
base.class_eval do
unloadable
unless singleton_methods.include? "allowed_actions_without_inheritance"
class << self
alias_method_chain :allowed_actions, :inheritance
end
end
end
end
module ClassMethods
def allowed_actions_with_inheritance(permission_name)
my_actions = allowed_actions_without_inheritance(permission_name)
my_actions | permission(permission_name).inherits.collect(&:actions)
end
end
end