Sha256: 81c74481ff746730a48f5025817c2e5e12d804071e2a7060f26881ee1f4d1a24

Contents?: true

Size: 1 KB

Versions: 46

Compression:

Stored size: 1 KB

Contents

module SimpleRoles
  def self.included(base)
    base.send :include, InstanceMethods
    base.extend ClassMethods
  end

  module ClassMethods
    def is_role_in_group?(role, group)
      raise "No group #{group} defined in User model" if !role_groups.has_key?(group)
      role_groups[group].include?(role)
    end

    def role_groups
      {:bloggers => [:editor]}
    end

    def roles
      [:guest, :user, :admin, :editor]
    end
  end

  module InstanceMethods

    attr_accessor :role_groups_list

    def has_role? role
      roles_list.include? role
    end

    def has_any_role? roles
      roles.include?(role.to_sym)
    end

    def roles_list
      role.to_s.scan(/\w+/).map{|r| r.to_sym}
    end

    def is_in_group? group
      role_groups_list.include? group
    end
    alias_method :in_role_group?, :is_in_group?

    def role_groups_list
      return role_groups.scan(/\w+/).map(&:to_sym) if respond_to?(:role_groups) && !role_groups.nil?
      @role_groups_list || [] #[:bloggers]
    end
  end
end

Version data entries

46 entries across 46 versions & 5 rubygems

Version Path
cantango-permits-0.1.1 spec/fixtures/models/simple_roles.rb
cantango-config-0.2.1 spec/fixtures/models/simple_roles.rb
cantango-config-0.2.0 spec/fixtures/models/simple_roles.rb
cantango-api-0.1.3 spec/fixtures/models/simple_roles.rb
cantango-api-0.1.2 spec/fixtures/models/simple_roles.rb
cantango-api-0.1.1 spec/fixtures/models/simple_roles.rb
cantango-masquerade-0.1.3.2 spec/fixtures/models/simple_roles.rb
cantango-masquerade-0.1.3.1 spec/fixtures/models/simple_roles.rb
cantango-masquerade-0.1.3 spec/fixtures/models/simple_roles.rb
cantango-masquerade-0.1.2.1 spec/fixtures/models/simple_roles.rb
cantango-masquerade-0.1.2 spec/fixtures/models/simple_roles.rb
cantango-masquerade-0.1.1 spec/fixtures/models/simple_roles.rb
cantango-api-0.1.0 spec/fixtures/models/simple_roles.rb
cantango-config-0.1.9.2 spec/fixtures/models/simple_roles.rb
cantango-config-0.1.8.1 spec/fixtures/models/simple_roles.rb
cantango-config-0.1.8 spec/fixtures/models/simple_roles.rb
cantango-config-0.1.7 spec/fixtures/models/simple_roles.rb
cantango-config-0.1.6 spec/fixtures/models/simple_roles.rb
cantango-config-0.1.5 spec/fixtures/models/simple_roles.rb
cantango-config-0.1.4 spec/fixtures/models/simple_roles.rb