adva-user 0.0.9 → 0.0.13

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.
@@ -1,5 +1,5 @@
1
- require 'admin/base_controller'
2
-
3
- Admin::BaseController.class_eval do
1
+ Adva.slice 'admin/base_controller#adva-user' do
4
2
  before_filter :authenticate_user!
3
+ require 'adva_user/authorization'
4
+ include AdvaUser::Authorization
5
5
  end
@@ -1,3 +1,13 @@
1
1
  class User::RegistrationsController < Devise::RegistrationsController
2
2
  layout 'user'
3
+
4
+ protected
5
+
6
+ def after_inactive_sign_up_path_for(resource)
7
+ if resource.is_a?(User)
8
+ params[:return_to] || new_user_session_path
9
+ else
10
+ raise "unknown resource: #{resource}"
11
+ end
12
+ end
3
13
  end
@@ -2,6 +2,6 @@ class User::SessionsController < Devise::SessionsController
2
2
  layout 'user'
3
3
 
4
4
  def after_sign_in_path_for(resource)
5
- params[:return_to] || '/'
5
+ params[:return_to] || super
6
6
  end
7
7
  end
data/app/models/user.rb CHANGED
@@ -9,4 +9,8 @@ class User < ActiveRecord::Base
9
9
  def roles
10
10
  read_attribute(:roles) || []
11
11
  end
12
+
13
+ def admin?
14
+ roles.include?('admin')
15
+ end
12
16
  end
@@ -6,6 +6,7 @@ class User::Confirmations::New < User::Form
6
6
  end
7
7
 
8
8
  def fields
9
+ super
9
10
  form.input :email
10
11
  end
11
12
 
@@ -13,4 +14,4 @@ class User::Confirmations::New < User::Form
13
14
  [resource, { :as => resource_name, :url => confirmation_path(resource_name) }]
14
15
  end
15
16
  end
16
- end
17
+ end
@@ -48,8 +48,8 @@ class User::Form < Adva::View::Form
48
48
  capture { link_to(:'user.links.sign_in', new_session_path(resource_name), :class => :sign_in) }
49
49
  end
50
50
 
51
- def sign_up_link
52
- capture { link_to(:'user.links.sign_up', new_registration_path(resource_name), :class => :sign_up) }
51
+ def sign_up_link(options={}, html_options={})
52
+ capture { link_to(:'user.links.sign_up', new_registration_path(resource_name, options), { :class => :sign_up }.merge(html_options)) }
53
53
  end
54
54
 
55
55
  def forgot_password_link
@@ -6,6 +6,7 @@ class User::Passwords::Edit < User::Form
6
6
  end
7
7
 
8
8
  def fields
9
+ super
9
10
  form.hidden_field :reset_password_token
10
11
  form.input :password
11
12
  form.input :password_confirmation
@@ -15,4 +16,4 @@ class User::Passwords::Edit < User::Form
15
16
  [resource, { :as => resource_name, :url => password_path(resource_name), :html => { :method => :put } }]
16
17
  end
17
18
  end
18
- end
19
+ end
@@ -6,13 +6,15 @@ class User::Registrations::New < User::Form
6
6
  end
7
7
 
8
8
  def fields
9
+ super
10
+ pass_return_to
9
11
  form.input :email
10
12
  form.input :password
11
- form.input :password_confirmation
13
+ form.input :password_confirmation, :required => true
12
14
  end
13
15
 
14
16
  def form_arguments
15
17
  [resource, { :as => resource_name, :url => registration_path(resource_name) }]
16
18
  end
17
19
  end
18
- end
20
+ end
@@ -6,6 +6,7 @@ class User::Sessions::New < User::Form
6
6
  end
7
7
 
8
8
  def fields
9
+ super
9
10
  pass_return_to
10
11
  form.input :email
11
12
  form.input :password
@@ -6,6 +6,7 @@ class User::Unlocks::New < User::Form
6
6
  end
7
7
 
8
8
  def fields
9
+ super
9
10
  form.input :email
10
11
  end
11
12
 
@@ -13,4 +14,4 @@ class User::Unlocks::New < User::Form
13
14
  [resource, { :as => resource_name, :url => unlock_path(resource_name) }]
14
15
  end
15
16
  end
16
- end
17
+ end
@@ -59,7 +59,9 @@ en:
59
59
  send_instructions: 'You will receive an email with instructions about how to confirm your account in a few minutes.'
60
60
  confirmed: 'Your account was successfully confirmed. You are now signed in.'
61
61
  registrations:
62
+ inactive_signed_up: 'You have signed up successfully. However, we could not sign you in because your account is %{reason}. A confirmation was sent to your e-mail.'
62
63
  signed_up: 'You have signed up successfully. A confirmation was sent to your e-mail.'
64
+ inactive_signed_up: 'You have signed up successfully. However, we could not sign you in because your account is %{reason}. A confirmation was sent to your e-mail.'
63
65
  updated: 'You updated your account successfully.'
64
66
  destroyed: 'Bye! Your account was successfully cancelled. We hope to see you again soon.'
65
67
  unlocks:
@@ -85,3 +87,6 @@ en:
85
87
  sign_in: Sign in
86
88
  sign_up: Sign up
87
89
  sign_out: Sign out %{user}
90
+ flash:
91
+ admin:
92
+ access_denied: "Access Denied"
data/lib/adva/user.rb CHANGED
@@ -7,14 +7,15 @@ module Adva
7
7
 
8
8
  # TODO [config] should probably happen in the client app
9
9
  # for more devise options see http://bit.ly/bwxrGg
10
- initializer 'adva-user.devise_setup' do |app|
10
+ initializer 'adva-user.devise_setup', :before => 'action_mailer.set_configs' do |app|
11
11
 
12
12
  # FIXME [config]
13
- app.config.action_mailer.default_url_options = { :host => 'www.example.com' }
13
+ app.config.action_mailer.default_url_options ||= {}
14
+ app.config.action_mailer.default_url_options.reverse_merge!({ :host => 'www.example.com' })
14
15
 
15
16
  Devise.setup do |config|
16
17
  require 'devise/orm/active_record'
17
- config.mailer_sender = 'please-change-me@config-initializers-devise.com'
18
+ config.mailer_sender ||= 'please-change-me@config-initializers-devise.com'
18
19
  config.encryptor = :bcrypt
19
20
  config.password_length = 5..20
20
21
  end
@@ -0,0 +1,15 @@
1
+ module AdvaUser
2
+ module Authorization
3
+ def self.included(controller)
4
+ controller.class_eval do
5
+ before_filter :authorize_user!
6
+ end
7
+ end
8
+
9
+ def authorize_user!
10
+ unless current_user.admin?
11
+ redirect_to root_url, :flash => {:alert => I18n.translate('flash.admin.access_denied')}
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module AdvaUser
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.13"
3
3
  end
@@ -1,11 +1,14 @@
1
+ Factory::DefaultPassword = 'secret'
2
+
1
3
  Factory.define :user, :class => User do |f|
2
4
  f.sequence(:email) { |n| "user-#{n}@example.com" }
3
- f.password 'password'
5
+ f.password Factory::DefaultPassword
4
6
  f.after_build { |user| User.deactivate_callbacks }
5
7
  f.after_create { |user| user.confirm!; User.activate_callbacks }
6
8
  end
7
9
 
8
10
  Factory.define :admin, :parent => :user do |f|
11
+ # FIXME should be possible to create more than one admin
9
12
  f.email { User.find_by_email('admin@admin.org') ? 'admin-2@admin.org' : 'admin@admin.org' }
10
- f.password 'admin!'
13
+ f.roles %w(admin)
11
14
  end
@@ -1,16 +1,9 @@
1
- Given /^I am signed in with "([^"]*)" and "([^"]*)"$/ do |email, password|
2
- post user_session_path, :user => { :email => email, :password => password }
3
- @user = User.find_by_email(email)
4
- end
5
-
6
- # This step should only be used for testing the login itself (login.feature)
7
- # Please, use the step 'Given I am signed in with "admin@admin.org" and "admin!"' in all
8
- # other features for performance reasons.
9
- Given /^I sign in with "([^"]*)" and "([^"]*)"$/ do |email, password|
10
- get new_user_session_path
11
- fill_in 'Email', :with => email
12
- fill_in 'Password', :with => password
13
- click_button 'Sign in'
1
+ Given /^I (?:am signed|sign) in with "([^"]*)" and "([^"]*)"$/ do |email, password|
2
+ Given %Q~I am on the sign in page~
3
+ # use ids to be flexible about label changes
4
+ When %Q~I fill in "user_email" with "#{email}"~
5
+ And %Q~I fill in "user_password" with "#{password}"~
6
+ And %Q~I press "Sign in"~
14
7
  @user = User.find_by_email(email)
15
8
  end
16
9
 
@@ -23,3 +16,20 @@ Then 'I should be signed in' do
23
16
  When 'I go to the sign in page'
24
17
  Then 'I should be on the homepage'
25
18
  end
19
+
20
+ # Two ways to use:
21
+ # Given I am logged in as admin
22
+ # => created the admin and login
23
+ # Given a user "Peter" exists with email: "peter-lustig@example.com"
24
+ # And I am logged in as the user "Peter"
25
+ # => uses the prepared user to log in
26
+ #
27
+ # Please set the passwort if the user only for auth tests
28
+ Given /^I (?:am signed|sign) in as #{capture_model}$/ do |user|
29
+ unless user.include?('the') || user.include?('"')
30
+ Given %{#{user} exists}
31
+ end
32
+ user = model!(user)
33
+ And %Q~I am signed in with "#{user.email}" and "#{Factory::DefaultPassword}"~
34
+ end
35
+
metadata CHANGED
@@ -1,23 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adva-user
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 5
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 9
10
- version: 0.0.9
9
+ - 13
10
+ version: 0.0.13
11
11
  platform: ruby
12
12
  authors:
13
- - Ingo Weiss
14
13
  - Sven Fuchs
14
+ - Ingo Weiss
15
+ - Raphaela Wrede
16
+ - Matthias Viehweger
17
+ - Niklas Hofer
18
+ - Chris Floess
19
+ - Johannes Strampe
15
20
  autorequire:
16
21
  bindir: bin
17
22
  cert_chain: []
18
23
 
19
- date: 2011-02-28 00:00:00 +01:00
20
- default_executable:
24
+ date: 2011-07-29 00:00:00 Z
21
25
  dependencies:
22
26
  - !ruby/object:Gem::Dependency
23
27
  name: adva-core
@@ -41,15 +45,15 @@ dependencies:
41
45
  requirements:
42
46
  - - "="
43
47
  - !ruby/object:Gem::Version
44
- hash: 23
48
+ hash: 19
45
49
  segments:
46
50
  - 1
47
- - 1
48
- - 2
49
- version: 1.1.2
51
+ - 3
52
+ - 4
53
+ version: 1.3.4
50
54
  type: :runtime
51
55
  version_requirements: *id002
52
- description: User engine for adva-cms2
56
+ description: User engine for adva-cms2.
53
57
  email: nobody@adva-cms.org
54
58
  executables: []
55
59
 
@@ -58,38 +62,38 @@ extensions: []
58
62
  extra_rdoc_files: []
59
63
 
60
64
  files:
65
+ - app/controllers/admin/base_controller_slice.rb
66
+ - app/controllers/installations_controller_slice.rb
67
+ - app/controllers/user/confirmations_controller.rb
61
68
  - app/controllers/user/passwords_controller.rb
69
+ - app/controllers/user/registrations_controller.rb
62
70
  - app/controllers/user/sessions_controller.rb
63
71
  - app/controllers/user/unlocks_controller.rb
64
- - app/controllers/user/confirmations_controller.rb
65
- - app/controllers/user/registrations_controller.rb
66
- - app/controllers/installations_controller_slice.rb
67
- - app/controllers/admin/base_controller_slice.rb
68
- - app/views/layouts/user.rb
72
+ - app/models/account_slice.rb
73
+ - app/models/user.rb
69
74
  - app/views/layouts/admin/_header_slice.rb
70
- - app/views/user/unlocks/new.html.rb
71
- - app/views/user/sessions/new.html.rb
75
+ - app/views/layouts/user.rb
76
+ - app/views/mailer/confirmation_instructions.html.erb
77
+ - app/views/mailer/reset_password_instructions.html.erb
78
+ - app/views/mailer/unlock_instructions.html.erb
79
+ - app/views/user/confirmations/new.html.rb
80
+ - app/views/user/form.rb
72
81
  - app/views/user/passwords/edit.html.rb
73
82
  - app/views/user/passwords/new.html.rb
74
- - app/views/user/form.rb
75
- - app/views/user/confirmations/new.html.rb
76
83
  - app/views/user/registrations/edit.html.rb
77
84
  - app/views/user/registrations/new.html.rb
78
- - app/views/mailer/confirmation_instructions.html.erb
79
- - app/views/mailer/unlock_instructions.html.erb
80
- - app/views/mailer/reset_password_instructions.html.erb
81
- - app/models/user.rb
82
- - app/models/account_slice.rb
83
- - config/routes.rb
85
+ - app/views/user/sessions/new.html.rb
86
+ - app/views/user/unlocks/new.html.rb
84
87
  - config/locales/en.yml
88
+ - config/routes.rb
89
+ - lib/adva/user.rb
85
90
  - lib/adva-user.rb
91
+ - lib/adva_user/authorization.rb
86
92
  - lib/adva_user/version.rb
87
- - lib/adva/user.rb
88
93
  - lib/testing/factories.rb
89
94
  - lib/testing/paths.rb
90
95
  - lib/testing/step_definitions.rb
91
96
  - public/stylesheets/adva-user/user.css
92
- has_rdoc: true
93
97
  homepage: http://github.com/svenfuchs/adva-cms2
94
98
  licenses: []
95
99
 
@@ -119,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
123
  requirements: []
120
124
 
121
125
  rubyforge_project: "[none]"
122
- rubygems_version: 1.4.2
126
+ rubygems_version: 1.8.6
123
127
  signing_key:
124
128
  specification_version: 3
125
129
  summary: User engine for adva-cms2