entrance 0.5.3 → 0.6.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5416b8f703403f4d2dce15affb5e0cf6584e8380
4
- data.tar.gz: 6c4531e53b0ad51c23c06cb9f2486a0d9fa0f24d
3
+ metadata.gz: 538d36c02daa5e94fb32097d12e8866d3d64bc3a
4
+ data.tar.gz: bd49b081f1c840cfc6a1b76b95b4bba009cf37e2
5
5
  SHA512:
6
- metadata.gz: a82b9471b8edff7a012477d76fb44664b2f43516e5105c7beb77902bf20f61a07e6ee385635a7b80c68c494b55b7304530c22ab35d7c1b45562e5e24250ee1fc
7
- data.tar.gz: 2abfe646e6c97c3db4ed23500f5ceb5741d1080176e6a70deb1fce1e0ebf7ccf4cf0ba0a0b65ddcef861167b142828b41a01705dbfd4ebe739e4f6cc46355ec6
6
+ metadata.gz: 10219873d111c01af05ca8e0fb3b7392f3416eeb7149d13ffe15544239d7d0dd35e02a76d4277e95d6642a75cb11374ead3baad47d2711f27f187e4284db9869
7
+ data.tar.gz: 4260f27c3f752a887e666b65e905f7aed5468a13df1f35d7272d177f475b2a2133c644ec33de5dfafc6f9d803197c3984a968c57c640dd4dd7b5daba84bf47ba
data/README.md CHANGED
@@ -24,7 +24,7 @@ end
24
24
  class ApplicationController < ActionController::Base
25
25
  include Entrance::Controller
26
26
 
27
- before_filter :login_required
27
+ before_filter :login_required # provided by Entrance::Controller
28
28
 
29
29
  ...
30
30
  end
@@ -43,8 +43,6 @@ module Example
43
43
  post '/login' do
44
44
  if user = User.authenticate(params[:email], params[:password]) and user.active?
45
45
  remember = ['on', '1'].include?(params[:remember_me])
46
-
47
- puts user.inspect
48
46
  login!(user, remember)
49
47
 
50
48
  flash[:success] = 'Welcome back!'
@@ -10,8 +10,10 @@ require 'entrance/addons/omniauth'
10
10
  class Hello < Sinatra::Base
11
11
  register Entrance::OmniAuth
12
12
 
13
+ set :sessions, true
13
14
  set :auth_test, false # only true for testing
14
15
  set :auth_remember, true # enables 'remember me' for omniauth logins
16
+ set :auth_redirect, '/' # where to redirect on successful login
15
17
  set :auth_providers, {
16
18
  :twitter => {
17
19
  :key => 'foobar'
@@ -57,8 +59,9 @@ module Entrance
57
59
  [:get, :post].each do |action|
58
60
 
59
61
  app.send(action, '/auth/:provider/callback') do
60
- auth = request.env['omniauth.auth']
61
- unless user = ::Entrance::OmniAuth.auth_or_create(auth)
62
+ auth = request.env['omniauth.auth']
63
+ params = request.env["omniauth.params"]
64
+ unless user = ::Entrance::OmniAuth.auth_or_create(auth, params)
62
65
  # return return_401
63
66
  redirect_with(Entrance.config.access_denied_redirect_to, :error, 'Unable to create record for new user. Check the log file.')
64
67
  end
@@ -66,7 +69,7 @@ module Entrance
66
69
  if ::Entrance::OmniAuth.valid_user?(user)
67
70
  login!(user, app.settings.auth_remember)
68
71
  flash[:success] = 'Welcome back!' if respond_to?(:flash)
69
- redirect_to_stored_or(to('/'))
72
+ redirect_to_stored_or(to(app.settings.auth_redirect))
70
73
  else
71
74
  redirect_with(Entrance.config.access_denied_redirect_to, :error, 'Unable to authenticate. Please try again.')
72
75
  end
@@ -89,6 +92,10 @@ module Entrance
89
92
  def log(str)
90
93
  logger.info(str) rescue nil
91
94
  end
95
+
96
+ def omniauth_params
97
+ @omniauth_params
98
+ end
92
99
 
93
100
  def valid_user?(user)
94
101
  if user.respond_to?(:can_login?) and !user.can_login?
@@ -105,14 +112,14 @@ module Entrance
105
112
  def find_user_with_username(username)
106
113
  query = {}
107
114
  query[::Entrance.fields.username] = username # .to_s.downcase.strip
108
- ::Entrance.model.where(query).first
115
+ scoped_model.where(query).first
109
116
  end
110
117
 
111
118
  def find_user_with_provider_and_uid(provider, uid)
112
119
  query = {}
113
120
  query[::Entrance.fields.auth_provider] = provider
114
121
  query[::Entrance.fields.auth_uid] = uid
115
- ::Entrance.model.where(query).first
122
+ scoped_model.where(query).first
116
123
  end
117
124
 
118
125
  def set_auth_credentials(user, provider, uid)
@@ -129,14 +136,12 @@ module Entrance
129
136
  data = {}
130
137
  data[::Entrance.fields.name] = name
131
138
  data[::Entrance.fields.username] = email
132
- user = ::Entrance.model.new(data)
139
+ user = scoped_model.new(data)
133
140
  set_auth_credentials(user, provider, uid)
134
141
 
135
142
  if user.valid?
136
143
  return user.save && user
137
144
  else
138
- puts user.inspect
139
- puts user.local?
140
145
  log "Invalid user: #{user.errors.to_a.join(', ')}"
141
146
  false
142
147
  end
@@ -144,7 +149,9 @@ module Entrance
144
149
 
145
150
  # authorizes or creates a user with the given oauth credentials.
146
151
  # does not check if user is banned or not (the /callback route does that)
147
- def auth_or_create(auth)
152
+ def auth_or_create(auth, params = {})
153
+ @omniauth_params = params
154
+
148
155
  provider, uid = auth['provider'], auth['uid']
149
156
  info = auth['info'] || {}
150
157
 
@@ -15,9 +15,9 @@ module Entrance
15
15
  @password = 'password_hash'
16
16
 
17
17
  # remember and reset
18
- @remember_token = 'remember_token'
18
+ @remember_token = 'remember_token' # set to nil to disable 'remember me' option
19
19
  @remember_until = 'remember_token_expires_at'
20
- @reset_token = 'reset_token'
20
+ @reset_token = 'reset_token' # set to nil to disable 'reset password' option
21
21
  @reset_until = 'reset_token_expires_at'
22
22
 
23
23
  # omniauth
@@ -1,7 +1,7 @@
1
1
  module Entrance
2
2
  MAJOR = 0
3
- MINOR = 5
4
- PATCH = 3
3
+ MINOR = 6
4
+ PATCH = 0
5
5
 
6
6
  VERSION = [MAJOR, MINOR, PATCH].join('.')
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: entrance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomás Pollak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-01 00:00:00.000000000 Z
11
+ date: 2018-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt
@@ -146,9 +146,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  version: 1.3.6
147
147
  requirements: []
148
148
  rubyforge_project: entrance
149
- rubygems_version: 2.2.0
149
+ rubygems_version: 2.6.13
150
150
  signing_key:
151
151
  specification_version: 4
152
152
  summary: Lean authentication alternative for Rails and Sinatra.
153
153
  test_files: []
154
- has_rdoc: