Improve certificate name normalization: remove Unicode characters, etc. (#906)

* Accented characters are replaced with non-accented version (ä -> a)
* Spaces are replaced with '-' (previously they were removed)
* Multiple non-alphanumeric characters are collapsed into one '-'
This commit is contained in:
Marti Raudsepp
2017-09-08 20:52:22 +03:00
committed by kevgliss
parent e72efce071
commit dafed86179
4 changed files with 40 additions and 13 deletions

View File

@ -62,7 +62,6 @@ def get_sequence(name):
def get_or_increase_name(name):
name = '-'.join(name.strip().split(' '))
certificates = Certificate.query.filter(Certificate.name.ilike('{0}%'.format(name))).all()
if not certificates:
@ -138,7 +137,7 @@ class Certificate(db.Model):
# when destinations are appended they require a valid name.
if kwargs.get('name'):
self.name = get_or_increase_name(kwargs['name'])
self.name = get_or_increase_name(defaults.text_to_slug(kwargs['name']))
else:
self.name = get_or_increase_name(
defaults.certificate_name(self.cn, self.issuer, self.not_before, self.not_after, self.san))