@@ -72,22 +72,26 class UsersController < ApplicationController | |||||
72 | end |
|
72 | end | |
73 |
|
73 | |||
74 | def add |
|
74 | def add | |
75 | if request.get? |
|
75 | @user = User.new(:language => Setting.default_language) | |
76 | @user = User.new(:language => Setting.default_language) |
|
76 | @auth_sources = AuthSource.find(:all) | |
|
77 | end | |||
|
78 | ||||
|
79 | verify :method => :post, :only => :create, :render => {:nothing => true, :status => :method_not_allowed } | |||
|
80 | def create | |||
|
81 | @user = User.new(params[:user]) | |||
|
82 | @user.admin = params[:user][:admin] || false | |||
|
83 | @user.login = params[:user][:login] | |||
|
84 | @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless @user.auth_source_id | |||
|
85 | if @user.save | |||
|
86 | Mailer.deliver_account_information(@user, params[:password]) if params[:send_information] | |||
|
87 | flash[:notice] = l(:notice_successful_create) | |||
|
88 | redirect_to(params[:continue] ? {:controller => 'users', :action => 'add'} : | |||
|
89 | {:controller => 'users', :action => 'edit', :id => @user}) | |||
|
90 | return | |||
77 | else |
|
91 | else | |
78 | @user = User.new(params[:user]) |
|
92 | @auth_sources = AuthSource.find(:all) | |
79 | @user.admin = params[:user][:admin] || false |
|
93 | render :action => 'add' | |
80 | @user.login = params[:user][:login] |
|
|||
81 | @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless @user.auth_source_id |
|
|||
82 | if @user.save |
|
|||
83 | Mailer.deliver_account_information(@user, params[:password]) if params[:send_information] |
|
|||
84 | flash[:notice] = l(:notice_successful_create) |
|
|||
85 | redirect_to(params[:continue] ? {:controller => 'users', :action => 'add'} : |
|
|||
86 | {:controller => 'users', :action => 'edit', :id => @user}) |
|
|||
87 | return |
|
|||
88 | end |
|
|||
89 | end |
|
94 | end | |
90 | @auth_sources = AuthSource.find(:all) |
|
|||
91 | end |
|
95 | end | |
92 |
|
96 | |||
93 | def edit |
|
97 | def edit |
@@ -1,6 +1,6 | |||||
1 | <h2><%= link_to l(:label_user_plural), :controller => 'users', :action => 'index' %> » <%=l(:label_user_new)%></h2> |
|
1 | <h2><%= link_to l(:label_user_plural), :controller => 'users', :action => 'index' %> » <%=l(:label_user_new)%></h2> | |
2 |
|
2 | |||
3 |
<% labelled_tabular_form_for :user, @user, :url => { :action => " |
|
3 | <% labelled_tabular_form_for :user, @user, :url => { :action => "create" }, :html => { :class => nil } do |f| %> | |
4 | <%= render :partial => 'form', :locals => { :f => f } %> |
|
4 | <%= render :partial => 'form', :locals => { :f => f } %> | |
5 | <p><label><%= check_box_tag 'send_information', 1, true %> <%= l(:label_send_information) %></label></p> |
|
5 | <p><label><%= check_box_tag 'send_information', 1, true %> <%= l(:label_send_information) %></label></p> | |
6 | <p> |
|
6 | <p> |
@@ -148,7 +148,7 ActionController::Routing::Routes.draw do |map| | |||||
148 | end |
|
148 | end | |
149 | users.with_options :conditions => {:method => :post} do |user_actions| |
|
149 | users.with_options :conditions => {:method => :post} do |user_actions| | |
150 | user_actions.connect 'users', :action => 'add' |
|
150 | user_actions.connect 'users', :action => 'add' | |
151 |
user_actions.connect 'users/new', :action => ' |
|
151 | user_actions.connect 'users/new', :action => 'create' | |
152 | user_actions.connect 'users/:id/edit', :action => 'edit' |
|
152 | user_actions.connect 'users/:id/edit', :action => 'edit' | |
153 | user_actions.connect 'users/:id/memberships', :action => 'edit_membership' |
|
153 | user_actions.connect 'users/:id/memberships', :action => 'edit_membership' | |
154 | user_actions.connect 'users/:id/memberships/:membership_id', :action => 'edit_membership' |
|
154 | user_actions.connect 'users/:id/memberships/:membership_id', :action => 'edit_membership' |
@@ -24,7 +24,7 class UsersController; def rescue_action(e) raise e end; end | |||||
24 | class UsersControllerTest < ActionController::TestCase |
|
24 | class UsersControllerTest < ActionController::TestCase | |
25 | include Redmine::I18n |
|
25 | include Redmine::I18n | |
26 |
|
26 | |||
27 | fixtures :users, :projects, :members, :member_roles, :roles |
|
27 | fixtures :users, :projects, :members, :member_roles, :roles, :auth_sources | |
28 |
|
28 | |||
29 | def setup |
|
29 | def setup | |
30 | @controller = UsersController.new |
|
30 | @controller = UsersController.new | |
@@ -107,6 +107,46 class UsersControllerTest < ActionController::TestCase | |||||
107 | assert project_ids.include?(2) #private project admin can see |
|
107 | assert project_ids.include?(2) #private project admin can see | |
108 | end |
|
108 | end | |
109 |
|
109 | |||
|
110 | context "GET :add" do | |||
|
111 | setup do | |||
|
112 | get :add | |||
|
113 | end | |||
|
114 | ||||
|
115 | should_assign_to :user | |||
|
116 | should_respond_with :success | |||
|
117 | should_render_template :add | |||
|
118 | end | |||
|
119 | ||||
|
120 | context "POST :create" do | |||
|
121 | context "when successful" do | |||
|
122 | setup do | |||
|
123 | post :create, :user => { | |||
|
124 | :firstname => 'John', | |||
|
125 | :lastname => 'Doe', | |||
|
126 | :login => 'jdoe', | |||
|
127 | :password => 'test', | |||
|
128 | :password_confirmation => 'test', | |||
|
129 | :mail => 'jdoe@gmail.com' | |||
|
130 | } | |||
|
131 | end | |||
|
132 | ||||
|
133 | should_assign_to :user | |||
|
134 | should_respond_with :redirect | |||
|
135 | should_redirect_to('user edit') { {:controller => 'users', :action => 'edit', :id => User.find_by_login('jdoe')}} | |||
|
136 | end | |||
|
137 | ||||
|
138 | context "when unsuccessful" do | |||
|
139 | setup do | |||
|
140 | post :create, :user => {} | |||
|
141 | end | |||
|
142 | ||||
|
143 | should_assign_to :user | |||
|
144 | should_respond_with :success | |||
|
145 | should_render_template :add | |||
|
146 | end | |||
|
147 | ||||
|
148 | end | |||
|
149 | ||||
110 | def test_edit |
|
150 | def test_edit | |
111 | ActionMailer::Base.deliveries.clear |
|
151 | ActionMailer::Base.deliveries.clear | |
112 | post :edit, :id => 2, :user => {:firstname => 'Changed'} |
|
152 | post :edit, :id => 2, :user => {:firstname => 'Changed'} |
@@ -25,7 +25,7 class AdminTest < ActionController::IntegrationTest | |||||
25 | get "/users/add" |
|
25 | get "/users/add" | |
26 | assert_response :success |
|
26 | assert_response :success | |
27 | assert_template "users/add" |
|
27 | assert_template "users/add" | |
28 |
post "/users/ |
|
28 | post "/users/create", :user => { :login => "psmith", :firstname => "Paul", :lastname => "Smith", :mail => "psmith@somenet.foo", :language => "en" }, :password => "psmith09", :password_confirmation => "psmith09" | |
29 |
|
29 | |||
30 | user = User.find_by_login("psmith") |
|
30 | user = User.find_by_login("psmith") | |
31 | assert_kind_of User, user |
|
31 | assert_kind_of User, user | |
@@ -42,7 +42,7 class AdminTest < ActionController::IntegrationTest | |||||
42 | end |
|
42 | end | |
43 |
|
43 | |||
44 | test "Add a user as an anonymous user should fail" do |
|
44 | test "Add a user as an anonymous user should fail" do | |
45 |
post '/users/ |
|
45 | post '/users/create', :user => { :login => 'psmith', :firstname => 'Paul'}, :password => "psmith09", :password_confirmation => "psmith09" | |
46 | assert_response :redirect |
|
46 | assert_response :redirect | |
47 | assert_redirected_to "/login?back_url=http%3A%2F%2Fwww.example.com%2Fusers%2Fnew" |
|
47 | assert_redirected_to "/login?back_url=http%3A%2F%2Fwww.example.com%2Fusers%2Fnew" | |
48 | end |
|
48 | end |
@@ -250,7 +250,7 class RoutingTest < ActionController::IntegrationTest | |||||
250 | should_route :get, "/users/444/edit", :controller => 'users', :action => 'edit', :id => '444' |
|
250 | should_route :get, "/users/444/edit", :controller => 'users', :action => 'edit', :id => '444' | |
251 | should_route :get, "/users/222/edit/membership", :controller => 'users', :action => 'edit', :id => '222', :tab => 'membership' |
|
251 | should_route :get, "/users/222/edit/membership", :controller => 'users', :action => 'edit', :id => '222', :tab => 'membership' | |
252 |
|
252 | |||
253 |
should_route :post, "/users/new", :controller => 'users', :action => ' |
|
253 | should_route :post, "/users/new", :controller => 'users', :action => 'create' | |
254 | should_route :post, "/users/444/edit", :controller => 'users', :action => 'edit', :id => '444' |
|
254 | should_route :post, "/users/444/edit", :controller => 'users', :action => 'edit', :id => '444' | |
255 | should_route :post, "/users/123/memberships", :controller => 'users', :action => 'edit_membership', :id => '123' |
|
255 | should_route :post, "/users/123/memberships", :controller => 'users', :action => 'edit_membership', :id => '123' | |
256 | should_route :post, "/users/123/memberships/55", :controller => 'users', :action => 'edit_membership', :id => '123', :membership_id => '55' |
|
256 | should_route :post, "/users/123/memberships/55", :controller => 'users', :action => 'edit_membership', :id => '123', :membership_id => '55' |
General Comments 0
You need to be logged in to leave comments.
Login now