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

Also available in: Atom PDF