From 2d4f81eedf56f71454726d23ac439b3961c408e0 Mon Sep 17 00:00:00 2001 From: Stefan Bühler Date: Nov 18 2017 18:27:31 +0000 Subject: [PATCH 1/3] remove duplicate [Pagure] from mail subjects pagure.lib.notify.send_email already prepends '[$subject_tag]'; for non-project related mails this always is '[Pagure]'. --- diff --git a/pagure/ui/login.py b/pagure/ui/login.py index ae35db8..809694b 100644 --- a/pagure/ui/login.py +++ b/pagure/ui/login.py @@ -353,7 +353,7 @@ Your pagure admin. pagure.lib.notify.send_email( text=message, - subject='[Pagure] Confirm your user account', + subject='Confirm your user account', to_mail=user.emails[0].email, ) @@ -389,7 +389,7 @@ Your pagure admin. pagure.lib.notify.send_email( text=message, - subject='[Pagure] Confirm your password change', + subject='Confirm your password change', to_mail=user.emails[0].email, ) From 6d02178755f115dc4f012b052daa0cff086ebcec Mon Sep 17 00:00:00 2001 From: Stefan Bühler Date: Nov 18 2017 18:27:31 +0000 Subject: [PATCH 2/3] fix 'path' is undefined in blame.html template setting path only in the loop restricts its scope to the loop body; so it will start undefined in each iteration. set it outside (to any value) to make it last through all iterations. --- diff --git a/pagure/templates/blame.html b/pagure/templates/blame.html index dd2afe1..52a61d0 100644 --- a/pagure/templates/blame.html +++ b/pagure/templates/blame.html @@ -74,6 +74,7 @@   {{ branchname }} + {% set path = '' %} {% for file in filename.split('/') %} {% if loop.first %} {% set path = file %} From a443ef3ac98bbbec5fa9131c5ad84988c95f34bf Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Nov 18 2017 18:27:31 +0000 Subject: [PATCH 3/3] Fixes for binary files - Doubly ensure that we don't let the user try to edit a binary file - Add a `Content-Disposition` header when viewing binary files Inspired from https://pagure.io/fork/stbuehler/pagure/c/e5263d9daee21f7dde3d3cc02f6d481452f1b019 Signed-off-by: Pierre-Yves Chibon --- diff --git a/pagure/ui/repo.py b/pagure/ui/repo.py index 86ae659..aa20dc7 100644 --- a/pagure/ui/repo.py +++ b/pagure/ui/repo.py @@ -484,6 +484,7 @@ def view_file(repo, identifier, filename, username=None, namespace=None): readme = None safe = False readme_ext = None + headers = {} if isinstance(content, pygit2.Blob): rawtext = str(flask.request.args.get('text')).lower() in ['1', 'true'] @@ -553,7 +554,8 @@ def view_file(repo, identifier, filename, username=None, namespace=None): readme_ext = ext output_type = 'tree' - headers = {} + if output_type == 'binary': + headers['Content-Disposition'] = 'attachment' return ( flask.render_template( @@ -2216,7 +2218,13 @@ def edit_file(repo, branchname, filename, username=None, namespace=None): if is_binary_string(content.data): flask.abort(400, 'Cannot edit binary files') - data = repo_obj[content.oid].data.decode('utf-8') + try: + data = repo_obj[content.oid].data.decode('utf-8') + except UnicodeDecodeError: # pragma: no cover + # In theory we shouldn't reach here since we check if the file + # is binary with `is_binary_string()` above + flask.abort(400, 'Cannot edit binary files') + else: data = form.content.data.decode('utf-8')