honey-auth 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZDNlNTg4ODU3OTMzNTEzOGExM2U2OGU0ZmFhM2Q0NzkxOGJlNjI2OQ==
5
+ data.tar.gz: !binary |-
6
+ YjQ0M2RlMWNhZDU4MjY4MWIxYzdhNmVkZjBhNTEyODY0NzQ0MzJmZA==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MDFmYTBjY2QzZGJkZTg5NGM3ZjQ4MDliNWVlNGY5ZjRlMTNlODdhNWFmNWMy
10
+ NmUzMDJhOGMyYzc2ZDQ0YmM5NmZmOGE1ZjA4YTJiMmY4OTk4MTQwNDQ3MWVk
11
+ NjhjY2MyYzY1MjdiMjZlN2FkYWU3Mzk2NjJmZTU4NmNlY2UyYTE=
12
+ data.tar.gz: !binary |-
13
+ YWRjNmI4MmVmNjBjZGFjM2Y4YmY0MmM0NGM3ODYwYWUxODBjZmU4YTEwNGU5
14
+ ZmE0OTA2OTQxYTVkNjc1ZGYxMTQxMGZjNWZiM2Y5OTk1ZmY5YjFiNWFiMjkw
15
+ OGIzNzhjNjVhN2MzNmJkZWRlZjk5ZTZhYTYyNjZmYzJmNjVmNDM=
@@ -1,4 +1,4 @@
1
- require 'rails/generators/active_record/migration'
1
+ require 'rails/generators/active_record'
2
2
  require 'generators/honey_auth/base'
3
3
 
4
4
  module HoneyAuth
@@ -6,12 +6,23 @@ module HoneyAuth
6
6
 
7
7
  class Init < Base
8
8
  include Rails::Generators::Migration
9
- extend ActiveRecord::Generators::Migration
10
9
  source_root File.expand_path('../templates', __FILE__)
11
10
 
12
11
  def create_migration_file
13
- template 'user_model.rb', 'app/models/user.rb'
14
12
  migration_template 'user_migration.rb', 'db/migrate/create_users'
13
+ template 'user_model.rb', 'app/models/user.rb'
14
+ template 'accounts_controller.rb', 'app/controllers/accounts_controller.rb'
15
+ template 'sessions_controller.rb', 'app/controllers/sessions_controller.rb'
16
+ directory 'views/sessions', 'app/views/sessions'
17
+ directory 'views/accounts', 'app/views/accounts'
18
+
19
+ inject_into_file 'app/controllers/application_controller.rb', before: 'end' do
20
+ ' include Authentication' << "\n"
21
+ end
22
+ end
23
+
24
+ def self.next_migration_number(dirname)
25
+ ActiveRecord::Generators::Base.next_migration_number(dirname)
15
26
  end
16
27
  end
17
28
 
@@ -1,12 +1,12 @@
1
1
  class AccountsController < ApplicationController
2
- before_filter :signed_in?, only: [:edit, :update]
2
+ before_filter :signed_in!, only: [:edit, :update]
3
3
 
4
4
  def new
5
5
  @user = User.new
6
6
  end
7
7
 
8
8
  def create
9
- @user = User.new(params[:user])
9
+ @user = User.new(user_params)
10
10
 
11
11
  if @user.save
12
12
  sign_in @user
@@ -17,12 +17,12 @@ class AccountsController < ApplicationController
17
17
  end
18
18
 
19
19
  def update
20
- params[:user].delete(:password) unless params[:user][:password].present?
20
+ user_params.delete(:password) unless user_params[:password].present?
21
21
  @user = current_user
22
- @user.attributes = params[:user]
22
+ @user.attributes = user_params
23
23
 
24
24
  if @user.save
25
- redirect_to updated_account_path
25
+ redirect_to root_path
26
26
  else
27
27
  render 'accounts/edit'
28
28
  end
@@ -31,4 +31,10 @@ class AccountsController < ApplicationController
31
31
  def edit
32
32
  @user = current_user
33
33
  end
34
+
35
+ protected
36
+
37
+ def user_params
38
+ params.require(:user).permit(:classcode, :email, :name, :username, :password, :password_confirmation)
39
+ end
34
40
  end
@@ -1,5 +1,5 @@
1
1
  class SessionsController < ApplicationController
2
- before_filter :signed_in?, only: [:destroy]
2
+ before_filter :signed_in!, only: [:destroy]
3
3
 
4
4
  def create
5
5
  if @user = User.find_by_email(params[:user][:email]).try(:authenticate, params[:user][:password])
@@ -7,7 +7,7 @@ class SessionsController < ApplicationController
7
7
  redirect_to signed_in_path(:signed_in)
8
8
  else
9
9
  @user = User.new
10
- flash[:error] = 'bad email/password combination'
10
+ flash[:error] = 'Incorrect email or password'
11
11
  render :new
12
12
  end
13
13
  end
@@ -1,8 +1,8 @@
1
1
  class User < ActiveRecord::Base
2
2
  has_secure_password
3
- attr_accessible :email, :name, :password, :password_confirmation
4
3
  validates :email, presence: true
5
4
  validates_uniqueness_of :email, case_sensitive: false, allow_nil: true
6
- ROLES = %w(user admin)
5
+ ROLES = %w(user admin)
6
+ SAFE_ROLES = %w(user)
7
7
  include HoneyAuth::Roles
8
8
  end
@@ -1,5 +1,5 @@
1
- %article.edit-account-page
2
- %h4 Edit your account
1
+ article.edit-account-page
2
+ h3 Edit your account
3
3
 
4
4
  = form_for @user, url: account_path do |f|
5
5
  = f.string :name
@@ -1,9 +1,9 @@
1
- %article.new-account-page
2
- %h4 Create your account
1
+ article.new-account-page
2
+ h3 Sign up for an account
3
3
 
4
4
  = form_for @user, url: account_path do |f|
5
5
  = f.string :name
6
6
  = f.email :email
7
7
  = f.password :password
8
8
  = f.password :password_confirmation
9
- = f.actions save: 'Save'
9
+ = f.actions save: 'Sign up'
@@ -1,5 +1,5 @@
1
- %article.new-session-page
2
- %h4 Sign in to your account
1
+ article.new-session-page
2
+ h3 Sign in to your account
3
3
 
4
4
  = form_for @user, url: session_path do |f|
5
5
  = f.email :email, placeholder: 'Email'
@@ -1,3 +1,5 @@
1
+ require 'bcrypt'
2
+
1
3
  module HoneyAuth
2
4
  class Engine < ::Rails::Engine
3
5
  # stubbed for assets.. ?
@@ -5,6 +5,18 @@ module HoneyAuth::Roles
5
5
 
6
6
  def role= role
7
7
  remove_instance_variable :@role_inquirer if defined?(@role_inquirer)
8
- super
8
+ safe_role_assignment role
9
+ end
10
+
11
+ def safe_role_assignment role
12
+ self[:role] = if sanitized_role = SAFE_ROLES.find{ |r| r == role.strip }
13
+ sanitized_role
14
+ else
15
+ 'user'
16
+ end
17
+ end
18
+
19
+ def assign_reserved_role role
20
+ self[:role] = role
9
21
  end
10
22
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honey-auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Quinn Shanahan
@@ -13,26 +12,32 @@ date: 2012-10-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: haml
16
- requirement: &70154157660380 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70154157660380
25
- - !ruby/object:Gem::Dependency
26
- name: bcrypt-ruby
27
- requirement: &70154157659900 !ruby/object:Gem::Requirement
28
- none: false
22
+ version_requirements: !ruby/object:Gem::Requirement
29
23
  requirements:
30
24
  - - ! '>='
31
25
  - !ruby/object:Gem::Version
32
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bcrypt-ruby
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 3.0.0
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *70154157659900
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 3.0.0
36
41
  description: Very basic auth generator
37
42
  email: q.shanahan@gmail.com
38
43
  executables: []
@@ -42,40 +47,40 @@ files:
42
47
  - lib/authentication.rb
43
48
  - lib/generators/honey_auth/base.rb
44
49
  - lib/generators/honey_auth/init_generator.rb
50
+ - lib/generators/honey_auth/templates/accounts_controller.rb
51
+ - lib/generators/honey_auth/templates/sessions_controller.rb
45
52
  - lib/generators/honey_auth/templates/user_migration.rb
46
53
  - lib/generators/honey_auth/templates/user_model.rb
54
+ - lib/generators/honey_auth/templates/views/accounts/edit.html.slim
55
+ - lib/generators/honey_auth/templates/views/accounts/new.html.slim
56
+ - lib/generators/honey_auth/templates/views/sessions/new.html.slim
47
57
  - lib/honey-auth.rb
48
58
  - lib/honey_auth/engine.rb
49
59
  - lib/honey_auth/roles.rb
50
60
  - lib/honey_auth/routes.rb
51
61
  - lib/honey_auth.rb
52
- - app/controllers/accounts_controller.rb
53
- - app/controllers/sessions_controller.rb
54
- - app/views/accounts/edit.html.haml
55
- - app/views/accounts/new.html.haml
56
- - app/views/sessions/new.html.haml
57
62
  homepage: https://github.com/honeyco/honey-auth
58
63
  licenses: []
64
+ metadata: {}
59
65
  post_install_message:
60
66
  rdoc_options: []
61
67
  require_paths:
62
68
  - lib
63
69
  required_ruby_version: !ruby/object:Gem::Requirement
64
- none: false
65
70
  requirements:
66
71
  - - ! '>='
67
72
  - !ruby/object:Gem::Version
68
73
  version: '0'
69
74
  required_rubygems_version: !ruby/object:Gem::Requirement
70
- none: false
71
75
  requirements:
72
76
  - - ! '>='
73
77
  - !ruby/object:Gem::Version
74
78
  version: '0'
75
79
  requirements: []
76
80
  rubyforge_project:
77
- rubygems_version: 1.8.11
81
+ rubygems_version: 2.0.7
78
82
  signing_key:
79
- specification_version: 3
83
+ specification_version: 4
80
84
  summary: Auth
81
85
  test_files: []
86
+ has_rdoc: