Sha256: 18bc16018050ce0357d2f1cb4cf29dc84f3a9074e5aa32a7e2f01ec85daba5ac
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 KB
Contents
module WCC::Auth ACCESS_LEVELS = [ { id: nil, name: "None", slug: "none", description: "no access", level: 0 }, { id: 1, name: "Basic", slug: "basic", description: "read access", level: 1 }, { id: 2, name: "Contribute", slug: "contribute", description: "read-write of data user owns", level: 2 }, { id: 3, name: "Manage", slug: "manage", description: "read-write of other's data", level: 3 }, { id: 4, name: "App Admin", slug: "appadmin", description: "read-write app configuration", level: 4 }, { id: 5, name: "System Admin", slug: "sysadmin", description: "full access", level: 5 }, ] AccessLevel = Struct.new(:id, :name, :slug, :description, :level) do include Comparable def <=>(record) self.level <=> record.level end def self.[](index_or_slug, db=ACCESS_LEVELS) all(db).select do |al| al.level.to_s === index_or_slug.to_s || al.slug === index_or_slug.to_s end.last end def self.all(db=ACCESS_LEVELS) db.collect do |row| new.tap { |access_level| row.each { |field, value| access_level[field] = value } } end.sort end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
wcc-auth-0.3.2 | lib/wcc/auth/access_level.rb |
wcc-auth-0.3.1 | lib/wcc/auth/access_level.rb |
wcc-auth-0.3.0 | lib/wcc/auth/access_level.rb |