Bug #3657
sql: crash quand la table users n'existe pas encore
Statut:
Fermé
Priorité:
Immediat
Assigné à:
-
Version cible:
-
Début:
24 septembre 2013
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Planning:
Description
Quand on arrive sur un site wcs en mode SQL et que la table users n'existe pas encore, l'accès à /admin plante car le test "get_publisher().user_class.count() > 0" ne fonctionne pas :
Exception: type = '<class 'psycopg2.ProgrammingError'>', value = 'ERREUR: la relation users n'ex iste pas LINE 1: SELECT count(*) FROM users ^ ' Stack trace (most recent call first): File "/usr/lib/python2.6/site-packages/wcs/sql.py", line 238, in count 236 conn, cur = get_connection_and_cursor() 237 sql_statement = 'SELECT count(*) FROM %s' % cls._table_name > 238 cur.execute(sql_statement) 239 count = cur.fetchone()[0] 240 conn.commit() locals: sql_statement = 'SELECT count(*) FROM users' cur = <cursor object at 0x2488de0; closed: 0> conn = <connection object at 0x2a50010; dsn: 'dbname=wcs', closed: 0> cls = <class 'sql.SqlUser'> File "/usr/lib/python2.6/site-packages/wcs/sql.py", line 95, in f 93 except psycopg2.Error: 94 get_connection().rollback() > 95 raise 96 return f 97 locals: args = (<class 'sql.SqlUser'>,) func = <function count at 0x1d52410> kwargs = {} File "/usr/lib/python2.6/site-packages/wcs/admin/root.ptl", line 90, in _q_access 88 raise errors.AccessForbiddenError() 89 else: > 90 if get_publisher().user_class.count() > 0: 91 raise errors.AccessUnauthorizedError() 92
Historique
Mis à jour par Thomas Noël il y a plus de 10 ans
Il s'agit d'un cas exceptionnel : suppression manuelle de la table "users"
$ wcsctl shell >>> import sql >>> sql.do_user_table()