Sha256: 95363d32b35b3b295eb336cc86d91778707c472e72b150d3815edf9c50a7bf26

Contents?: true

Size: 924 Bytes

Versions: 1

Compression:

Stored size: 924 Bytes

Contents

module SimpleRoles
  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

1 entries across 1 versions & 1 rubygems

Version Path
cantango-0.8.0 spec/fixtures/models/simple_roles.rb