From: Go MAEDA Date: Sun, 6 May 2018 08:31:23 +0000 (+0000) Subject: /users API accepts boolean strings for generate_password field (#28686). X-Git-Tag: 4.0.0~308 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=43d9bea7c5da32a99c3ebdb828e23d6a02c31c12;p=redmine.git /users API accepts boolean strings for generate_password field (#28686). Patch by Gregor Schmidt. git-svn-id: http://svn.redmine.org/redmine/trunk@17327 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/user.rb b/app/models/user.rb index 4440edf1c..15d6333c6 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -354,7 +354,7 @@ class User < Principal end def generate_password? - generate_password == '1' || generate_password == true + ActiveRecord::Type::Boolean.new.deserialize(generate_password) end # Generate and set a random password on given length diff --git a/test/integration/api_test/users_test.rb b/test/integration/api_test/users_test.rb index 468caf398..192557808 100644 --- a/test/integration/api_test/users_test.rb +++ b/test/integration/api_test/users_test.rb @@ -152,6 +152,22 @@ class Redmine::ApiTest::UsersTest < Redmine::ApiTest::Base assert_select 'user id', :text => user.id.to_s end + test "POST /users.xml with generate_password should generate password" do + assert_difference('User.count') do + post '/users.xml', + :params => { + :user => { + :login => 'foo', :firstname => 'Firstname', :lastname => 'Lastname', + :mail => 'foo@example.net', :generate_password => 'true' + } + }, + :headers => credentials('admin') + end + + user = User.order('id DESC').first + assert user.hashed_password.present? + end + test "POST /users.json with valid parameters should create the user" do assert_difference('User.count') do post '/users.json',