entrance 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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: