Project

General

Profile

Actions

Defect #28686

closed

/users API does not accept boolean-like String values for generate_password

Added by Gregor Schmidt almost 6 years ago. Updated almost 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
REST API
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
Fixed
Affected version:

Description

When creating a new user using the XML Rest API and the following XML, Redmine is not generating a new password.

<user>
    <login>test</login>
    <firstname>test</firstname>
    <lastname>test</lastname>
    <mail>test@example.org</mail>
    <generate_password>true</generate_password>
    <must_change_passwd>true</must_change_passwd>
</user>

The true value for must_change_passwd works as expected, the one for generate_password is ignored.

The reason for that is, that must_change_passwd is a proper database column and ActiveRecord will translate certain expected values to Boolean true. Among these are "1", "true", and true. In contrast generate_password is a virtual attribute, which is not backed by a database column. Redmine has its own code to handle the translation here. But this custom code only accepts "1" and true, i.e it's missing the "true" option.

The attached patch fixes this shortcoming by using ActiveRecord's translation method directly.


Files

Actions #1

Updated by Gregor Schmidt almost 6 years ago

Please note, that since Rails 5 the way how strings are converted to booleans has changed. Previously anything but a small well known list of values was considered true. Now anything but a small well know list of strings is considered false. Consequently, with the proposed change this would also be applied to the generate_password field.

I think this would be a good thing, since it's improving consistency. But I wanted to mention it anyway.

Actions #2

Updated by Go MAEDA almost 6 years ago

  • Status changed from New to Confirmed
  • Target version set to 4.1.0

Confirmed the problem. Setting target version to 4.1.0.

Actions #3

Updated by Go MAEDA almost 6 years ago

  • Status changed from Confirmed to Closed
  • Target version changed from 4.1.0 to 4.0.0
  • Resolution set to Fixed

Committed. Thank you for detecting and fixing this issue.

Actions #4

Updated by Go MAEDA almost 6 years ago

  • Assignee set to Go MAEDA
Actions

Also available in: Atom PDF