From 422e36c71db886229d98c9f56ef0b9d6e274d8a9 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jul 25 2018 13:07:11 +0000 Subject: [PATCH 1/2] Ensure we are consistent about the character set allowed in tags Fixes https://pagure.io/pagure/issue/3406 Signed-off-by: Pierre-Yves Chibon --- diff --git a/pagure/ui/issues.py b/pagure/ui/issues.py index e4ff8cd..9b6859f 100644 --- a/pagure/ui/issues.py +++ b/pagure/ui/issues.py @@ -557,10 +557,11 @@ def update_tags(repo, username=None, namespace=None): if col.strip() ] + pattern = re.compile(pagure.forms.TAGS_REGEX, re.IGNORECASE) for tag in tags: - if '/' in tag: + if not pattern.match(tag): flask.flash( - 'Tag: %s contains an invalid character: "/"' % tag, + 'Tag: %s contains one or more invalid characters' % tag, 'error') error = True diff --git a/tests/test_pagure_flask_ui_issues.py b/tests/test_pagure_flask_ui_issues.py index 3274747..cde1122 100644 --- a/tests/test_pagure_flask_ui_issues.py +++ b/tests/test_pagure_flask_ui_issues.py @@ -3409,7 +3409,7 @@ class PagureFlaskIssuestests(tests.Modeltests): 'Settings - test - Pagure', output_text) self.assertIn( '' - 'Tag: red/green contains an invalid character: "/"', + 'Tag: red/green contains one or more invalid characters', output_text) self.assertIn( '
Project ' From 76a0be3072fd7ae91875c4ebea0f93c291f7730b Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jul 25 2018 13:07:11 +0000 Subject: [PATCH 2/2] Fix a couple of redirects so the user comes back to the right tab Signed-off-by: Pierre-Yves Chibon --- diff --git a/pagure/ui/issues.py b/pagure/ui/issues.py index 9b6859f..0f8d423 100644 --- a/pagure/ui/issues.py +++ b/pagure/ui/issues.py @@ -502,7 +502,8 @@ def edit_tag(repo, tag, username=None, namespace=None): return flask.redirect(flask.url_for( 'ui_ns.view_settings', repo=repo.name, username=username, - namespace=repo.namespace)) + namespace=repo.namespace) + '#projecttags-tab') + elif flask.request.method == 'GET': tag_color = tagobj.tag_color if tag_color == 'DeepSkyBlue': @@ -649,7 +650,7 @@ def remove_tag(repo, username=None, namespace=None): return flask.redirect(flask.url_for( 'ui_ns.view_settings', repo=repo.name, username=username, - namespace=repo.namespace) + namespace=repo.namespace) + '#projecttags-tab' )