Bug 1009333

Summary: Beaker shows 500 error when someone tries to loan one system to others, but he only has loan-self permission
Product: [Retired] Beaker Reporter: xjia <xjia>
Component: web UIAssignee: beaker-dev-list
Status: CLOSED DUPLICATE QA Contact: tools-bugs <tools-bugs>
Severity: high Docs Contact:
Priority: high    
Version: developCC: aigao, asaha, dcallagh, mjia, qwan, rmancy, thenzl, tools-bugs, xtian
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-04-14 00:46:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1011858    
Bug Blocks:    

Description xjia 2013-09-18 08:49:05 UTC
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:

Comment 2 xjia 2013-09-18 09:41:53 UTC
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"))

Comment 3 Nick Coghlan 2013-10-10 06:33:32 UTC
The patch for bug 1011858 at least turns this into a 403 error, but still doesn't show a proper error message.

Comment 5 matt jia 2014-04-14 00:46:08 UTC

*** This bug has been marked as a duplicate of bug 999391 ***