outposts: add modal to show setup information
This commit is contained in:
		| @ -3,6 +3,7 @@ | ||||
| {% load i18n %} | ||||
| {% load humanize %} | ||||
| {% load passbook_utils %} | ||||
| {% load admin_reflection %} | ||||
|  | ||||
| {% block head %} | ||||
| {{ block.super }} | ||||
| @ -69,7 +70,10 @@ | ||||
|                     <td> | ||||
|                         <a class="pf-c-button pf-m-secondary" href="{% url 'passbook_admin:outpost-update' pk=outpost.pk %}?back={{ request.get_full_path }}">{% trans 'Edit' %}</a> | ||||
|                         <a class="pf-c-button pf-m-danger" href="{% url 'passbook_admin:outpost-delete' pk=outpost.pk %}?back={{ request.get_full_path }}">{% trans 'Delete' %}</a> | ||||
|                         <a href="https://passbook.beryju.org/outposts/outposts/#deploy">{% trans 'Deploy' %}</a> | ||||
|                         {% get_htmls outpost as htmls %} | ||||
|                         {% for html in htmls %} | ||||
|                         {{ html|safe }} | ||||
|                         {% endfor %} | ||||
|                     </td> | ||||
|                 </tr> | ||||
|                 {% endfor %} | ||||
|  | ||||
| @ -9,12 +9,14 @@ from django.contrib.postgres.fields import ArrayField | ||||
| from django.core.cache import cache | ||||
| from django.db import models, transaction | ||||
| from django.db.models.base import Model | ||||
| from django.http import HttpRequest | ||||
| from django.utils.translation import gettext_lazy as _ | ||||
| from guardian.models import UserObjectPermission | ||||
| from guardian.shortcuts import assign_perm | ||||
|  | ||||
| from passbook.core.models import Provider, Token, TokenIntents, User | ||||
| from passbook.lib.config import CONFIG | ||||
| from passbook.lib.utils.template import render_to_string | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| @ -149,5 +151,12 @@ class Outpost(models.Model): | ||||
|                 objects.append(provider) | ||||
|         return objects | ||||
|  | ||||
|     def html_deployment_view(self, request: HttpRequest) -> Optional[str]: | ||||
|         """return template and context modal to view token and other config info""" | ||||
|         return render_to_string( | ||||
|             "outposts/deployment_modal.html", | ||||
|             {"outpost": self, "full_url": request.build_absolute_uri("/")}, | ||||
|         ) | ||||
|  | ||||
|     def __str__(self) -> str: | ||||
|         return f"Outpost {self.name}" | ||||
|  | ||||
							
								
								
									
										43
									
								
								passbook/outposts/templates/outposts/deployment_modal.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								passbook/outposts/templates/outposts/deployment_modal.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,43 @@ | ||||
| {% load i18n %} | ||||
| {% load static %} | ||||
| <button class="pf-c-button pf-m-tertiary" data-target="modal" data-modal="saml-{{ provider.pk }}">{% trans 'View Deployment Info' %}</button> | ||||
|  | ||||
| <div class="pf-c-backdrop" id="saml-{{ provider.pk }}" hidden> | ||||
|     <div class="pf-l-bullseye"> | ||||
|         <div class="pf-c-modal-box pf-m-lg" role="dialog"> | ||||
|             <button data-modal-close class="pf-c-button pf-m-plain" type="button" aria-label="Close dialog"> | ||||
|                 <i class="fas fa-times" aria-hidden="true"></i> | ||||
|             </button> | ||||
|             <div class="pf-c-modal-box__header"> | ||||
|                 <h1 class="pf-c-title pf-m-2xl" id="modal-title">{% trans 'Outpost Deployment Info' %}</h1> | ||||
|             </div> | ||||
|             <div class="pf-c-modal-box__body" id="modal-description"> | ||||
|                 <p><a href="https://passbook.beryju.org/outposts/outposts/#deploy">{% trans 'View deployment documentation' %}</a></p> | ||||
|                 <form class="pf-c-form"> | ||||
|                     <div class="pf-c-form__group"> | ||||
|                         <label class="pf-c-form__label" for="help-text-simple-form-name"> | ||||
|                             <span class="pf-c-form__label-text">PASSBOOK_HOST</span> | ||||
|                         </label> | ||||
|                         <input class="pf-c-form-control" readonly type="text" value="{{ full_url }}" /> | ||||
|                     </div> | ||||
|                     <div class="pf-c-form__group"> | ||||
|                         <label class="pf-c-form__label" for="help-text-simple-form-name"> | ||||
|                             <span class="pf-c-form__label-text">PASSBOOK_TOKEN</span> | ||||
|                         </label> | ||||
|                         <input class="pf-c-form-control" readonly type="text" value="{{ outpost.token.token_uuid.hex }}" /> | ||||
|                     </div> | ||||
|                     <h3>{% trans 'If your passbook Instance is using a self-signed certificate, set this value.' %}</h3> | ||||
|                     <div class="pf-c-form__group"> | ||||
|                         <label class="pf-c-form__label" for="help-text-simple-form-name"> | ||||
|                             <span class="pf-c-form__label-text">PASSBOOK_INSECURE</span> | ||||
|                         </label> | ||||
|                         <input class="pf-c-form-control" readonly type="text" value="true" /> | ||||
|                     </div> | ||||
|                 </form> | ||||
|             </div> | ||||
|             <footer class="pf-c-modal-box__footer pf-m-align-left"> | ||||
|                 <button data-modal-close class="pf-c-button pf-m-primary" type="button">{% trans 'Close' %}</button> | ||||
|             </footer> | ||||
|         </div> | ||||
|     </div> | ||||
| </div> | ||||
| @ -129,7 +129,7 @@ class SAMLProvider(Provider): | ||||
|             return None | ||||
|  | ||||
|     def html_metadata_view(self, request: HttpRequest) -> Optional[str]: | ||||
|         """return template and context modal with to view Metadata without downloading it""" | ||||
|         """return template and context modal to view Metadata without downloading it""" | ||||
|         from passbook.providers.saml.views import DescriptorDownloadView | ||||
|  | ||||
|         try: | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer