Module: WhurlEngine::Config

Defined in:
lib/whurl_engine/config.rb

Constant Summary collapse

DEFAULT_AUTHORIZE =
Proc.new {}
DEFAULT_CURRENT_USER =
Proc.new do
  request.env["warden"].try(:user) || respond_to?(:current_user) && current_user
end

Class Method Summary collapse

Class Method Details

.authorize_with(*args, &block) ⇒ Object

Setup authorization to be run as a before filter This is run inside the controller instance so you can setup any authorization you need to.

By default, there is no authorization.

To use an authorization adapter, pass the name of the adapter. For example, to use with CanCan, pass it like this.

See the wiki for more on authorization.

Examples:

Custom

WhurlEngine.config do |config|
  config.authorize_with do
    redirect_to root_path unless warden.user.is_admin?
  end
end

CanCan

WhurlEngine.config do |config|
  config.authorize_with :cancan
end

See Also:



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/whurl_engine/config.rb', line 35

def authorize_with(*args, &block)
  extension = args.shift
  if(extension)
    @authorize = Proc.new {
      @authorization_adapter = WhurlEngine::AUTHORIZATION_ADAPTERS[extension].new(*([self] + args).compact)
    }
  else
    @authorize = block if block
  end
  @authorize || DEFAULT_AUTHORIZE
end

.current_user_method(&block) ⇒ Object

Setup a different method to determine the current user or admin logged in. This is run inside the controller instance and made available as a helper.

By default, _request.env.user_ or current_user will be used.

Examples:

Custom

WhurlEngine.config do |config|
  config.current_user_method do
    current_admin
  end
end

See Also:



60
61
62
63
# File 'lib/whurl_engine/config.rb', line 60

def current_user_method(&block)
  @current_user = block if block
  @current_user || DEFAULT_CURRENT_USER
end