Sha256: bdc5a88ea9185491608d2cace2c2ad7154c21a3b6889dda323733cc88c3ecc83

Contents?: true

Size: 1.32 KB

Versions: 1

Compression:

Stored size: 1.32 KB

Contents

require 'authz/engine'
require 'authz/models/rolable'
require 'authz/controllers/permission_manager'
require 'authz/controllers/scoping_manager'
require 'authz/controllers/authorization_manager'
require 'authz/helpers/view_helpers'
require 'authz/scopables/base'
require 'slim-rails'
require 'kaminari'
require 'jquery-rails'
require 'font-awesome-rails'

module Authz

  class MultileRolablesNotPermitted < StandardError; end

  mattr_reader :rolables
  @@rolables = [] # Contains the classes of all Rolables
  def self.register_rolable(rolable)

    unless @@rolables.map{|r| r.model_name.name}.include?(rolable.model_name.name)
      @@rolables << rolable
    end

    # TODO: When support for multiple rolables is implemented, lift this exception
    if @@rolables.size > 1
      raise MultileRolablesNotPermitted,
            "Only the Authorization of one model (like a User) is currently supported"
    end
  end

  # The method controllers use to force authentication
  mattr_accessor :force_authentication_method
  @@force_authentication_method = :authenticate_user!

  # The method used to access the instance of a current user
  mattr_accessor :current_user_method
  @@current_user_method = :current_user

  # Allows the configuration of the gem using the
  # Authz.configure do |config| syntax
  def self.configure
    yield self
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
authz-0.0.1.alpha4 lib/authz.rb