18F/identity-dashboard

View on GitHub
app/views/service_providers/show.html.erb

Summary

Maintainability
Test Coverage
<%= link_to 'Back to apps', '/service_providers', :class => 'usa-link' %>

<h1 class="usa-display">Details for "<%= service_provider.friendly_name %>"</h1>

<% if service_provider.prod_config? %>
  <%= render partial: 'prod_config_call_to_action' %>
<% end %>

<h2 class="margin-bottom-0">
  <label for="identity_protocol">Dashboard Configuration:</label>
  <span class="font-mono-xs margin-left-5"><%= service_provider.prod_config ? 'Production' : 'Sandbox' %></span>
</h2>
<hr>

<h2 class="margin-bottom-0">
  <label for="name">App name: </label>
  <span class="font-mono-xs margin-left-5"><%= service_provider.app_name %></span>
</h2>
<p class="text-italic"><%= t('service_provider_form.app_name_html') %></p>
<hr>

<h2 class="margin-bottom-0">
  <label for="name">Friendly name:</label>
  <span class="font-mono-xs margin-left-5"><%= service_provider.friendly_name %></span>
</h2>
<p class="text-italic"><%= t('service_provider_form.friendly_name_html') %></p>
<hr>

<h2 class="margin-bottom-0">
  <label for="description">Description:</label>
  <span class="font-mono-xs margin-left-5"><%= service_provider.description %></span>
</h2>
<p class="text-italic"><%= I18n.t('service_provider_form.description') %></p>
<hr>

<h2 class="margin-bottom-0">
  <label for="agency">Agency:</label>
  <span class="font-mono-xs margin-left-5"><%= service_provider&.agency&.name %></span>
</h2>
<hr>

<% if service_provider.team.present? %>
  <h2 class="margin-bottom-0">
    <label for="team">Team:</label>
    <span class="font-mono-xs margin-left-5"><%= link_to service_provider.team, service_provider.team %></span>
  </h2>
  <p class="text-italic"><%= I18n.t('service_provider_form.team') %></p>
<% end %>
<hr>

<h2 class="margin-bottom-0">
  <label for="identity_protocol">Identity Protocol:</label>
  <span class="font-mono-xs margin-left-5"><%= service_provider.identity_protocol %></span>
</h2>
<p class="text-italic"><%= I18n.t('service_provider_form.protocol') %></p>
<hr>

<h2 class="margin-bottom-0">
  <label for="ial_friendly">Level of Service:</label>
  <span class="font-mono-xs margin-left-5"><%= service_provider.ial_friendly %></span>
</h2>
<p class="text-italic"><%= t('service_provider_form.identity_assurance_level_html') %></p>
<hr>

<h2 class="margin-bottom-0">
  <label for="aal_friendly">Default Authentication Assurance Level (AAL):</label>
  <span class="font-mono-xs margin-left-5"><%= service_provider.aal_friendly %></span>
</h2>
<hr>

<h2 class="margin-bottom-0">
  <label for="issuer">Issuer:</label>
  <span class="font-mono-xs margin-left-5"><%= service_provider.issuer %></span>
</h2>
<p class="text-italic"><%= I18n.t('service_provider_form.change_issuer') %></p>
<p class="text-italic"><%= t('service_provider_form.issuer_html') %></p>
<hr>

<% if current_user.admin? %>
  <%= render partial: 'allow_prompt_login', locals: { service_provider: service_provider } %>
  <hr>
  <%= render partial: 'email_nameid_format_allowed', locals: { service_provider: service_provider } %>
  <hr>
<% elsif service_provider.allow_prompt_login? %>
  <%= render partial: 'allow_prompt_login', locals: { service_provider: service_provider } %>
  <hr>
<% end %>

<h2 class="margin-bottom-0"><label for="logo_file">Uploaded Logo:</label></h2>
<% if service_provider.logo_file.attached? %>
  <p class="font-mono-xs margin-top-0 margin-left-5" name="logo_file">
    <%= image_tag url_for(service_provider.logo_file), height: "120px" %>
  </p>
<% else %>
  <p class="font-mono-xs margin-top-0 margin-left-5" name="logo_file">
    No file Uploaded
  </p>
<% end %>
<hr>

<% if service_provider.identity_protocol == 'saml' %>
  <h2 class="margin-bottom-0">
    <label for="acs_url">Assertion Consumer Service URL:</label>
    <span class="font-mono-xs margin-left-5"><%= service_provider.acs_url %></span>
  </h2>
  <p class="text-italic"><%= t('service_provider_form.assertion_consumer_service_url_html') %></p>
  <hr>

  <h2 class="margin-bottom-0">
    <label for="assertion_consumer_logout_service_url">Assertion Consumer Logout Service URL:</label>
    <span class="font-mono-xs margin-left-5"><%= service_provider.assertion_consumer_logout_service_url %></span>
  </h2>
  <p class="text-italic"><%= t('service_provider_form.assertion_consumer_logout_service_url_html') %></p>
  <hr>

  <h2 class="margin-bottom-0">
    <label for="assertion_consumer_logout_service_url">SP Initiated Login URL:</label>
    <span class="font-mono-xs margin-left-5"><%= service_provider.sp_initiated_login_url %></span>
  </h2>
  <p class="text-italic"><%= t('service_provider_form.sp_initiated_login_url_html') %></p>
  <hr>

  <h2 class="margin-bottom-0">
    <label for="block_encryption">SAML Assertion Encryption:</label>
    <span class="font-mono-xs margin-left-5"><%= service_provider.block_encryption %></span>
  </h2>
  <p class="text-italic"><%= I18n.t('service_provider_form.saml_assertion_encryption') %></p>
  <hr>

  <h2 class="margin-bottom-0">
    <label for="signed_response_message_requested">Signed Response Message Requested:</label>
    <span class="font-mono-xs margin-left-5"><%= service_provider.signed_response_message_requested? ? 'Yes' : 'No' %></span>
  </h2>
  <p class="text-italic"><%= I18n.t('service_provider_form.signed_response_requested') %></p>
  <hr>

  <h2 class="margin-bottom-0">
    <label for="return_to_sp_url">Return to App URL: </label>
    <span class="font-mono-xs margin-left-5"><%= service_provider.return_to_sp_url %></span>
  </h2>
  <p class="text-italic"><%= t('service_provider_form.return_to_app_url_html') %></p>
  <hr>
<% end %>

<h2>
  <label>Public certificates:</label>
</h2>

<% service_provider.certificates.each do |certificate| %>
  <%= render partial: 'certificate', locals: { certificate: certificate } %>
<% end %>

<hr>

<h2 class="margin-bottom-0">
  <label for="failure_to_proof_url">Failure to Proof URL: </label>
  <span class="font-mono-xs margin-left-5"><%= service_provider.failure_to_proof_url %></span>
</h2>
<p class="text-italic"><%= I18n.t('service_provider_form.failure_to_proof_url') %></p>
<hr>

<h2 class="margin-bottom-0">
  <label for="push_notification_url">Push Notification URL: </label>
  <span class="font-mono-xs margin-left-5"><%= service_provider.push_notification_url %></span>
</h2>
<p class="text-italic"><%= I18n.t('service_provider_form.push_notification_url') %></p>
<hr>

<% if service_provider.oidc? %>
  <h2 class="margin-bottom-0"><label for="uris">Redirect URIs:</label></h2>
  <p class="text-italic"><%= t('service_provider_form.oidc_redirects_html') %></p>
  <p class="font-mono-xs margin-top-0 margin-left-5" name="uris"><%= (service_provider.redirect_uris || []).sort.join('<br>').html_safe %></p>
<% else # SAML %>
  <h2><label for="uris">Additional Redirect URIs:</label></h2>
  <p class="text-italic"><%= t('service_provider_form.saml_redirects_html') %></p>
  <p class="font-mono-xs margin-top-0 margin-left-5" name="uris"><%= (service_provider.redirect_uris || []).sort.join('<br>').html_safe %></p>
<% end %>
<hr>

<h2 class="margin-bottom-0">
  <label for="attribute_bundle">Attribute bundle:</label>
  <span class="font-mono-xs margin-left-5"><%= sp_attribute_bundle(service_provider) %></span>
</h2>
<p class="text-italic"><%= t('service_provider_form.attribute_bundle') %></p>
<hr>

<h2 class="margin-bottom-0">
  <label for="active">Accessible:</label>
  <span class="font-mono-xs"><%= service_provider.active? ? 'Yes' : 'No' %></span>
</h2>
<p class="text-italic"><%= I18n.t('service_provider_form.active') %></p>
<hr>

<% if current_user.admin? %>
  <h2><label for="service_provider_yaml">Service Provider config as YAML</label></h2>
  <%= render 'service_provider_yaml' %>
<% end %>

<%= button_to t('forms.buttons.edit_service_provider'),
    edit_service_provider_path(service_provider),
    class: 'usa-button float-left',
    method: :get %>

<%= button_to t('forms.buttons.delete_service_provider'),
  service_provider_path(service_provider),
  class: 'usa-button usa-button--outline float-left',
  method: :delete, data: { confirm: 'Are you sure you want to delete this app? This cannot be undone.' } %>


<% if current_user.admin? %>
  <%= render 'components/version_history', versions: @service_provider_versions %>
<% end %>