Sha256: 0c156119479b86515bbe0700c263b468b80c45d9bad5543a7393350aea6231de

Contents?: true

Size: 747 Bytes

Versions: 1

Compression:

Stored size: 747 Bytes

Contents

module AuthAssistant          
  module RoleStrategy
    module RoleAssignment

      def roles=(*roles)
        new_role = roles.first.to_s
        self.role = new_role if CanCan.available_roles.include? new_role
      end

      def roles
        [role]
      end

      def role?(_role)
        roles.include? _role
      end  

      module ClassMethods
        def set_scope
          scope :with_role, lambda { |role| 
            joins(:roles).
            where("user.roles_id = roles.id AND roles.id == ?", role)
          }
        end

        def set_relationships
          has_many :roles
        end
      end
      
      def self.included(base)  
        base.extend(ClassMethods)
      end          
      
    end
  end
end




Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
auth-assistant-0.4.0 lib/auth_assistant/role_strategies/role_assignment.rb