From b187d8f836f0ee5e99a620a1201e5ea69f555775 Mon Sep 17 00:00:00 2001 From: kevgliss Date: Mon, 16 May 2016 19:03:10 -0700 Subject: [PATCH] Adding a better comparison. (#320) --- lemur/certificates/models.py | 7 +++++-- lemur/common/schema.py | 5 ++++- .../certificates/certificate/certificate.js | 14 +------------- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/lemur/certificates/models.py b/lemur/certificates/models.py index d8551a34..c8d4ddaf 100644 --- a/lemur/certificates/models.py +++ b/lemur/certificates/models.py @@ -65,8 +65,11 @@ def create_name(issuer, not_before, not_after, subject, san): final = temp.replace(" ", "-") # we don't want any overlapping certificate names - if Certificate.query.filter(Certificate.name == final).all(): - final += '-1' + count = Certificate.query.filter(func.lower(Certificate.name) == func.lower(final)).count() + + if count: + count += 1 + final += str(count) return final diff --git a/lemur/common/schema.py b/lemur/common/schema.py index 9b6cbf2f..e2e4ee82 100644 --- a/lemur/common/schema.py +++ b/lemur/common/schema.py @@ -132,7 +132,10 @@ def validate_schema(input_schema, output_schema): kwargs['data'] = data - resp = f(*args, **kwargs) + try: + resp = f(*args, **kwargs) + except Exception as e: + return dict(message=e.message), 500 if isinstance(resp, tuple): return resp[0], resp[1] diff --git a/lemur/static/app/angular/certificates/certificate/certificate.js b/lemur/static/app/angular/certificates/certificate/certificate.js index b35a453f..a230b5db 100644 --- a/lemur/static/app/angular/certificates/certificate/certificate.js +++ b/lemur/static/app/angular/certificates/certificate/certificate.js @@ -102,6 +102,7 @@ angular.module('lemur') $scope.authorityConfig = { valueField: 'id', labelField: 'name', + highlight: true, placeholder: 'Select Authority', maxItems: 1, onChange: function (value) { @@ -141,19 +142,6 @@ angular.module('lemur') opened: false }; - var formatAuthorities = function (authorities) { - var newAuthorities = []; - angular.forEach(authorities, function (authority) { - authority.formatted = authority.name + ' - ' + authority.description + ''; - newAuthorities.push(authority); - }); - return newAuthorities; - }; - - AuthorityService.findActiveAuthorityByName().then(function (authorities) { - $scope.authorities = formatAuthorities(authorities); - }); - $scope.create = function (certificate) { WizardHandler.wizard().context.loading = true; CertificateService.create(certificate).then(