Sha256: 5142cd9e4fef52526013427341cb3ea8c34b62c6cc7a51a89e5984449d5769f4
Contents?: true
Size: 1.26 KB
Versions: 4
Compression:
Stored size: 1.26 KB
Contents
# frozen_string_literal: true module Apicasso # Ability to parse a scope object from Apicasso::Key class Ability include CanCan::Ability def initialize(key) key ||= Apicasso::Key.new cannot :manage, :all cannot :read, :all key.scope.each do |permission, klasses_clearances| klasses_clearances.each do |klass, clearance| if clearance == true # Usage: # To have a key reading all channels and all accouts # you would have a scope: # => `{read: {channel: true, accout: true}}` can permission.to_sym, klass.underscore.to_sym can permission.to_sym, klass.classify.constantize elsif clearance.class == Hash # Usage: # To have a key reading all banners from a channel with id 999 # you would have a scope: # => `{read: {banner: {owner_id: [999]}}}` can permission.to_sym, klass.underscore.to_sym clearance.each do |by_field, values| can permission.to_sym, klass.classify.constantize, by_field.to_sym => values end end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
apicasso-0.3.3 | app/models/apicasso/ability.rb |
apicasso-0.3.2 | app/models/apicasso/ability.rb |
apicasso-0.3.1 | app/models/apicasso/ability.rb |
apicasso-0.3.0 | app/models/apicasso/ability.rb |