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 |