pipa-authmagic 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,7 @@ module Authmagic
6
6
 
7
7
  def initialize(context)
8
8
  @context = context
9
+ @context.config.authorization = Config.new(:allow_guest => false)
9
10
  end
10
11
 
11
12
  def enroll
@@ -15,17 +16,21 @@ module Authmagic
15
16
  module ControllerClassMethods
16
17
  private
17
18
  def require_principal(opts = {}, &block)
19
+ allow_guest = opts.fetch(:allow_guest) { security_context.config.authorization.allow_guest }
18
20
  before_filter opts do |controller|
19
- controller.instance_eval { deny_action! unless block && block.call(current_principal) }
21
+ controller.instance_eval do
22
+ p = current_principal
23
+ deny_action! unless (p || allow_guest) && (!block || block.call(p))
24
+ end
20
25
  end
21
26
  end
22
27
 
23
- def require_known_principal(opts = {}, &block)
24
- require_principal(opts) {|p| p && (!block || block.call(p)) }
28
+ def require_identified_principal(opts = {}, &block)
29
+ require_principal(opts.update(:allow_guest => true))
25
30
  end
26
31
 
27
32
  def require_login(opts = {})
28
- require_known_principal(opts)
33
+ require_identified_principal(opts)
29
34
  end
30
35
  end
31
36
 
@@ -45,7 +45,7 @@ module Authmagic
45
45
  secran_salt = col_salt.type == :binary ? :random_bytes : :hex
46
46
 
47
47
  principal.class_eval do
48
- self.class.send(:define_method, :authenticate) do |options|
48
+ self.class.send(:define_method, :authenticate_with_login_password) do |options|
49
49
  conditions = case_sensitive ?
50
50
  {login => options[login]} :
51
51
  ["lower(#{connection.quote_column_name(login)}) = lower(?)", options[login]]
@@ -88,7 +88,7 @@ module Authmagic
88
88
  cfg = security_context.config.principal
89
89
  login = cfg.fetch(:login_field, :login)
90
90
  password = cfg.fetch(:password_field, :password)
91
- p = security_context.principal.authenticate(
91
+ p = security_context.principal.authenticate_with_login_password(
92
92
  login => options[login] || params[sess][login],
93
93
  password => options[password] || params[sess][password])
94
94
  session[:current_principal_id] = p.id
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pipa-authmagic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Gunko
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-26 00:00:00 -08:00
12
+ date: 2009-01-31 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency