module ClerkRails::Clerked
Public Instance Methods
clerk_permissions_map()
click to toggle source
# File lib/clerk_rails/clerked.rb, line 38 def clerk_permissions_map @@clerk_permissions_map end
clerk_roles_map()
click to toggle source
# File lib/clerk_rails/clerked.rb, line 42 def clerk_roles_map @@clerk_roles_map end
clerk_roles_scope()
click to toggle source
# File lib/clerk_rails/clerked.rb, line 60 def clerk_roles_scope class_name = self.name ->{ where(scope_class: class_name) } end
has_role?(role, account)
click to toggle source
# File lib/clerk_rails/clerked.rb, line 29 def has_role?(role, account) account.has_role?(role, self) end
roles_for(account)
click to toggle source
# File lib/clerk_rails/clerked.rb, line 33 def roles_for(account) account.roles_for(self) end
roles_with_permission(permission)
click to toggle source
# File lib/clerk_rails/clerked.rb, line 46 def roles_with_permission(permission) @@clerk_roles_map[permission] ||= begin roles_with_permission = [] clerk_permissions_map.keys.each do |key| if clerk_permissions_map[key].include?(permission) roles_with_permission << key end end roles_with_permission end end
with(role: nil, permission: nil)
click to toggle source
# File lib/clerk_rails/clerked.rb, line 13 def with(role: nil, permission: nil) if (role.nil? and permission.nil?) or (not role.nil? and not permission.nil?) raise ArgumentError.new("Invalid argument, must supply either a role or permission") end if not role.nil? return where(Clerk::Role.table_name=>{name: role}) elsif not permission.nil? all_roles = self.proxy_association.owner.class.roles_with_permission(permission) return where(Clerk::Role.table_name=>{name: all_roles}) end end