rules_engine_users 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -2,7 +2,7 @@ module RulesEngine
2
2
  module ControllerUsers
3
3
  ######### Requires the following paths
4
4
  ######### root_path
5
-
5
+
6
6
  USER_ACCESS_LEVEL = [
7
7
  ["Administrator", User::ACCESS_LEVEL_ADMIN],
8
8
  ["Account Disabled", User::ACCESS_LEVEL_DISABLED]
@@ -11,7 +11,7 @@ module RulesEngine
11
11
  # Inclusion hook to make #current_user #logged_in? and #logged_in_as_admin?
12
12
  # available as ActionView helper methods.
13
13
  def self.included(base)
14
- base.send :helper_method, :current_user, :logged_in?, :logged_in_as_admin?, :logged_in_disabled?, :user_access_level, :user_access_levels
14
+ base.send :helper_method, :current_user, :logged_in?, :logged_in_as_admin?, :logged_in_disabled?, :user_access_level, :user_access_levels, :can_signup?
15
15
  base.send :before_filter, :set_timezone
16
16
 
17
17
  base.class_eval do
@@ -70,6 +70,10 @@ module RulesEngine
70
70
  Time.zone = logged_in? ? current_user.time_zone : "Eastern Time (US & Canada)"
71
71
  end
72
72
 
73
+ def can_signup?
74
+ ActionController::Base.can_signup?
75
+ end
76
+
73
77
  module ClassMethods
74
78
  def define_access_level name, access_level
75
79
  (class << self; self end).instance_eval do
@@ -97,6 +101,14 @@ module RulesEngine
97
101
 
98
102
  self.send :helper_method, "#{name}?"
99
103
  end
104
+
105
+ def can_signup=(can_signup)
106
+ @can_signup = can_signup
107
+ end
108
+
109
+ def can_signup?
110
+ @can_signup || false
111
+ end
100
112
  end
101
113
 
102
114
  protected
@@ -59,10 +59,22 @@ class UsersController < ApplicationController
59
59
  end
60
60
 
61
61
  def signup_form
62
- @user = User.new(:time_zone => 'Eastern Time (US & Canada)', :access_level => UsersController.traveller_access_level)
62
+ if can_signup?
63
+ @user = User.new(:time_zone => 'Eastern Time (US & Canada)', :access_level => UsersController.rules_engine_reader_access_level)
63
64
 
64
- if logged_in?
65
- flash[:success] = "User already logged in"
65
+ if logged_in?
66
+ flash[:success] = "User already logged in"
67
+ respond_to do |format|
68
+ format.html do
69
+ redirect_to(root_path)
70
+ end
71
+ format.js do
72
+ render :inline => "window.location.href = '#{root_path}';"
73
+ end
74
+ end
75
+ end
76
+ else
77
+ flash[:error] = "Signup not supported"
66
78
  respond_to do |format|
67
79
  format.html do
68
80
  redirect_to(root_path)
@@ -70,14 +82,28 @@ class UsersController < ApplicationController
70
82
  format.js do
71
83
  render :inline => "window.location.href = '#{root_path}';"
72
84
  end
73
- end
74
- end
85
+ end
86
+ end
75
87
  end
76
88
 
77
89
  def signup
78
- @user = User.new(params[:user].merge(:access_level => UsersController.traveller_access_level))
79
- if @user.save
80
- flash[:success] = "A welcome email has been sent to confirm login details"
90
+ if can_signup?
91
+ @user = User.new(params[:user].merge(:access_level => UsersController.rules_engine_reader_access_level))
92
+ if @user.save
93
+ flash[:success] = "A welcome email has been sent to confirm login details"
94
+ respond_to do |format|
95
+ format.html do
96
+ redirect_to(root_path)
97
+ end
98
+ format.js do
99
+ render :inline => "window.location.href = '#{root_path}';"
100
+ end
101
+ end
102
+ else
103
+ render :action => 'signup_form'
104
+ end
105
+ else
106
+ flash[:error] = "Signup not supported"
81
107
  respond_to do |format|
82
108
  format.html do
83
109
  redirect_to(root_path)
@@ -85,9 +111,7 @@ class UsersController < ApplicationController
85
111
  format.js do
86
112
  render :inline => "window.location.href = '#{root_path}';"
87
113
  end
88
- end
89
- else
90
- render :action => 'signup_form'
114
+ end
91
115
  end
92
116
  end
93
117
 
@@ -10,7 +10,9 @@
10
10
 
11
11
  <div class="span-8">
12
12
  <div class="float-left">
13
- <%= re_button_link_blue("Signup ?", user_signup_path, :class => "fancybox-link") %>
13
+ <% if can_signup? %>
14
+ <%= re_button_link_blue("Signup ?", user_signup_path, :class => "fancybox-link") %>
15
+ <% end %>
14
16
  <%= re_button_link_blue("Forgot Password ?", user_pswd_forgot_path, :class => "fancybox-link") %>
15
17
  </div>
16
18
  </div>
@@ -2,3 +2,5 @@ ActionController::Base.define_access_level(:rules_engine_editor, 10)
2
2
  ActionController::Base.define_access_level(:rules_engine_reader, 5)
3
3
  # ActionController::Base.define_access_level(:more_access, 7)
4
4
  # ActionController::Base.define_access_level(:less_access, 3)
5
+
6
+ ActionController::Base.can_signup = false
@@ -76,8 +76,8 @@ ActionController::Routing::Routes.draw do |map|
76
76
  map.with_options :controller => 'users', :path_prefix => '/user', :name_prefix => 'user_' do |user|
77
77
  user.login '/', :action => 'login_form', :conditions => { :method => :get }
78
78
  user.login '/', :action => 'login', :conditions => { :method => :post }
79
- user.signup '/signup', :action => 'signup_form', :conditions => { :method => :get }
80
- user.signup '/signup', :action => 'signup', :conditions => { :method => :post }
79
+ # user.signup '/signup', :action => 'signup_form', :conditions => { :method => :get }
80
+ # user.signup '/signup', :action => 'signup', :conditions => { :method => :post }
81
81
  user.logout '/logout', :action => 'logout'
82
82
  user.pswd_forgot '/pswd_forgot', :action => 'pswd_forgot_form', :conditions => { :method => :get }
83
83
  user.pswd_forgot '/pswd_forgot', :action => 'pswd_forgot', :conditions => { :method => :post }
@@ -153,32 +153,48 @@ describe UsersController do
153
153
  describe "GET signup_form" do
154
154
  it "should render the 'signup_form' template" do
155
155
  get :signup_form
156
- response.should render_template(:signup_form)
156
+ if controller.can_signup?
157
+ response.should render_template(:signup_form)
158
+ else
159
+ response.should redirect_to(root_path)
160
+ end
157
161
  end
158
162
 
159
163
  it "should render 'signup_form' template for JAVASCRIPT" do
160
- xhr :get, :signup_form
161
- response.should render_template(:signup_form)
164
+ if controller.can_signup?
165
+ xhr :get, :signup_form
166
+ if controller.can_signup?
167
+ response.should render_template(:signup_form)
168
+ else
169
+ response.body.should == "window.location.href = '#{root_path}';"
170
+ end
171
+ end
162
172
  end
163
-
173
+
164
174
  describe "already logged in" do
165
175
  before(:each) do
166
176
  controller.stub!(:logged_in?).and_return(true)
167
177
  end
168
178
 
169
179
  it "should set a success message if already lodded in" do
170
- get :signup_form
171
- flash[:success].should_not be_blank
180
+ if controller.can_signup?
181
+ get :signup_form
182
+ flash[:success].should_not be_blank
183
+ end
172
184
  end
173
185
 
174
186
  it "should redirect to the root_path" do
175
- get :signup_form
176
- response.should redirect_to(root_path)
187
+ if controller.can_signup?
188
+ get :signup_form
189
+ response.should redirect_to(root_path)
190
+ end
177
191
  end
178
-
192
+
179
193
  it "should redirect to the root_path JAVASCRIPT" do
180
- xhr :get, :signup_form
181
- response.body.should == "window.location.href = '#{root_path}';"
194
+ if controller.can_signup?
195
+ xhr :get, :signup_form
196
+ response.body.should == "window.location.href = '#{root_path}';"
197
+ end
182
198
  end
183
199
  end
184
200
  end
@@ -224,7 +224,7 @@ describe "ControllerUsers", :type => :controller do
224
224
 
225
225
  describe "_access_level" do
226
226
  it "should return the access level" do
227
- ActionController::Base.reporter_access_level.should == 200
227
+ MockControllerUsersController.reporter_access_level.should == 200
228
228
  end
229
229
  end
230
230
 
@@ -316,6 +316,15 @@ describe "ControllerUsers", :type => :controller do
316
316
  end
317
317
  end
318
318
 
319
+ describe "can_signup?" do
320
+ it "should be able to set the value" do
321
+ ActionController::Base.can_signup = true
322
+ controller.should be_can_signup
323
+ ActionController::Base.can_signup = false
324
+ controller.should_not be_can_signup
325
+ end
326
+ end
327
+
319
328
  describe "user time zone" do
320
329
  it "Set the time zone to the user's timezone" do
321
330
  controller.stub!(:current_user).and_return(@current_user)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rules_engine_users
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chris Douglas
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-26 00:00:00 +10:00
18
+ date: 2010-09-02 00:00:00 +10:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency