monban 0.0.3 → 0.0.4

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.
data/CHANGELOG.rdoc CHANGED
@@ -1,4 +1,8 @@
1
- == 0.3.0
1
+ == 0.0.4
2
+ * Cleaned up generated controllers
3
+ * Use find_by_id instead of find so invalid sessions don't cause apps to crash
4
+ * Hashes passed in are no longer mutated via delete
2
5
 
3
- * Fixed bug where password wasn't deleted from session params which would
4
- cause lookup to fail
6
+ == 0.0.3
7
+
8
+ * Fixed bug where password wasn't deleted from session params which would cause lookup to fail
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- monban (0.0.1)
4
+ monban (0.0.3)
5
5
  bcrypt-ruby
6
6
  rails
7
7
  warden
@@ -144,6 +144,7 @@ DEPENDENCIES
144
144
  capybara
145
145
  monban!
146
146
  pry
147
+ rake
147
148
  rspec
148
149
  rspec-rails
149
150
  sqlite3
data/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Monban 門番
2
2
 
3
+ [![Build Status](https://travis-ci.org/halogenandtoast/monban.png?branch=master)](https://travis-ci.org/halogenandtoast/monban)
4
+ [![Code Climate](https://codeclimate.com/github/halogenandtoast/monban.png)](https://codeclimate.com/github/halogenandtoast/monban)
5
+
6
+
3
7
  Monban is designed to be very simple and extensible user authentication. It's goal is to give all the power to the developer instead of
4
8
  forcing them to make Monban work with their system
5
9
 
@@ -3,13 +3,9 @@ class SessionsController < ApplicationController
3
3
  end
4
4
 
5
5
  def create
6
- if user = authenticate_session(session_params)
7
- sign_in user
8
- redirect_to root_path
9
- else
10
- flash.now.notice = "Invalid username or password"
11
- render :new
12
- end
6
+ user = authenticate_session(session_params)
7
+ sign_in(user) or set_flash_message
8
+ respond_with user, location: root_path
13
9
  end
14
10
 
15
11
  def destroy
@@ -19,6 +15,10 @@ class SessionsController < ApplicationController
19
15
 
20
16
  private
21
17
 
18
+ def set_flash_message
19
+ flash.now.notice = "Invalid username or password"
20
+ end
21
+
22
22
  def session_params
23
23
  <% if config[:use_strong_parameters] -%>
24
24
  params.require(:session).permit(:email, :password)
@@ -1,16 +1,14 @@
1
1
  class UsersController < ApplicationController
2
+ respond_to :html
3
+
2
4
  def new
3
5
  @user = User.new
4
6
  end
5
7
 
6
8
  def create
7
- user = sign_up(user_params)
8
- if sign_in(user)
9
- redirect_to root_path
10
- else
11
- @user = user
12
- render :new
13
- end
9
+ @user = sign_up(user_params)
10
+ sign_in(@user)
11
+ respond_with @user, location: root_path
14
12
  end
15
13
 
16
14
  private
@@ -1,9 +1,9 @@
1
1
  module Monban
2
2
  class SignUp
3
3
  def initialize user_params
4
- unencrypted_token = user_params.delete(token_field)
4
+ unencrypted_token = user_params.slice(token_field)
5
5
  token_digest = Monban.encrypt_token(unencrypted_token)
6
- @user_params = user_params.merge(token_store_field.to_sym => token_digest)
6
+ @user_params = user_params.except(token_field).merge(token_store_field.to_sym => token_digest)
7
7
  end
8
8
 
9
9
  def perform
@@ -25,8 +25,8 @@ module Monban
25
25
  end
26
26
 
27
27
  def authenticate_session session_params, field_map = nil
28
- password = session_params.delete(Monban.config.user_token_field)
29
- user = Monban.lookup(session_params, field_map)
28
+ password = session_params.fetch(Monban.config.user_token_field)
29
+ user = Monban.lookup(session_params.except(Monban.config.user_token_field), field_map)
30
30
  authenticate(user, password)
31
31
  end
32
32
 
@@ -1,3 +1,3 @@
1
1
  module Monban
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -5,7 +5,7 @@ Warden::Manager.serialize_into_session do |user|
5
5
  end
6
6
 
7
7
  Warden::Manager.serialize_from_session do |id|
8
- User.find(id)
8
+ User.find_by_id(id)
9
9
  end
10
10
 
11
11
  Warden::Strategies.add(:password_strategy, Monban::Strategies::PasswordStrategy)
data/monban.gemspec CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |gem|
20
20
  gem.add_dependency 'rails'
21
21
  gem.add_dependency 'bcrypt-ruby'
22
22
  gem.add_dependency 'warden'
23
+ gem.add_development_dependency 'rake'
23
24
  gem.add_development_dependency 'rspec'
24
25
  gem.add_development_dependency 'rspec-rails'
25
26
  gem.add_development_dependency 'capybara'
@@ -68,14 +68,15 @@ module Monban
68
68
  user = double()
69
69
  authentication = double()
70
70
  authentication.should_receive(:perform).and_return(user)
71
- Monban.should_receive(:lookup).with(session_params, field_map).and_return(user)
71
+ Monban.should_receive(:lookup).with(session_params.except('password'), field_map).and_return(user)
72
72
  Authentication.should_receive(:new).with(user, 'password').and_return(authentication)
73
73
  @dummy.authenticate_session(session_params, field_map).should == user
74
74
  end
75
75
 
76
76
  it 'returns false when it could not authenticate the user' do
77
77
  session_params = double()
78
- session_params.should_receive(:delete).with('password').and_return('password')
78
+ session_params.should_receive(:fetch).with('password').and_return('password')
79
+ session_params.should_receive(:except).with('password').and_return(session_params)
79
80
  user = double()
80
81
  authentication = double()
81
82
  authentication.should_receive(:perform).and_return(false)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monban
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-02-12 00:00:00.000000000 Z
13
+ date: 2013-02-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -60,6 +60,22 @@ dependencies:
60
60
  - - ! '>='
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
63
79
  - !ruby/object:Gem::Dependency
64
80
  name: rspec
65
81
  requirement: !ruby/object:Gem::Requirement