summaryrefslogtreecommitdiff
path: root/addons/web/controllers/main.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2017-04-25 12:36:02 +0200
committerChristophe Simonis <chs@odoo.com>2017-04-25 12:36:02 +0200
commit4441237b0a80cc8eca04a35ad825bce876a2d7b6 (patch)
treeefafd204a16cc8fd762ac24f3af4ddf90ae57d6e /addons/web/controllers/main.py
parent38bb4f07d0bfb0de12414ab99c4815c0d9ff48a6 (diff)
parentab68a1c6740162c59fa54effc6133964d0a51bc8 (diff)
[MERGE] forward port branch saas-15 up to ab68a1c6740
Diffstat (limited to 'addons/web/controllers/main.py')
-rw-r--r--addons/web/controllers/main.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 8bc312eee98..ef9e52cdf1d 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -54,6 +54,8 @@ env.filters["json"] = json.dumps
# 1 week cache for asset bundles as advised by Google Page Speed
BUNDLE_MAXAGE = 60 * 60 * 24 * 7
+DBNAME_PATTERN = '^[a-zA-Z0-9][a-zA-Z0-9_.-]+$'
+
#----------------------------------------------------------
# Odoo Web helpers
#----------------------------------------------------------
@@ -641,6 +643,7 @@ class Database(http.Controller):
d['list_db'] = odoo.tools.config['list_db']
d['langs'] = odoo.service.db.exp_list_lang()
d['countries'] = odoo.service.db.exp_list_countries()
+ d['pattern'] = DBNAME_PATTERN
# databases list
d['databases'] = []
try:
@@ -665,8 +668,8 @@ class Database(http.Controller):
@http.route('/web/database/create', type='http', auth="none", methods=['POST'], csrf=False)
def create(self, master_pwd, name, lang, password, **post):
try:
- if not re.match('^[a-zA-Z][a-zA-Z0-9_]+$', name):
- raise Exception(_('Invalid database name. Only alphanumerical characters and underscore are allowed.'))
+ if not re.match(DBNAME_PATTERN, name):
+ raise Exception(_('Invalid database name. Only alphanumerical characters, underscore, hyphen and dot are allowed.'))
# country code could be = "False" which is actually True in python
country_code = post.get('country_code') or False
dispatch_rpc('db', 'create_database', [master_pwd, name, bool(post.get('demo')), lang, password, post['login'], country_code])
@@ -679,8 +682,8 @@ class Database(http.Controller):
@http.route('/web/database/duplicate', type='http', auth="none", methods=['POST'], csrf=False)
def duplicate(self, master_pwd, name, new_name):
try:
- if not re.match('^[a-zA-Z][a-zA-Z0-9_]+$', new_name):
- raise Exception(_('Invalid database name. Only alphanumerical characters and underscore are allowed.'))
+ if not re.match(DBNAME_PATTERN, new_name):
+ raise Exception(_('Invalid database name. Only alphanumerical characters, underscore, hyphen and dot are allowed.'))
dispatch_rpc('db', 'duplicate_database', [master_pwd, name, new_name])
return http.local_redirect('/web/database/manager')
except Exception as e: