Project

General

Profile

Bug #8545

Erreur lors de l'accès à l'interface de gestion des permissions

Added by Victor Claudet over 4 years ago. Updated over 4 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
07 Oct 2015
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

constaté sur meaux.test et fontenay.test

https://demarches-fsb.test.au-quotidien.com/backoffice/settings/aq/permissions

Exception:
  type = '<type 'exceptions.ValueError'>', value = 'too many values to unpack'

Stack trace (most recent call first):
  File "/usr/lib/pymodules/python2.7/quixote/form/widget.py", line 375, in set_options
   373             if isinstance(first, tuple):
   374                 if len(first) == 2:
>  375                     for value, description in options:
   376                         values.append(value)
   377                         descriptions.append(description)

  locals: 
     sort = False
     description = 'Personne'
     keys = []
     self = <SingleSelectWidget at 44de290: forms>
     value = None
     values = [None]
     descriptions = ['Personne']
     options = [(None, 'Personne'), ('30', 'contact fibre', '30'), ('32', 'contact orange', '32'), ('33', 'Coordinateur DSI', '33'), ('29', 'direction DAG', '29'), ('35', 'Gestionnaire Cabinet', '35'), ('2', 'Gestionnaire dev \xc3\xa9conomique', '2'), ('25', 'Gestionnaire \xc3\x89tat-civil', '25'), ('3', 'Gestionnaire Police Municipale', '3'), ('1', 'Gestionnaire proximit\xc3\xa9', '1'), ('31', 'Gestionnaires DP3E', '31'), ('28', 'Ressources humaines / recrutement', '28'), ('26', 'Service com', '26'), ('9', 'Signalements - aire de jeux', '9'), ('34', 'Signalements -  DEA', '34'), ('13', 'Signalements - d\xc3\xa9capage sols', '13'), ('8', 'Signalements - divers', '8'), ('6', 'Signalements - \xc3\xa9clairage public', '6'), ('17', 'Signalements - \xc3\xa9lagage', '17'), ('11', 'Signalements - entreprises', '11'), ('18', 'Signalements - entretiens', '18'), ('14', 'Signalements - espace public', '14'), ('24', 'Signalements - hygi\xc3\xa8ne et s\xc3\xa9curit\xc3\xa9', '24'), ('23', 'Signalements - ma\xc3\xa7ons', '23'), ('20', 'Signalements - menuisiers', '20'), ('5', 'Signalements - mobilier urbain', '5'), ('15', 'Signalements - ordures m\xc3\xa9nag\xc3\xa8res', '15'), ('21', 'Signalements - plombiers', '21'), ('4', 'Signalements - responsable', '4'), ('22', 'Signalements - serruriers', '22'), ('7', 'Signalements - signalisation', '7'), ('19', 'Signalements - sous traitance', '19'), ('16', 'Signalements - tonte', '16'), ('12', 'Signalements - traitement tags', '12'), ('10', 'Signalements - transport', '10'), ('27', 'testeur', '27')]
     first = (None, 'Personne')

  File "/usr/lib/pymodules/python2.7/quixote/form/widget.py", line 306, in __init__
   304             raise ValueError, "a non-empty list of 'options' is required" 
   305         else:
>  306             self.set_options(options, sort)
   307         self.verify_selection = verify_selection
   308 

  locals: 
     sort = False
     name = 'forms'
     self = <SingleSelectWidget at 44de290: forms>
     value = None
     verify_selection = True
     kwargs = {'render_br': False, 'title': "R\xc3\xb4le d'administration des formulaires"}
     options = [(None, 'Personne'), ('30', 'contact fibre', '30'), ('32', 'contact orange', '32'), ('33', 'Coordinateur DSI', '33'), ('29', 'direction DAG', '29'), ('35', 'Gestionnaire Cabinet', '35'), ('2', 'Gestionnaire dev \xc3\xa9conomique', '2'), ('25', 'Gestionnaire \xc3\x89tat-civil', '25'), ('3', 'Gestionnaire Police Municipale', '3'), ('1', 'Gestionnaire proximit\xc3\xa9', '1'), ('31', 'Gestionnaires DP3E', '31'), ('28', 'Ressources humaines / recrutement', '28'), ('26', 'Service com', '26'), ('9', 'Signalements - aire de jeux', '9'), ('34', 'Signalements -  DEA', '34'), ('13', 'Signalements - d\xc3\xa9capage sols', '13'), ('8', 'Signalements - divers', '8'), ('6', 'Signalements - \xc3\xa9clairage public', '6'), ('17', 'Signalements - \xc3\xa9lagage', '17'), ('11', 'Signalements - entreprises', '11'), ('18', 'Signalements - entretiens', '18'), ('14', 'Signalements - espace public', '14'), ('24', 'Signalements - hygi\xc3\xa8ne et s\xc3\xa9curit\xc3\xa9', '24'), ('23', 'Signalements - ma\xc3\xa7ons', '23'), ('20', 'Signalements - menuisiers', '20'), ('5', 'Signalements - mobilier urbain', '5'), ('15', 'Signalements - ordures m\xc3\xa9nag\xc3\xa8res', '15'), ('21', 'Signalements - plombiers', '21'), ('4', 'Signalements - responsable', '4'), ('22', 'Signalements - serruriers', '22'), ('7', 'Signalements - signalisation', '7'), ('19', 'Signalements - sous traitance', '19'), ('16', 'Signalements - tonte', '16'), ('12', 'Signalements - traitement tags', '12'), ('10', 'Signalements - transport', '10'), ('27', 'testeur', '27')]

  File "/usr/lib/pymodules/python2.7/quixote/form/form.py", line 234, in add
   232         if name in self._names:
   233             raise ValueError, "form already has '%s' widget" % name
>  234         widget = widget_class(name, *args, **kwargs)
   235         self._names[name] = widget
   236         if isinstance(widget, SubmitWidget):

  locals: 
     widget_class = <class 'quixote.form.widget.SingleSelectWidget'>
     self = <qommon.form.Form object at 0x44debd0>
     args = ()
     name = 'forms'
     kwargs = {'value': None, 'options': [(None, 'Personne'), ('30', 'contact fibre', '30'), ('32', 'contact orange', '32'), ('33', 'Coordinateur DSI', '33'), ('29', 'direction DAG', '29'), ('35', 'Gestionnaire Cabinet', '35'), ('2', 'Gestionnaire dev \xc3\xa9conomique', '2'), ('25', 'Gestionnaire \xc3\x89tat-civil', '25'), ('3', 'Gestionnaire Police Municipale', '3'), ('1', 'Gestionnaire proximit\xc3\xa9', '1'), ('31', 'Gestionnaires DP3E', '31'), ('28', 'Ressources humaines / recrutement', '28'), ('26', 'Service com', '26'), ('9', 'Signalements - aire de jeux', '9'), ('34', 'Signalements -  DEA', '34'), ('13', 'Signalements - d\xc3\xa9capage sols', '13'), ('8', 'Signalements - divers', '8'), ('6', 'Signalements - \xc3\xa9clairage public', '6'), ('17', 'Signalements - \xc3\xa9lagage', '17'), ('11', 'Signalements - entreprises', '11'), ('18', 'Signalements - entretiens', '18'), ('14', 'Signalements - espace public', '14'), ('24', 'Signalements - hygi\xc3\xa8ne et s\xc3\xa9curit\xc3\xa9', '24'), ('23', 'Signalements - ma\xc3\xa7ons', '23'), ('20', 'Signalements - menuisiers', '20'), ('5', 'Signalements - mobilier urbain', '5'), ('15', 'Signalements - ordures m\xc3\xa9nag\xc3\xa8res', '15'), ('21', 'Signalements - plombiers', '21'), ('4', 'Signalements - responsable', '4'), ('22', 'Signalements - serruriers', '22'), ('7', 'Signalements - signalisation', '7'), ('19', 'Signalements - sous traitance', '19'), ('16', 'Signalements - tonte', '16'), ('12', 'Signalements - traitement tags', '12'), ('10', 'Signalements - transport', '10'), ('27', 'testeur', '27')], 'render_br': False, 'title': "R\xc3\xb4le d'administration des formulaires"}

  File "/usr/lib/python2.7/dist-packages/wcs/qommon/form.py", line 264, in add
   262             advanced = True
   263             del kwargs['advanced']
>  264         QuixoteForm.add(self, widget_class, name, *args, **kwargs)
   265         widget = self._names[name]
   266         widget.advanced = advanced

  locals: 
     name = 'forms'
     self = <qommon.form.Form object at 0x44debd0>
     args = ()
     widget_class = <class 'quixote.form.widget.SingleSelectWidget'>
     kwargs = {'render_br': False, 'options': [(None, 'Personne'), ('30', 'contact fibre', '30'), ('32', 'contact orange', '32'), ('33', 'Coordinateur DSI', '33'), ('29', 'direction DAG', '29'), ('35', 'Gestionnaire Cabinet', '35'), ('2', 'Gestionnaire dev \xc3\xa9conomique', '2'), ('25', 'Gestionnaire \xc3\x89tat-civil', '25'), ('3', 'Gestionnaire Police Municipale', '3'), ('1', 'Gestionnaire proximit\xc3\xa9', '1'), ('31', 'Gestionnaires DP3E', '31'), ('28', 'Ressources humaines / recrutement', '28'), ('26', 'Service com', '26'), ('9', 'Signalements - aire de jeux', '9'), ('34', 'Signalements -  DEA', '34'), ('13', 'Signalements - d\xc3\xa9capage sols', '13'), ('8', 'Signalements - divers', '8'), ('6', 'Signalements - \xc3\xa9clairage public', '6'), ('17', 'Signalements - \xc3\xa9lagage', '17'), ('11', 'Signalements - entreprises', '11'), ('18', 'Signalements - entretiens', '18'), ('14', 'Signalements - espace public', '14'), ('24', 'Signalements - hygi\xc3\xa8ne et s\xc3\xa9curit\xc3\xa9', '24'), ('23', 'Signalements - ma\xc3\xa7ons', '23'), ('20', 'Signalements - menuisiers', '20'), ('5', 'Signalements - mobilier urbain', '5'), ('15', 'Signalements - ordures m\xc3\xa9nag\xc3\xa8res', '15'), ('21', 'Signalements - plombiers', '21'), ('4', 'Signalements - responsable', '4'), ('22', 'Signalements - serruriers', '22'), ('7', 'Signalements - signalisation', '7'), ('19', 'Signalements - sous traitance', '19'), ('16', 'Signalements - tonte', '16'), ('12', 'Signalements - traitement tags', '12'), ('10', 'Signalements - transport', '10'), ('27', 'testeur', '27')], 'value': None, 'title': "R\xc3\xb4le d'administration des formulaires"}
     advanced = False

  File "/usr/lib/pymodules/python2.7/extra-wcs-au-quotidien/modules/admin.py", line 86, in permissions
    84         form.add(SingleSelectWidget, 'forms', title = _('Admin role for forms'),
    85                 value = permissions_cfg.get('forms', None),
>   86                 options = [(None, _('Nobody'))] + get_user_roles())
    87         form.add(SingleSelectWidget, 'events', title = _('Admin role for events'),
    88                 value = permissions_cfg.get('events', None),

  locals: 
     permissions_cfg = {}
     self = <modules.admin.PanelDirectory object at 0x810f050>
     form = <qommon.form.Form object at 0x44debd0>

  File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 67, in _q_traverse
    65                 raise TraversalError
    66         elif hasattr(obj, '__call__'):
>   67             return obj()
    68         else:
    69             return obj

  locals: 
     component = 'permissions'
     self = <modules.admin.PanelDirectory object at 0x810f050>
     obj = <bound method PanelDirectory.permissions of <modules.admin.PanelDirectory object at 0x810f050>>
     name = 'permissions'
     path = []

  File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 63, in _q_traverse
    61         if path:
    62             if hasattr(obj, '_q_traverse'):
>   63                 return obj._q_traverse(path)
    64             else:
    65                 raise TraversalError

  locals: 
     component = 'aq'
     self = <modules.admin.SettingsDirectory object at 0x44b9710>
     obj = <modules.admin.PanelDirectory object at 0x810f050>
     name = None
     path = ['permissions']

  File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 91, in _q_traverse
    89     def _q_traverse(self, path):
    90         self._q_access()
>   91         return super(AccessControlled, self)._q_traverse(path)
    92 
    93 

  locals: 
     path = ['aq', 'permissions']
     self = <modules.admin.SettingsDirectory object at 0x44b9710>

  File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 63, in _q_traverse
    61         if path:
    62             if hasattr(obj, '_q_traverse'):
>   63                 return obj._q_traverse(path)
    64             else:
    65                 raise TraversalError

  locals: 
     component = 'settings'
     self = <modules.backoffice.BackofficeRootDirectory object at 0x44b9090>
     obj = <modules.admin.SettingsDirectory object at 0x44b9710>
     name = 'settings'
     path = ['aq', 'permissions']

  File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 91, in _q_traverse
    89     def _q_traverse(self, path):
    90         self._q_access()
>   91         return super(AccessControlled, self)._q_traverse(path)
    92 
    93 

  locals: 
     path = ['settings', 'aq', 'permissions']
     self = <modules.backoffice.BackofficeRootDirectory object at 0x44b9090>

  File "/usr/lib/python2.7/dist-packages/wcs/backoffice/root.py", line 85, in _q_traverse
    83                 pass
    84         get_response().add_javascript(['jquery.js', 'gadjo.sidepage.js'])
>   85         return super(RootDirectory, self)._q_traverse(path)
    86 
    87     @classmethod

  locals: 
     path = ['settings', 'aq', 'permissions']
     self = <modules.backoffice.BackofficeRootDirectory object at 0x44b9090>

  File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 63, in _q_traverse
    61         if path:
    62             if hasattr(obj, '_q_traverse'):
>   63                 return obj._q_traverse(path)
    64             else:
    65                 raise TraversalError

  locals: 
     component = 'backoffice'
     self = <modules.root.AlternateRootDirectory object at 0x44b9690>
     obj = <modules.backoffice.BackofficeRootDirectory object at 0x44b9090>
     name = 'backoffice'
     path = ['settings', 'aq', 'permissions']

  File "/usr/lib/pymodules/python2.7/extra-wcs-au-quotidien/modules/root.py", line 845, in _q_traverse
   843                     return redirect('%s%s/%s' % (base_url, f.category.url_name, uri_rest))
   844 
>  845             raise e
   846 
   847 

  locals: 
     path = ['backoffice', 'settings', 'aq', 'permissions']
     self = <modules.root.AlternateRootDirectory object at 0x44b9690>
     response = <qommon.http_response.HTTPResponse instance at 0x7e33368>

  File "/usr/lib/pymodules/python2.7/quixote/publish.py", line 253, in try_publish
   251                 permanent=True)
   252         components = path[1:].split('/')
>  253         output = self.root_directory._q_traverse(components)
   254         # The callable ran OK, commit any changes to the session
   255         self.finish_successful_request()

  locals: 
     path = '/backoffice/settings/aq/permissions'
     self = <publisher.WcsPublisher instance at 0x43cb5f0>
     request = <qommon.http_request.HTTPRequest instance at 0x80f7638>
     components = ['backoffice', 'settings', 'aq', 'permissions']

  File "/usr/lib/python2.7/dist-packages/wcs/qommon/publisher.py", line 616, in try_publish
   614         for extra_source in self.extra_sources:
   615             self.substitutions.feed(extra_source(self, request))
>  616         return Publisher.try_publish(self, request)
   617 
   618     def get_site_language(self):

  locals: 
     extra_source = <class 'modules.abelium_domino_vars.DominoVariables'>
     pystatsd = <module 'qommon.vendor.pystatsd' from '/usr/lib/python2.7/dist-packages/wcs/qommon/vendor/pystatsd.pyc'>
     request = <qommon.http_request.HTTPRequest instance at 0x80f7638>
     script_name = ''
     prefix = 'm'
     override_template_keys = {'m': 'mobile'}
     canonical_hostname = 'meaux.test.au-quotidien.com'
     self = <publisher.WcsPublisher instance at 0x43cb5f0>

  File "/usr/lib/python2.7/dist-packages/wcs/publisher.py", line 215, in try_publish
   213         if request.get_header('X_WCS_IFRAME_MODE', '') in ('true', 'yes'):
   214             request.response.iframe_mode = True
>  215         return QommonPublisher.try_publish(self, request)
   216 
   217     def initialize_sql(self):

  locals: 
     self = <publisher.WcsPublisher instance at 0x43cb5f0>
     request = <qommon.http_request.HTTPRequest instance at 0x80f7638>

  File "/usr/lib/pymodules/python2.7/quixote/publish.py", line 281, in process_request
   279         except:
   280             # Some other exception, generate error messages to the logs, etc.
>  281             output = self.finish_failed_request()
   282         output = self.filter_output(request, output)
   283         self.logger.log_request(request, start_time)

  locals: 
     start_time = 1444231341.834367
     request = <qommon.http_request.HTTPRequest instance at 0x80f7638>
     self = <publisher.WcsPublisher instance at 0x43cb5f0>

  File "/usr/lib/python2.7/dist-packages/wcs/qommon/publisher.py", line 920, in process
   918     def process(self, stdin, env):
   919         request = HTTPRequest(stdin, env)
>  920         self.response = self.process_request(request)
   921         return self.response
   922 

  locals: 
     self = <publisher.WcsPublisher instance at 0x43cb5f0>
     stdin = <open file '<socket>', mode 'r' at 0x44c4c90>
     request = <qommon.http_request.HTTPRequest instance at 0x80f7638>
     env = {'HTTP_X_AU_QUOTIDIEN_LOCKED': 'False', 'HTTP_REFERER': 'https://meaux.test.au-quotidien.com/backoffice/settings/', 'SERVER_SOFTWARE': 'Apache/2.2.22 (Debian)', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/backoffice/settings/aq/permissions', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'SSL_TLS_SNI': 'meaux.test.au-quotidien.com', 'CONTENT_LENGTH': '0', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'wcs-74174c="bbfba3494636f41f"; wcs-04c243="7043fe18d9e90004"; wcs-efaac7="c3fe524907d6888a"; wcs-8fc710="f35fd1a484def27b"; wcs-0b61bc="e25b83a0b32a01aa"; wcs-cb2590="b1d902fbf01eab09"', 'SERVER_NAME': 'meaux.test.au-quotidien.com', 'REMOTE_ADDR': '109.190.108.22', 'SERVER_PORT': '443', 'SERVER_ADDR': '94.23.114.98', 'DOCUMENT_ROOT': '/usr/share/wcs/web/', 'SERVER_ADMIN': 'webmaster@au-quotidien.com', 'SCRIPT_URI': 'https://meaux.test.au-quotidien.com/backoffice/settings/aq/permissions', 'REMOTE_USER': '8', 'HTTP_HOST': 'meaux.test.au-quotidien.com', 'SCRIPT_URL': '/backoffice/settings/aq/permissions', 'HTTPS': 'on', 'REQUEST_URI': '/backoffice/settings/aq/permissions', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'REMOTE_PORT': '55064', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,zh-CN;q=0.2,zh;q=0.2,ru;q=0.2,ar;q=0.2,zh-TW;q=0.2,ko;q=0.2', 'SCGI': '1', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, sdch'}

  File "/usr/lib/pymodules/python2.7/quixote/server/scgi_server.py", line 27, in handle_connection
    25             env['PATH_INFO'] = path[len(prefix):] + env.get('PATH_INFO', '')
    26 
>   27         response = self.publisher.process(input, env)
    28         try:
    29             response.write(output)

  locals: 
     output = <open file '<socket>', mode 'w' at 0x44c4f60>
     self = <qommon.scgi_server.QommonHandler instance at 0x43cb2d8>
     conn = <socket object, fd=19, family=2, type=1, protocol=0>
     env = {'HTTP_X_AU_QUOTIDIEN_LOCKED': 'False', 'HTTP_REFERER': 'https://meaux.test.au-quotidien.com/backoffice/settings/', 'SERVER_SOFTWARE': 'Apache/2.2.22 (Debian)', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/backoffice/settings/aq/permissions', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'SSL_TLS_SNI': 'meaux.test.au-quotidien.com', 'CONTENT_LENGTH': '0', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'wcs-74174c="bbfba3494636f41f"; wcs-04c243="7043fe18d9e90004"; wcs-efaac7="c3fe524907d6888a"; wcs-8fc710="f35fd1a484def27b"; wcs-0b61bc="e25b83a0b32a01aa"; wcs-cb2590="b1d902fbf01eab09"', 'SERVER_NAME': 'meaux.test.au-quotidien.com', 'REMOTE_ADDR': '109.190.108.22', 'SERVER_PORT': '443', 'SERVER_ADDR': '94.23.114.98', 'DOCUMENT_ROOT': '/usr/share/wcs/web/', 'SERVER_ADMIN': 'webmaster@au-quotidien.com', 'SCRIPT_URI': 'https://meaux.test.au-quotidien.com/backoffice/settings/aq/permissions', 'REMOTE_USER': '8', 'HTTP_HOST': 'meaux.test.au-quotidien.com', 'SCRIPT_URL': '/backoffice/settings/aq/permissions', 'HTTPS': 'on', 'REQUEST_URI': '/backoffice/settings/aq/permissions', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'REMOTE_PORT': '55064', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,zh-CN;q=0.2,zh;q=0.2,ru;q=0.2,ar;q=0.2,zh-TW;q=0.2,ko;q=0.2', 'SCGI': '1', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, sdch'}
     input = <open file '<socket>', mode 'r' at 0x44c4c90>

  File "/usr/lib/python2.7/dist-packages/wcs/qommon/scgi_server.py", line 35, in handle_connection
    33     def handle_connection(self, conn):
    34         self.number_of_connection_handled = self.number_of_connection_handled + 1
>   35         quixote.server.scgi_server.QuixoteHandler.handle_connection(self, conn)
    36         # input, output and conn are closed, long running jobs could be done
    37         # here.

  locals: 
     self = <qommon.scgi_server.QommonHandler instance at 0x43cb2d8>
     conn = <socket object, fd=19, family=2, type=1, protocol=0>

  File "/usr/lib/pymodules/python2.7/scgi/scgi_server.py", line 71, in serve
    69             conn.setblocking(1)
    70             os.close(fd)
>   71             self.handle_connection(conn)
    72 
    73 

  locals: 
     self = <qommon.scgi_server.QommonHandler instance at 0x43cb2d8>
     fd = 18
     conn = <socket object, fd=19, family=2, type=1, protocol=0>

  File "/usr/lib/pymodules/python2.7/scgi/scgi_server.py", line 194, in spawn_child
   192                              # the connection in the child
   193             os.close(child_fd)
>  194             self.handler_class(parent_fd).serve()
   195             sys.exit(0)
   196         else:

  locals: 
     self = <qommon.scgi_server.SCGIServer instance at 0x43cb0e0>
     pid = 0
     flags = 2
     child_fd = 18
     parent_fd = 17
     conn = None

  File "/usr/lib/pymodules/python2.7/scgi/scgi_server.py", line 172, in __init__
   170         self.max_children = max_children
   171         self.children = {} # { pid : fd }
>  172         self.spawn_child()
   173         self.restart = 0
   174 

  locals: 
     max_children = 5
     host = 'localhost'
     handler_class = <function create_handler at 0x44b72a8>
     port = 3001
     self = <qommon.scgi_server.SCGIServer instance at 0x43cb0e0>

  File "/usr/lib/python2.7/dist-packages/wcs/qommon/scgi_server.py", line 73, in run
    71 
    72     s = SCGIServer(create_handler, host=host, port=port,
>   73                                max_children=max_children)
    74     s.serve()
    75 

  locals: 
     create_handler = <function create_handler at 0x44b72a8>
     handler_connection_limit = -1
     max_children = 5
     create_publisher = <bound method classobj.create_publisher of <class publisher.WcsPublisher at 0x3a64870>>
     script_name = None
     host = 'localhost'
     spawn_cron = True
     port = 3001

  File "/usr/lib/python2.7/dist-packages/wcs/ctl/start.py", line 138, in execute
   136 
   137         try:
>  138             run_function(publisher.WcsPublisher.create_publisher, **run_kwargs)
   139         except socket.error, e:
   140             self.del_pid()

  locals: 
     publisher = <module 'publisher' from '/usr/lib/python2.7/dist-packages/wcs/publisher.pyc'>
     base_app_dir = '/var/lib/wcs-au-quotidien'
     args = []
     tenant_path = '/var/lib/wcs-au-quotidien/jerome.au-quotidien.com'
     self = <wcs.ctl.start.CmdStart object at 0x33c0250>
     hostname = 'jerome.au-quotidien.com'
     pub = <publisher.WcsPublisher instance at 0x44c36c8>
     sub_options = <Values at 0x33de758: {'http': False, 'silent': False, 'app_dir': None, 'extra': ['/usr/lib/pymodules/python2.7/extra-wcs-au-quotidien/'], 'max_children': None, 'handler_connection_limit': None, 'script_name': None, 'daemonize': False, 'data_dir': None, 'port': 3001, 'pidfile': None}>
     run_function = <function run at 0x33dfd70>
     base_options = <Values at 0x33acc68: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}>
     run_kwargs = {'port': 3001, 'spawn_cron': True}

  File "/usr/lib/python2.7/dist-packages/wcs/qommon/ctl.py", line 69, in run
    67             for i, extra in enumerate(sub_options.extra):
    68                 self.config.set("extra", "cmd_line_extra_%d" % i, extra)
>   69         return self.execute(base_options, sub_options, args)
    70 
    71     def parse_args(self, args):

  locals: 
     extra = '/usr/lib/pymodules/python2.7/extra-wcs-au-quotidien/'
     i = 0
     self = <wcs.ctl.start.CmdStart object at 0x33c0250>
     args = []
     sub_options = <Values at 0x33de758: {'http': False, 'silent': False, 'app_dir': None, 'extra': ['/usr/lib/pymodules/python2.7/extra-wcs-au-quotidien/'], 'max_children': None, 'handler_connection_limit': None, 'script_name': None, 'daemonize': False, 'data_dir': None, 'port': 3001, 'pidfile': None}>
     base_options = <Values at 0x33acc68: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}>

  File "/usr/lib/python2.7/dist-packages/wcs/qommon/ctl.py", line 159, in run
   157         command_class = self.get_commands()[command]
   158         cmd = command_class()
>  159         return cmd.run(args, options)
   160 

  locals: 
     cmd = <wcs.ctl.start.CmdStart object at 0x33c0250>
     args = ['--extra', '/usr/lib/pymodules/python2.7/extra-wcs-au-quotidien/']
     self = <wcs.qommon.ctl.Ctl object at 0x3344e10>
     command_class = <class 'wcs.ctl.start.CmdStart'>
     command = 'start'
     cmd_prefix = 'wcs.ctl'
     options = <Values at 0x33acc68: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}>

  File "/usr/sbin/wcsctl", line 8, in <module>
     6 
     7 ctl = wcs.qommon.ctl.Ctl(cmd_prefixes=['wcs.ctl'])
>    8 ctl.run(sys.argv[1:])
     9 

  locals: 
     wcs = <module 'wcs' from '/usr/lib/python2.7/dist-packages/wcs/__init__.pyc'>
     __builtins__ = <module '__builtin__' (built-in)>
     __file__ = '/usr/sbin/wcsctl'
     __package__ = None
     sys = <module 'sys' (built-in)>
     ctl = <wcs.qommon.ctl.Ctl object at 0x3344e10>
     __name__ = '__main__'
     __doc__ = None

Form:

Cookies:
wcs-04c243      '7043fe18d9e90004'
wcs-0b61bc      'e25b83a0b32a01aa'
wcs-74174c      'bbfba3494636f41f'
wcs-8fc710      'f35fd1a484def27b'
wcs-cb2590      'b1d902fbf01eab09'
wcs-efaac7      'c3fe524907d6888a'

Environment:
CONTENT_LENGTH  '0'
DOCUMENT_ROOT   '/usr/share/wcs/web/'
HTTPS           'on'
HTTP_ACCEPT     'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
HTTP_ACCEPT_ENCODING 'gzip, deflate, sdch'
HTTP_ACCEPT_LANGUAGE 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,zh-CN;q=0.2,zh;q=0.2,ru;q=0.2,ar;q=0.2,zh-TW;q=0.2,ko;q=0.2'
HTTP_CONNECTION 'keep-alive'
HTTP_COOKIE     'wcs-74174c="bbfba3494636f41f"; wcs-04c243="7043fe18d9e90004"; wcs-efaac7="c3fe524907d6888a"; wcs-8fc710="f35fd1a484def27b"; wcs-0b61bc="e25b83a0b32a01aa"; wcs-cb2590="b1d902fbf01eab09"'
HTTP_HOST       'meaux.test.au-quotidien.com'
HTTP_REFERER    'https://meaux.test.au-quotidien.com/backoffice/settings/'
HTTP_USER_AGENT 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36'
HTTP_X_AU_QUOTIDIEN_LOCKED 'False'
PATH_INFO       '/backoffice/settings/aq/permissions'
QUERY_STRING    ''
REMOTE_ADDR     '109.190.108.22'
REMOTE_PORT     '55064'
REMOTE_USER     '8'
REQUEST_METHOD  'GET'
REQUEST_URI     '/backoffice/settings/aq/permissions'
SCGI            '1'
SCRIPT_NAME     ''
SCRIPT_URI      'https://meaux.test.au-quotidien.com/backoffice/settings/aq/permissions'
SCRIPT_URL      '/backoffice/settings/aq/permissions'
SERVER_ADDR     '94.23.114.98'
SERVER_ADMIN    'webmaster@au-quotidien.com'
SERVER_NAME     'meaux.test.au-quotidien.com'
SERVER_PORT     '443'
SERVER_PROTOCOL 'HTTP/1.1'
SERVER_SOFTWARE 'Apache/2.2.22 (Debian)'
SSL_TLS_SNI     'meaux.test.au-quotidien.com'

0001-admin-adapt-custom-permission-panel-to-get_user_role.patch View (2.43 KB) Frédéric Péters, 07 Oct 2015 06:24 PM

Associated revisions

Revision a52481cc (diff)
Added by Frédéric Péters over 4 years ago

admin: adapt custom permission panel to get_user_roles() change (#8545)

History

#1 Updated by Victor Claudet over 4 years ago

  • Related to Bug #8324: Supprimer l'accès à la gestion des utilisateurs wcs added

#2 Updated by Frédéric Péters over 4 years ago

  • Project changed from w.c.s. to Au quotidien

(les perms d'auquo, pas les vraies perms)

#3 Updated by Frédéric Péters over 4 years ago

  • Related to deleted (Bug #8324: Supprimer l'accès à la gestion des utilisateurs wcs)

#4 Updated by Frédéric Péters over 4 years ago

Ce que je dis là, c'est que pour "cacher" utilisateurs/rôles, ce n'est pas à cette page, qui concerne les trucs auquotidien (événements, actus, etc.). Ce que tu cherches c'est "Permissions d'administration" dans le pavé "Sécurité".

#5 Updated by Frédéric Péters over 4 years ago

J'avais ce patch dans mon arbre local mais même pas commité. :/

#6 Updated by Thomas Noël over 4 years ago

Ack

#7 Updated by Frédéric Péters over 4 years ago

  • Status changed from En cours to Résolu (à déployer)
commit a52481cc3aac1a9f9d341961cc892eb7e1d93921
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Wed Oct 7 18:23:30 2015 +0200

    admin: adapt custom permission panel to get_user_roles() change (#8545)

#8 Updated by Frédéric Péters over 4 years ago

  • Status changed from Résolu (à déployer) to Fermé

Also available in: Atom PDF