From e661b6774aa0b30b65ee5b0424648163d1317458 Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Tue, 9 Jun 2020 16:26:42 +0200 Subject: [PATCH 2/2] views: flag connectors with open access on homepage (#42123) --- passerelle/base/models.py | 8 +++++++ passerelle/static/css/style.css | 13 ++++++++++-- passerelle/templates/passerelle/manage.html | 12 ++++++++--- tests/test_manager.py | 23 +++++++++++++++++++++ 4 files changed, 51 insertions(+), 5 deletions(-) diff --git a/passerelle/base/models.py b/passerelle/base/models.py index 4962545f..6b2ae284 100644 --- a/passerelle/base/models.py +++ b/passerelle/base/models.py @@ -597,6 +597,14 @@ class BaseResource(models.Model): exception_to_text(exc_value), exc_info=exc_info) + @property + def has_open_access_right(self): + return AccessRight.objects.filter( + resource_type=ContentType.objects.get_for_model(self), + resource_pk=self.pk, + apiuser__key='' + ).exists() + @six.python_2_unicode_compatible class AccessRight(models.Model): diff --git a/passerelle/static/css/style.css b/passerelle/static/css/style.css index 4ffdc996..b35beae8 100644 --- a/passerelle/static/css/style.css +++ b/passerelle/static/css/style.css @@ -54,6 +54,10 @@ div#logs table tr.level-critical { select#id_msg_class { max-width: 30em; } +.connector.is-open a { + color: #088a08; +} + li span.connector-name { display: block; position: absolute; @@ -61,15 +65,20 @@ li span.connector-name { width: 100%; } -li span.connector-type { +li span.connector-details { display: block; font-size: 80%; - opacity: 0.6; + color: #576b6b; position: absolute; bottom: 2ex; width: 100%; } +li span.connector-details .connector-open { + color: #088a08; + font-weight: bold; +} + ul.connectors { clear: both; } diff --git a/passerelle/templates/passerelle/manage.html b/passerelle/templates/passerelle/manage.html index d3ad2591..09e85aff 100644 --- a/passerelle/templates/passerelle/manage.html +++ b/passerelle/templates/passerelle/manage.html @@ -19,9 +19,15 @@
diff --git a/tests/test_manager.py b/tests/test_manager.py index 0a9548ee..a29b2d65 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -542,3 +542,26 @@ def test_manager_add_open_access_warning(app, admin_user): resp.form['confirm_open_access'] = True resp.form.submit().follow() assert AccessRight.objects.count() == 2 + + +def test_manager_open_access_flag(app, admin_user): + csv = CsvDataSource.objects.create(csv_file=File(StringIO('1;t\n'), 't.csv'), slug='t', title='t') + api = ApiUser.objects.create(username='test', fullname='test', keytype='', key='test') + + app = login(app) + resp = app.get('/manage/', status=200) + assert len(resp.pyquery('li.connector')) == 1 + assert not 'open access' in resp.text + + obj_type = ContentType.objects.get_for_model(csv) + AccessRight.objects.create(codename='can_access', apiuser=api, resource_type=obj_type, + resource_pk=csv.pk) + + resp = app.get('/manage/', status=200) + assert not 'open access' in resp.text + + api.key = '' + api.save() + + resp = app.get('/manage/', status=200) + assert 'open access' in resp.text -- 2.20.1