Sha256: c0ad15c4315d729cbd08a9d20f5126fea881d9085fa6560fe43586dacbeb7129

Contents?: true

Size: 1.09 KB

Versions: 2

Compression:

Stored size: 1.09 KB

Contents

module TheRole
  module Base
    def has_section? section_name
      hash         =  role_hash
      section_name =  section_name.to_s.to_slug_param(delimiter: '_')
      return true  if hash[section_name]
      false
    end

    def has_role? section_name, rule_name
      hash         =  role_hash
      section_name =  section_name.to_s.to_slug_param(delimiter: '_')
      rule_name    =  rule_name.to_s.to_slug_param(delimiter: '_')

      return true  if hash.try(:[], 'system').try(:[], 'administrator')
      return true  if hash.try(:[], 'moderator').try(:[], section_name)

      return false unless hash[section_name]
      return false unless hash[section_name].key? rule_name
      hash[section_name][rule_name]
    end

    def any_role? roles_hash = {}
      roles_hash.each_pair{|section, action| return true if has_role?(section, action)}
      false
    end

    def moderator? section_name
      section_name = section_name.to_slug_param(delimiter: '_')
      has_role? section_name, 'any_crazy_name'
    end

    def admin?
      has_role? 'any_crazy_name', 'any_crazy_name'
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
the_role-2.5.1 app/models/concerns/base.rb
the_role-2.5 app/models/concerns/base.rb