Yeah, it should have rolled back.. so it partially deleting something? I don't think our `deletion handlers` does everything in the same transaction.. so it won't do a proper rollback..
-- Morten Olav Hansen Senior Engineer, DHIS 2 University of Oslo http://www.dhis2.org On Fri, Jun 17, 2016 at 12:54 AM, Paulo Grácio <paulogra...@gmail.com> wrote: > Hi Morten, > > this test case expects a failure(500) when deleting the admin user. The > problem is that something is being deleted, once the user is not allowed to > authenticate again. Please see log attached. Basically I was expecting the > transaction to rollback and keep database state. > > BR, > Paulo > > > > On Thu, Jun 16, 2016 at 7:30 PM Morten Olav Hansen <mor...@dhis2.org> > wrote: > >> 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 <paulogra...@gmail.com> >> 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 <mor...@dhis2.org> >>> 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.picker...@gmail.com> 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 <mor...@dhis2.org> >>>>> 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 <paulogra...@gmail.com> >>>>>> 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 <mor...@dhis2.org> >>>>>>> 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 < >>>>>>>> paulogra...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Great, getting a 204. >>>>>>>>> >>>>>>>>> On Thu, Jun 16, 2016 at 8:39 AM Morten Olav Hansen < >>>>>>>>> mor...@dhis2.org> 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 < >>>>>>>>>> paulogra...@gmail.com> 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.picker...@gmail.com> 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 < >>>>>>>>>>>> mor...@dhis2.org> 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.picker...@gmail.com> 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 < >>>>>>>>>>>>>> mor...@dhis2.org> 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 < >>>>>>>>>>>>>>> paulogra...@gmail.com> 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 < >>>>>>>>>>>>>>>> l...@dhis2.org> 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 < >>>>>>>>>>>>>>>>> paulogra...@gmail.com> 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@lists.launchpad.net >>>>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>>>>>> l...@dhis2.org >>>>>>>>>>>>>>>>> http://www.dhis2.org <https://www.dhis2.org/> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>> Mailing list: https://launchpad.net/~dhis2-devs >>>>>>>>>>>>>>>> Post to : dhis2-devs@lists.launchpad.net >>>>>>>>>>>>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>>>>>>>>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>> Mailing list: https://launchpad.net/~dhis2-devs >>>>>>>>>>>>>>> Post to : dhis2-devs@lists.launchpad.net >>>>>>>>>>>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>>>>>>>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Jason P. Pickering >>>>>>>>>>>>>> email: jason.p.picker...@gmail.com >>>>>>>>>>>>>> tel:+46764147049 >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Jason P. Pickering >>>>>>>>>>>> email: jason.p.picker...@gmail.com >>>>>>>>>>>> tel:+46764147049 >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Jason P. Pickering >>>>> email: jason.p.picker...@gmail.com >>>>> tel:+46764147049 >>>>> >>>> >>>> >>
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp