From 0b6933b7acaadf77afad1b5c48cec207524a7dca Mon Sep 17 00:00:00 2001 From: Gregor Schmidt Date: Fri, 4 May 2018 11:54:44 +0200 Subject: [PATCH] /users API accepts boolean strings for generate_password field --- app/models/user.rb | 2 +- test/integration/api_test/users_test.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) 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', -- 2.14.1