← Back to team overview

dhis2-devs team mailing list archive

Re: User Module - Error deleting user

 

Paulo,

I think what you expect is that the user is deleted. That will not happen,
maybe 2.27.

Pleases make sure Jason is feeling you actual cases we can fix.

-- 
Morten Olav Hansen
Senior Engineer, DHIS 2
University of Oslo
http://www.dhis2.org

On Thu, Jun 16, 2016 at 11:44 PM, Paulo Grácio <paulogracio@xxxxxxxxx>
wrote:

> I have created a test case that tries to delete the default admin user. I
> get back a 500 with the web message payload, but looks like something is
> being delete because after that I can't login into the application with
> that user and also http://localhost:8085/api/users?query=admin returns an
> empty list
>
> {
>   "pager": {
>     "page": 1,
>     "pageCount": 1,
>     "total": 0,
>     "pageSize": 50
>   },
>   "users": []
> }
>
> Do you protect all resources with authentication? For instance if I try to
> create a new user with admin/district I'm getting 409. Was expecting to get
> a 401 Unauthorized or 403 Forbidden
>
> {
>   "httpStatus": "Conflict",
>   "httpStatusCode": 409,
>   "status": "ERROR",
>   "message": "You must have permissions to create user, or ability to
> manage at least one user group for the user."
> }
>
> BR,
> Paulo
>
> On Thu, Jun 16, 2016 at 10:12 AM Morten Olav Hansen <morten@xxxxxxxxx>
> wrote:
>
>> It will return same status as before (500) but now it will return a web
>> message payload with info (from hibernate)
>>
>> --
>> Morten Olav Hansen
>> Senior Engineer, DHIS 2
>> University of Oslo
>> http://www.dhis2.org
>>
>> On Thu, Jun 16, 2016 at 3:01 PM, Jason Pickering <
>> jason.p.pickering@xxxxxxxxx> wrote:
>>
>>> I guess the scenario we need to test is for users which CANNOT be
>>> deleted for whatever reason. This is a bit more difficult to test, but
>>> should be able to be done with the "system" user .There are a whole slew of
>>> objects which are attached with FK references to userinfo, so it should be
>>> pretty easy to create a user, create a dependent object, and then attempt
>>> to delete the user. I think your fix Morten would in this case return a
>>> different error (or at least a different response) than when the user
>>> actually could be deleted?
>>>
>>>
>>> On Thu, Jun 16, 2016 at 9:56 AM, Morten Olav Hansen <morten@xxxxxxxxx>
>>> wrote:
>>>
>>>> Right, so the user was deleted? 204 is expected for that. It's only for
>>>> server errors I have changed
>>>>
>>>> --
>>>> Morten Olav Hansen
>>>> Senior Engineer, DHIS 2
>>>> University of Oslo
>>>> http://www.dhis2.org
>>>>
>>>> On Thu, Jun 16, 2016 at 2:26 PM, Paulo Grácio <paulogracio@xxxxxxxxx>
>>>> wrote:
>>>>
>>>>> http://localhost:8085/api/users/URq9lLcM8ID
>>>>>
>>>>> 204 NO CONTENT
>>>>> The server has successfully fulfilled the request and that there is no
>>>>> additional content to send in the response payload body.
>>>>>
>>>>> On Thu, Jun 16, 2016 at 9:24 AM Morten Olav Hansen <morten@xxxxxxxxx>
>>>>> wrote:
>>>>>
>>>>>> 204? for which endpoint? that doesn't sound right :)
>>>>>>
>>>>>> --
>>>>>> Morten Olav Hansen
>>>>>> Senior Engineer, DHIS 2
>>>>>> University of Oslo
>>>>>> http://www.dhis2.org
>>>>>>
>>>>>> On Thu, Jun 16, 2016 at 2:22 PM, Paulo Grácio <paulogracio@xxxxxxxxx>
>>>>>> wrote:
>>>>>>
>>>>>>> Great, getting a 204.
>>>>>>>
>>>>>>> On Thu, Jun 16, 2016 at 8:39 AM Morten Olav Hansen <morten@xxxxxxxxx>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hibernate exception should now be caught, and a web message sent
>>>>>>>> back, please try it out. Also added a new default exception handler, which
>>>>>>>> unwraps the message and sends back to the user (full stack trace is still
>>>>>>>> available on the server).
>>>>>>>>
>>>>>>>> @Paulo: deletions -should- be allowed... but I don't think it will
>>>>>>>> be fixed in time for 2.24, at least now our error message should be a bit
>>>>>>>> more clear
>>>>>>>>
>>>>>>>> --
>>>>>>>> Morten Olav Hansen
>>>>>>>> Senior Engineer, DHIS 2
>>>>>>>> University of Oslo
>>>>>>>> http://www.dhis2.org
>>>>>>>>
>>>>>>>> On Tue, Jun 14, 2016 at 7:26 PM, Paulo Grácio <
>>>>>>>> paulogracio@xxxxxxxxx> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> maybe I'm missing something but,  just one more question, is there
>>>>>>>>> any situation where we can delete a user?
>>>>>>>>>
>>>>>>>>> If not maybe we can return 403 - Method Not Allowed, once DELETE
>>>>>>>>> is not supported by User resource.
>>>>>>>>>
>>>>>>>>> /Paulo
>>>>>>>>>
>>>>>>>>> On Tue, Jun 14, 2016 at 12:56 PM Jason Pickering <
>>>>>>>>> jason.p.pickering@xxxxxxxxx> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Morten,
>>>>>>>>>>
>>>>>>>>>> We discussed by chat, but just for the benefit of others and to
>>>>>>>>>> be sure that the test seems reasonable. The scenario is that when users
>>>>>>>>>> which cannot be deleted for various reasons (like associated with this
>>>>>>>>>> object or that object) cannot be deleted, the server returns something like
>>>>>>>>>>
>>>>>>>>>> 500: could not reassociate uninitialized transient collection
>>>>>>>>>>
>>>>>>>>>> or
>>>>>>>>>>
>>>>>>>>>> * ERROR 2016-06-14 12:45:35,311 Error while executing action
>>>>>>>>>> (ExceptionInterceptor.java [http-bio-8080-exec-8])
>>>>>>>>>> org.springframework.dao.DataIntegrityViolationException: could
>>>>>>>>>> not execute statement; SQL [n/a]; constraint [fk_document_userid]; nested
>>>>>>>>>> exception is org.hibernate.exception.ConstraintViolationException: could
>>>>>>>>>> not execute statement
>>>>>>>>>>
>>>>>>>>>> from the server side.
>>>>>>>>>>
>>>>>>>>>> What happens from the UI  is you get a "Deleting..." message
>>>>>>>>>> which spins forever. I think it might be better to catch the error and
>>>>>>>>>> return this to the client  and inform them that the user could not be
>>>>>>>>>> deleted due to associations/constraints/ etc similar to when you attempt to
>>>>>>>>>> delete an organisation unit or data element, which cannot be deleted.
>>>>>>>>>>
>>>>>>>>>> A 500 seems to be an unexpected error, but in this case, we
>>>>>>>>>> should know that the user cannot be deleted due to constraints. Hope this
>>>>>>>>>> makes sense.
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>> Jason
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Tue, Jun 14, 2016 at 12:07 PM, Morten Olav Hansen <
>>>>>>>>>> morten@xxxxxxxxx> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hm, a 403 (Forbidden) makes it seem like the user is trying to
>>>>>>>>>>> do something he should not be allowed. I think 500 is fine in this case, as
>>>>>>>>>>> it signals an internal server error.
>>>>>>>>>>>
>>>>>>>>>>> Probably we should be better at catching these exception, and
>>>>>>>>>>> returning some kind of message to the user (not just 500 internal error
>>>>>>>>>>> which doesn't really mean anything to the end user).
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Morten Olav Hansen
>>>>>>>>>>> Senior Engineer, DHIS 2
>>>>>>>>>>> University of Oslo
>>>>>>>>>>> http://www.dhis2.org
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Jun 14, 2016 at 4:42 PM, Jason Pickering <
>>>>>>>>>>> jason.p.pickering@xxxxxxxxx> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Morten,
>>>>>>>>>>>>
>>>>>>>>>>>> As we continue with the development of the integration tetss,
>>>>>>>>>>>> part of it will be to determine what is the expected response to certain
>>>>>>>>>>>> operations. Maybe the fixes will not lead to a 500, or maybe that would be
>>>>>>>>>>>> the expected response. Maybe a 403 or something would be better than a 500,
>>>>>>>>>>>> if you are not allowed to delete a user for some reason?
>>>>>>>>>>>>
>>>>>>>>>>>> Regards,
>>>>>>>>>>>> Jason
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Tue, Jun 14, 2016 at 11:35 AM, Morten Olav Hansen <
>>>>>>>>>>>> morten@xxxxxxxxx> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Paulo
>>>>>>>>>>>>>
>>>>>>>>>>>>> I have made a few changes to trunk and 2.23 which might help
>>>>>>>>>>>>> you. That said, there are still a few cases where deletion will not be
>>>>>>>>>>>>> allowed.
>>>>>>>>>>>>>
>>>>>>>>>>>>> You could also try to simple disable the user, so they are not
>>>>>>>>>>>>> allowed to login.
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Morten Olav Hansen
>>>>>>>>>>>>> Senior Engineer, DHIS 2
>>>>>>>>>>>>> University of Oslo
>>>>>>>>>>>>> http://www.dhis2.org
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Mon, Jun 13, 2016 at 11:32 PM, Paulo Grácio <
>>>>>>>>>>>>> paulogracio@xxxxxxxxx> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Lars,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> you can find the server.log in attach. The test case is also
>>>>>>>>>>>>>> available here
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> https://github.com/pgracio/dhis2-api-system-test/blob/master/modules/users.js
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> BR,
>>>>>>>>>>>>>> Paulo
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Mon, Jun 13, 2016 at 10:01 AM Lars Helge Øverland <
>>>>>>>>>>>>>> lars@xxxxxxxxx> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Paulo,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> can you check the tomcat log on the server side?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> What likely is going on here is the user being associated
>>>>>>>>>>>>>>> with multiple objects through sharing (e.g. data elements), or as owner
>>>>>>>>>>>>>>> (e.g. favorites). The deletion handling of users is not fully in place,
>>>>>>>>>>>>>>> simply because almost all of our tables potentially can be linked to the
>>>>>>>>>>>>>>> user table.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> regards,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Lars
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Sat, Jun 11, 2016 at 6:54 PM, Paulo Grácio <
>>>>>>>>>>>>>>> paulogracio@xxxxxxxxx> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> when trying to delete an user using API, DELETE -
>>>>>>>>>>>>>>>> http://localhost:8085/api/users/zTsuPZnHqaO I'm getting a
>>>>>>>>>>>>>>>> 500 - Internal Error with
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Request processing failed; nested exception is
>>>>>>>>>>>>>>>> org.springframework.dao.DataIntegrityViolationException: could not execute
>>>>>>>>>>>>>>>> statement; SQL [n/a]; constraint [fk6a68e08f19893da]; nested exception is
>>>>>>>>>>>>>>>> org.hibernate.exception.ConstraintViolationException: could not execute
>>>>>>>>>>>>>>>> statement
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> is this expected? Should I make a different call before
>>>>>>>>>>>>>>>> delete the User? It works fine when deleting in Web UI.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>>>>> Paulo
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Lars Helge Øverland
>>>>>>>>>>>>>>> Lead developer, DHIS 2
>>>>>>>>>>>>>>> University of Oslo
>>>>>>>>>>>>>>> Skype: larshelgeoverland
>>>>>>>>>>>>>>> lars@xxxxxxxxx
>>>>>>>>>>>>>>> http://www.dhis2.org <https://www.dhis2.org/>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Jason P. Pickering
>>>>>>>>>>>> email: jason.p.pickering@xxxxxxxxx
>>>>>>>>>>>> tel:+46764147049
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Jason P. Pickering
>>>>>>>>>> email: jason.p.pickering@xxxxxxxxx
>>>>>>>>>> tel:+46764147049
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>>>
>>>
>>> --
>>> Jason P. Pickering
>>> email: jason.p.pickering@xxxxxxxxx
>>> tel:+46764147049
>>>
>>
>>

Follow ups

References