Description of problem: UserA only have loan-self permission for one system, and he tries to loan this system to others. It will show 500 ERROR. Version-Release number of selected component (if applicable): develope How reproducible: 100% Steps to Reproduce: 1. Open one system, and add user-A loan-self permission 2. Log in with user-A account 3. User-A loan this system to UserB. Actual results: Sep 18 08:42:33 beaker-devel beaker-server[4580]: cherrypy.msg INFO HTTP: Page handler: <bound method SystemsController.update_loan of <bkr.server.systems.SystemsController object at 0x7f31db2d5290>> Sep 18 08:42:33 beaker-devel beaker-server[4580]: Traceback (most recent call last): Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/CherryPy-2.3.0-py2.6.egg/cherrypy/_cphttptools.py", line 121, in _run Sep 18 08:42:33 beaker-devel beaker-server[4580]: self.main() Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/CherryPy-2.3.0-py2.6.egg/cherrypy/_cphttptools.py", line 264, in main Sep 18 08:42:33 beaker-devel beaker-server[4580]: body = page_handler(*virtual_path, **self.params) Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "<string>", line 3, in update_loan Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 361, in expose Sep 18 08:42:33 beaker-devel beaker-server[4580]: *args, **kw) Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/bkr/server/wsgi.py", line 54, in run_with_transaction_noop Sep 18 08:42:33 beaker-devel beaker-server[4580]: return func(*args, **kwargs) Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "<generated code>", line 0, in _expose Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/peak/rules/core.py", line 153, in __call__ Sep 18 08:42:33 beaker-devel beaker-server[4580]: return self.body(*args, **kw) Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 390, in <lambda> Sep 18 08:42:33 beaker-devel beaker-server[4580]: fragment, options, args, kw))) Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 425, in _execute_func Sep 18 08:42:33 beaker-devel beaker-server[4580]: output = errorhandling.try_call(func, *args, **kw) Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/turbogears/errorhandling.py", line 77, in try_call Sep 18 08:42:33 beaker-devel beaker-server[4580]: return func(self, *args, **kw) Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "<string>", line 2, in update_loan Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/bkr/server/identity.py", line 242, in require Sep 18 08:42:33 beaker-devel beaker-server[4580]: return func(*args, **kwargs) Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/bkr/server/systems.py", line 44, in update_loan Sep 18 08:42:33 beaker-devel beaker-server[4580]: system.change_loan(loaning_to, loan_comment) Sep 18 08:42:33 beaker-devel beaker-server[4580]: File "/usr/lib/python2.6/site-packages/bkr/server/model.py", line 2548, in change_loan Sep 18 08:42:33 beaker-devel beaker-server[4580]: raise BX(_("Insufficient permissions to create loan")) Sep 18 08:42:33 beaker-devel beaker-server[4580]: BX: Insufficient permissions to create loan Sep 18 08:42:33 beaker-devel beaker-server[4580]: bkr.server.wsgi DEBUG Rolling back for 500 response Sep 18 08:42:36 beaker-devel beaker-server[4581]: bkr.server.xmlrpccontroller DEBUG Time: 0:00:00.019760 labcontrollers.get_queued_command_details () Sep 18 08:42:42 beaker-devel beaker-server[4579]: bkr.server.xmlrpccontroller DEBUG Time: 0:00:00.000161 auth.renew_se Expected results: Show the wrong message: Have no permission to loan this system to others. or something else. Additional info:
Also this one: Sep 18 09:40:54 beaker-devel beaker-server[4581]: Traceback (most recent call last): Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/CherryPy-2.3.0-py2.6.egg/cherrypy/_cphttptools.py", line 121, in _run Sep 18 09:40:54 beaker-devel beaker-server[4581]: self.main() Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/CherryPy-2.3.0-py2.6.egg/cherrypy/_cphttptools.py", line 264, in main Sep 18 09:40:54 beaker-devel beaker-server[4581]: body = page_handler(*virtual_path, **self.params) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "<string>", line 3, in return_loan Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 361, in expose Sep 18 09:40:54 beaker-devel beaker-server[4581]: *args, **kw) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/bkr/server/wsgi.py", line 54, in run_with_transaction_noop Sep 18 09:40:54 beaker-devel beaker-server[4581]: return func(*args, **kwargs) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "<generated code>", line 0, in _expose Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/peak/rules/core.py", line 153, in __call__ Sep 18 09:40:54 beaker-devel beaker-server[4581]: return self.body(*args, **kw) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 390, in <lambda> Sep 18 09:40:54 beaker-devel beaker-server[4581]: fragment, options, args, kw))) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 425, in _execute_func Sep 18 09:40:54 beaker-devel beaker-server[4581]: output = errorhandling.try_call(func, *args, **kw) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/turbogears/errorhandling.py", line 77, in try_call Sep 18 09:40:54 beaker-devel beaker-server[4581]: return func(self, *args, **kw) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "<string>", line 2, in return_loan Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/bkr/server/identity.py", line 242, in require Sep 18 09:40:54 beaker-devel beaker-server[4581]: return func(*args, **kwargs) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/bkr/server/systems.py", line 32, in return_loan Sep 18 09:40:54 beaker-devel beaker-server[4581]: return self.update_loan(fqdn=fqdn, loaned=None) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "<string>", line 3, in update_loan Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 356, in expose Sep 18 09:40:54 beaker-devel beaker-server[4581]: *args, **kw) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "<generated code>", line 0, in _expose Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/peak/rules/core.py", line 153, in __call__ Sep 18 09:40:54 beaker-devel beaker-server[4581]: return self.body(*args, **kw) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 390, in <lambda> Sep 18 09:40:54 beaker-devel beaker-server[4581]: fragment, options, args, kw))) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 425, in _execute_func Sep 18 09:40:54 beaker-devel beaker-server[4581]: output = errorhandling.try_call(func, *args, **kw) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/turbogears/errorhandling.py", line 77, in try_call Sep 18 09:40:54 beaker-devel beaker-server[4581]: return func(self, *args, **kw) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "<string>", line 2, in update_loan Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/bkr/server/identity.py", line 242, in require Sep 18 09:40:54 beaker-devel beaker-server[4581]: return func(*args, **kwargs) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/bkr/server/systems.py", line 44, in update_loan Sep 18 09:40:54 beaker-devel beaker-server[4581]: system.change_loan(loaning_to, loan_comment) Sep 18 09:40:54 beaker-devel beaker-server[4581]: File "/usr/lib/python2.6/site-packages/bkr/server/model.py", line 2551, in change_loan Sep 18 09:40:54 beaker-devel beaker-server[4581]: raise BX(_("Insufficient permissions to return loan"))
The patch for bug 1011858 at least turns this into a 403 error, but still doesn't show a proper error message.
*** This bug has been marked as a duplicate of bug 999391 ***