diff --git a/.env.example b/.env.example index f82a55a2e7..519f518dd0 100644 --- a/.env.example +++ b/.env.example @@ -274,6 +274,16 @@ DATA_UPLOAD_MAX_MEMORY_SIZE=2621440 # (typically representing the main web interface or API client). OAUTH_CLIENT_APP_NAME=local_web_client +# OIDC Provider. Generate the signing key with: +# python manage.py generate_oidc_rsa_key --output oidc_key.pem +OIDC_RSA_KEY_FILE= +# OIDC_RSA_PRIVATE_KEY= +# Comma-separated paths to rotated-out keys; still published in JWKS during +# the rotation overlap window so RPs can verify tokens signed under them. +# OIDC_RSA_INACTIVE_KEY_FILES= +# Required when a key is configured. Becomes the 'iss' claim in every ID token. +OIDC_ISS_ENDPOINT=http://localhost:8000 + # Geographic restriction # **IMPORTANT NOTE: # Geographic restrictions are only applied to projects where the `georestricted` flag is `True`. diff --git a/physionet-django/console/navbar.py b/physionet-django/console/navbar.py index 453e9466e3..5f9944758c 100644 --- a/physionet-django/console/navbar.py +++ b/physionet-django/console/navbar.py @@ -205,6 +205,8 @@ def get_menu_items(self, request): NavLink(_('Administrators'), 'users', view_args=['admin']), ]), + NavLink(_('Partners'), 'partner_list', 'id-card'), + NavLink(_('Featured Content'), 'featured_content', 'star'), NavSubmenu(_('Guidelines'), 'guidelines', 'book', [ diff --git a/physionet-django/console/templates/console/partners/detail.html b/physionet-django/console/templates/console/partners/detail.html new file mode 100644 index 0000000000..3ef491b7d0 --- /dev/null +++ b/physionet-django/console/templates/console/partners/detail.html @@ -0,0 +1,96 @@ +{% extends "console/base_console.html" %} + +{% block title %}Partner: {{ partner.organization_name }}{% endblock %} + +{% block content %} +
Copy this now. It will not be shown again. Store it securely.
+{{ one_time_secret }}
+ Hint: select the value above and copy to clipboard.
+ Client ID: {{ partner.application.client_id }}
{{ scope }}No scope allow-list set (legacy: all configured scopes allowed).
+ {% endif %} + Edit scopes +Login (redirect_uris):
+{{ partner.application.redirect_uris }}
+ Post-logout:
+{{ partner.post_logout_redirect_uris|default:"(none)" }}
+ Edit redirect URIs
+ Status: {{ partner.get_status_display }}
+ {% if partner.status_reason %}Reason: {{ partner.status_reason }}
{% endif %} + {% if partner.status_changed_at %}Changed at: {{ partner.status_changed_at }}
{% endif %} + + {% if partner.status == Status.ACTIVE %} + Suspend + Revoke + {% elif partner.status == Status.SUSPENDED %} + + Revoke + {% elif partner.status == Status.REVOKED %} +Revoked partners cannot be reactivated.
+ {% endif %} +| Organisation | +Client ID | +Contact | +Status | ++ |
|---|---|---|---|---|
| {{ partner.organization_name }} | +{{ partner.application.client_id }} |
+ {{ partner.contact_email|default:"-" }} | +{{ partner.get_status_display }} | +View | +
| No partners found. | ||||
Your PhysioNet session has ended.
+