module Lanes::Access
Constants
- VERSION
Public Class Methods
for_user( user )
click to toggle source
# File lib/lanes/access.rb, line 17 def for_user( user ) { :roles => user.roles.map{ | role | { type: type_to_client_id(role), read: role.read_types.map{ |klass| type_to_client(klass) }, write: role.write_types.map{ |klass| type_to_client(klass) }, delete: role.delete_types.map{ |klass| type_to_client(klass) } } }, :locked_fields => LockedFields.definitions.map{ | klass, locks | { type: type_to_client(klass), locks: locks.each_with_object({}) do |(field, grants), result| result[field] = grants.map do |grant| { role: type_to_client_id(grant[:role]), only: grant[:only] } end end } } } end
type_to_client(klass)
click to toggle source
# File lib/lanes/access.rb, line 9 def type_to_client(klass) klass.to_s.sub(/^(\w+).*?(\w+)$/,'\1.Models.\2') end
type_to_client_id(klass)
click to toggle source
# File lib/lanes/access.rb, line 13 def type_to_client_id(klass) ( klass.is_a?(Class) ? klass : klass.class ).to_s.demodulize.underscore end