server/serverctl.py
changeset 6379 3f67f7ea5632
parent 6351 eb79fb69c2b2
child 6427 c8a5ac2d1eaa
equal deleted inserted replaced
6378:5a86a0c147bd 6379:3f67f7ea5632
   484             adminlogin = sourcescfg['admin']['login']
   484             adminlogin = sourcescfg['admin']['login']
   485         except KeyError:
   485         except KeyError:
   486             print '-> Error: could not get cubicweb administrator login.'
   486             print '-> Error: could not get cubicweb administrator login.'
   487             sys.exit(1)
   487             sys.exit(1)
   488         cnx = source_cnx(sourcescfg['system'])
   488         cnx = source_cnx(sourcescfg['system'])
       
   489         driver = sourcescfg['system']['db-driver']
       
   490         from logilab.database import get_db_helper
       
   491         dbhelper = get_db_helper(driver)
   489         cursor = cnx.cursor()
   492         cursor = cnx.cursor()
   490         # check admin exists
   493         # check admin exists
   491         cursor.execute("SELECT * FROM cw_CWUser WHERE cw_login=%(l)s",
   494         cursor.execute("SELECT * FROM cw_CWUser WHERE cw_login=%(l)s",
   492                        {'l': adminlogin})
   495                        {'l': adminlogin})
   493         if not cursor.fetchall():
   496         if not cursor.fetchall():
   499         # ask for a new password
   502         # ask for a new password
   500         _, passwd = manager_userpasswd(adminlogin, confirm=True,
   503         _, passwd = manager_userpasswd(adminlogin, confirm=True,
   501                                        passwdmsg='new password for %s' % adminlogin)
   504                                        passwdmsg='new password for %s' % adminlogin)
   502         try:
   505         try:
   503             cursor.execute("UPDATE cw_CWUser SET cw_upassword=%(p)s WHERE cw_login=%(l)s",
   506             cursor.execute("UPDATE cw_CWUser SET cw_upassword=%(p)s WHERE cw_login=%(l)s",
   504                            {'p': buffer(crypt_password(passwd)), 'l': adminlogin})
   507                            {'p': dbhelper.binary_value(crypt_password(passwd)), 'l': adminlogin})
   505             sconfig = Configuration(options=USER_OPTIONS)
   508             sconfig = Configuration(options=USER_OPTIONS)
   506             sconfig['login'] = adminlogin
   509             sconfig['login'] = adminlogin
   507             sconfig['password'] = passwd
   510             sconfig['password'] = passwd
   508             sourcescfg['admin'] = sconfig
   511             sourcescfg['admin'] = sconfig
   509             config.write_sources_file(sourcescfg)
   512             config.write_sources_file(sourcescfg)