Sha256: 3ec8443cfa55badd98d9bb7de285c8b66b65f40b1d5463775331a49e81cb1baa
Contents?: true
Size: 1.3 KB
Versions: 5
Compression:
Stored size: 1.3 KB
Contents
module Zuul module ActiveRecord module PermissionSubject def self.included(base) base.send :extend, ClassMethods base.send :include, ContextMethods # defined in lib/zuul/active_record.rb end module ClassMethods def self.extended(base) base.send :attr_accessible, :context, :context_id, :context_type, base.auth_scope.permission_foreign_key.to_sym, base.auth_scope.subject_foreign_key.to_sym add_validations base add_associations base end def self.add_validations(base) base.send :validates_presence_of, base.auth_scope.permission_foreign_key.to_sym, base.auth_scope.subject_foreign_key.to_sym base.send :validates_uniqueness_of, base.auth_scope.permission_foreign_key.to_sym, :scope => [base.auth_scope.subject_foreign_key.to_sym, :context_id, :context_type], :case_sensitive => false base.send :validates_numericality_of, base.auth_scope.permission_foreign_key.to_sym, base.auth_scope.subject_foreign_key.to_sym, :only_integer => true end def self.add_associations(base) base.send :belongs_to, base.auth_scope.permission_class_name.underscore.to_sym base.send :belongs_to, base.auth_scope.subject_class_name.underscore.to_sym end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems