Fixed bug #886989: automatically encode password (and other fields) when passing it to SQLAlchemy.

bzr-revno: 1798
Fixes: https://launchpad.net/bugs/886989
This commit is contained in:
Raoul Snyman 2011-11-08 11:07:36 -07:00
commit 12d8d1c3b2
1 changed files with 5 additions and 4 deletions

View File

@ -29,6 +29,7 @@ The :mod:`db` module provides the core database functionality for OpenLP
""" """
import logging import logging
import os import os
from urllib import quote_plus as urlquote
from PyQt4 import QtCore from PyQt4 import QtCore
from sqlalchemy import Table, MetaData, Column, types, create_engine from sqlalchemy import Table, MetaData, Column, types, create_engine
@ -193,10 +194,10 @@ class Manager(object):
AppLocation.get_section_data_path(plugin_name), plugin_name) AppLocation.get_section_data_path(plugin_name), plugin_name)
else: else:
self.db_url = u'%s://%s:%s@%s/%s' % (db_type, self.db_url = u'%s://%s:%s@%s/%s' % (db_type,
unicode(settings.value(u'db username').toString()), urlquote(unicode(settings.value(u'db username').toString())),
unicode(settings.value(u'db password').toString()), urlquote(unicode(settings.value(u'db password').toString())),
unicode(settings.value(u'db hostname').toString()), urlquote(unicode(settings.value(u'db hostname').toString())),
unicode(settings.value(u'db database').toString())) urlquote(unicode(settings.value(u'db database').toString())))
settings.endGroup() settings.endGroup()
if upgrade_mod: if upgrade_mod:
db_ver, up_ver = upgrade_db(self.db_url, upgrade_mod) db_ver, up_ver = upgrade_db(self.db_url, upgrade_mod)