← Back to team overview

dhis2-devs team mailing list archive

Re: User PUT issue

 

Hey Greg,

The section of the documentation you included has a reference to the user
object schema, which specifies that for the user object only firstName and
surname are required (/api/schemas/user). I've just tried in 2.27 (not sure
if things changed in 2.29) and this is the minimal package i was able to
use to update the user object:

{
    "id": "Vx7Vgp1I3EK",
    "surname": "Doe",
    "firstName": "John"
}

However, if you include the userCredentials object, you have to include the
id, otherwise it attempts to create a new one and ends up throwing the
already exists. Similarly, /api/schemas/userCredentials has the details
about minimum requirement, and that is username, but as you are doing an
update you have to specify the id as well.

PUT of the entire object with save date and the rest works for me too.

Vlad

On Tue, Aug 14, 2018 at 12:17 PM Greg Wilson <gwilson@xxxxxxxxxxxxxx> wrote:

> Thank you Hendrik.  PATCH is the way to go for most objects.
> Unfortunately (per or discussion and here for posterity) it does not
> currently work with user.userGroupos and user.userCredentials.userRoles. I
> will need to make a clean copy of the user object and PUT.
>
> *Gregory Wilson*
>
> On Tue, Aug 14, 2018 at 8:16 AM Hendrik de Graaf <hendrik@xxxxxxxxx>
> wrote:
>
>> Hi Gregory,
>>
>> For updating a single field on a user record, I would try doing a PATCH
>> request with exactly the same payload as you were doing.
>>
>> I do this type of request to disable a user in the User Management app,
>> so it should work.
>>
>> Best regards,
>> Hendrik
>> On 14 Aug 2018, 11:16 +0200, Greg Wilson <gwilson@xxxxxxxxxxxxxx>, wrote:
>>
>> Can someone tell me what I am doing wrong here? According to the docs (
>> https://docs.dhis2.org/2.29/en/developer/html/dhis2_developer_manual_full.html#webapi_users_create_update)
>> this should work to update a user's account:
>>
>> curl -X PUT -u "admin:district" -d @u.json -H "Content-Type:
>> application/json" https://play.dhis2.org/2.26/api/26/users/DXyJmlo9rge
>>
>> In this case I am using {"firstName":"ATEST"} as the u.json file.
>> Unfortunately I keep receiving errors such as:
>>
>> "Missing required property `surname`."
>>
>> If I send a more complete user object it complains that I am missing the
>> userCredentials.username property. When I add that, it complains that user
>> already exists.
>>
>> *Gregory Wilson*
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-devs
>> Post to : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dhis2-devs
>> More help : https://help.launchpad.net/ListHelp
>>
>> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>

Follow ups

References