module Godmin::Authorization
Public Instance Methods
already_namespaced?(subject)
click to toggle source
# File lib/godmin/authorization.rb, line 50 def already_namespaced?(subject) subject.to_s.start_with?("#{engine_wrapper.namespace.name}::") end
find_class_name(subject)
click to toggle source
Borrowed from Pundit::PolicyFinder
# File lib/godmin/authorization.rb, line 36 def find_class_name(subject) if subject.respond_to?(:model_name) subject.model_name elsif subject.class.respond_to?(:model_name) subject.class.model_name elsif subject.is_a?(Class) subject elsif subject.is_a?(Symbol) subject.to_s.camelize else subject.class end end
namespaced_record(record)
click to toggle source
# File lib/godmin/authorization.rb, line 24 def namespaced_record(record) return record unless engine_wrapper.namespaced? class_name = find_class_name(record) if already_namespaced?(class_name) record else engine_wrapper.namespaced_path.map(&:to_sym) << record end end
policy(record)
click to toggle source
# File lib/godmin/authorization.rb, line 16 def policy(record) policies[record] ||= Pundit.policy!(pundit_user, namespaced_record(record)) end
pundit_user()
click to toggle source
# File lib/godmin/authorization.rb, line 20 def pundit_user admin_user end