浏览代码

Merge pull request #45 from anandpdoshi/master

Generate an escape character replace function for special chars in passwords and db_name
version-14
Nabin Hait 14 年前
父节点
当前提交
f32c871945
共有 3 个文件被更改,包括 12 次插入5 次删除
  1. +4
    -1
      py/webnotes/model/db_schema.py
  2. +5
    -1
      py/webnotes/utils/__init__.py
  3. +3
    -3
      py/webnotes/utils/backups.py

+ 4
- 1
py/webnotes/model/db_schema.py 查看文件

@@ -357,8 +357,11 @@ class DbManager:
mysql_path = getattr(webnotes.defs, 'mysql_path', None)
mysql = mysql_path and os.path.join(mysql_path, 'mysql') or 'mysql'
from webnotes.utils import make_esc
esc = make_esc('$ ')
try:
ret = os.system("%s -u root -p%s %s < %s"%(mysql, root_password.replace(" ", "\ "), target.replace("$", "\$"), source))
ret = os.system("%s -u root -p%s %s < %s"%(mysql, esc(root_password), esc(target), source))
except Exception,e:
raise e



+ 5
- 1
py/webnotes/utils/__init__.py 查看文件

@@ -636,6 +636,10 @@ def get_file_timestamp(fn):
else:
return None


def make_esc(esc_chars):
"""
Function generator for Escaping special characters
"""
return lambda s: ''.join(['\\' + c if c in esc_chars else c for c in s])


+ 3
- 3
py/webnotes/utils/backups.py 查看文件

@@ -24,11 +24,11 @@ class BackupGenerator:
If specifying db_file_name, also append ".sql.gz"
"""
def __init__(self, db_name, user, password, db_file_name=None):
self.db_name = db_name
self.db_name = db_name.replace('$', '\$')
self.user = user
self.password = password
self.db_file_name = db_file_name and db_file_name \
or (os.path.join(backup_path, db_name + ".sql.gz"))
or (os.path.join(backup_path, self.db_name + ".sql.gz"))

def take_dump(self):
"""
@@ -88,7 +88,7 @@ class BackupGenerator:
Also, a new backup will be available for download (if requested)\
only after 24 hours.""" % {"file_url":file_url}
datetime_str = datetime.fromtimestamp(os.stat(self.db_file_name).st_ctime)
datetime_str = datetime.fromtimestamp(os.stat(self.db_file_name.replace('\$', '$')).st_ctime)
subject = datetime_str.strftime("%d/%m/%Y %H:%M:%S") + """ - Backup ready to be downloaded"""
sendmail(recipients=recipient_list, msg=msg, subject=subject)


正在加载...
取消
保存