feat: Unify user and super admin credentials (#3830)

Fixes: #3061, #3489
This commit is contained in:
Sojan Jose
2022-01-25 16:58:49 -08:00
committed by GitHub
parent 23965fbaa3
commit 34e8ad9dc5
34 changed files with 303 additions and 233 deletions

View File

@@ -0,0 +1,26 @@
<%#
# BelongsTo Form Partial
This partial renders an input element for belongs_to relationships.
By default, the input is a collection select box
that displays all possible records to associate with.
## Local variables:
- `f`:
A Rails form generator, used to help create the appropriate input fields.
- `field`:
An instance of [Administrate::Field::BelongsTo][1].
Contains helper methods for displaying a collection select box.
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/BelongsTo
%>
<div class="field-unit__label">
<%= f.label field.permitted_attribute %>
</div>
<div class="field-unit__field">
<%= f.select(field.permitted_attribute,
options_for_select(field.associated_resource_options, field.selected_option),
include_blank: field.include_blank_option) %>
</div>

View File

@@ -0,0 +1,32 @@
<%#
# BelongsTo Index Partial
This partial renders a belongs_to relationship,
to be displayed on a resource's index page.
By default, the relationship is rendered as a link to the associated object.
## Local variables:
- `field`:
An instance of [Administrate::Field::BelongsTo][1].
A wrapper around the belongs_to relationship pulled from the database.
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/BelongsTo
%>
<% if field.data %>
<% if field.data.is_a? User %>
<%= link_to(
field.display_associated_resource,
super_admin_user_path(field.data),
) %>
<% elsif valid_action?(:show, field.associated_class) %>
<%= link_to(
field.display_associated_resource,
[namespace, field.data],
) %>
<% else %>
<%= field.display_associated_resource %>
<% end %>
<% end %>

View File

@@ -0,0 +1,27 @@
<%#
# BelongsTo Show Partial
This partial renders a belongs_to relationship,
to be displayed on a resource's show page.
By default, the relationship is rendered as a link to the associated object.
## Local variables:
- `field`:
An instance of [Administrate::Field::BelongsTo][1].
A wrapper around the belongs_to relationship pulled from the database.
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/BelongsTo
%>
<% if field.data %>
<% if valid_action?(:show, field.associated_class) %>
<%= link_to(
field.display_associated_resource,
[namespace, field.data],
) %>
<% else %>
<%= field.display_associated_resource %>
<% end %>
<% end %>

View File

@@ -0,0 +1,29 @@
<%#
# Polymorphic Form Partial
This partial renders an input element for polymorphic relationships.
## Local variables:
- `f`:
A Rails form generator, used to help create the appropriate input fields.
- `field`:
An instance of [Administrate::Field::Polymorphic][1].
A wrapper around the polymorphic belongs_to relationship
pulled from the database.
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/Polymorphic
%>
<%= f.fields_for field.attribute do |pf| %>
<div class="field-unit__label">
<%= pf.label :value, field.name.humanize %>
</div>
<div class="field-unit__field">
<%= pf.hidden_field(:type, value: field.class.name) %>
<%= pf.select(:value) do %>
<%= grouped_options_for_select(field.associated_resource_grouped_options, field.selected_global_id, prompt: true) %>
<% end %>
</div>
<% end %>

View File

@@ -0,0 +1,31 @@
<%#
# Polymorphic Index Partial
This partial renders a polymorphic relationship,
to be displayed on a resource's index page.
By default, the relationship is rendered as a link to the associated object.
## Local variables:
- `field`:
An instance of [Administrate::Field::Polymorphic][1].
A wrapper around the polymorphic belongs_to relationship
pulled from the database.
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/Polymorphic
%>
<% if field.data %>
<% if field.data.is_a? User %>
<%= link_to(
"User ##{field.data.id}",
super_admin_user_path(field.data)
) %>
<% else %>
<%= link_to(
field.display_associated_resource,
[namespace, field.data]
) %>
<% end %>
<% end %>

View File

@@ -0,0 +1,28 @@
<%#
# Polymorphic Show Partial
This partial renders a polymorphic relationship,
to be displayed on a resource's show page.
By default, the relationship is rendered as a link to the associated object.
## Local variables:
- `field`:
An instance of [Administrate::Field::Polymorphic][1].
A wrapper around the polymorphic belongs_to relationship
pulled from the database.
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Field/Polymorphic
%>
<% if field.data %>
<% if valid_action?(:show, field.data.class) %>
<%= link_to(
field.display_associated_resource,
[namespace, field.data],
) %>
<% else %>
<%= field.display_associated_resource %>
<% end %>
<% end %>

View File

@@ -56,9 +56,14 @@ as defined by the routes in the `admin/` namespace
</li>
</ul>
<ul class="logout">
<li class="navigation__link">
<i class="ion ion-log-out"></i>
<%= link_to "Logout", super_admin_logout_url %>
</li>
<li class="navigation__link">
<i class="ion ion-android-contacts"></i>
<%= link_to "Agent Dashboard", '/' %>
</li>
</ul>
</div>

View File

@@ -57,13 +57,13 @@ to display a collection of resources in an HTML table.
<tr class="js-table-row"
tabindex="0"
<% if valid_action? :show, collection_presenter.resource_name %>
<%= %(role=link data-url=#{polymorphic_path([namespace, resource])}) %>
<%= %(role=link data-url=#{polymorphic_path([namespace, resource.becomes(User)])}) %>
<% end %>
>
<% collection_presenter.attributes_for(resource).each do |attribute| %>
<td class="cell-data cell-data--<%= attribute.html_class %>">
<% if show_action? :show, resource -%>
<a href="<%= polymorphic_path([namespace, resource]) -%>"
<a href="<%= polymorphic_path([namespace, resource.becomes(User)]) -%>"
class="action-show"
>
<%= render_field attribute %>
@@ -75,7 +75,7 @@ to display a collection of resources in an HTML table.
<% if valid_action? :edit, collection_presenter.resource_name %>
<td><%= link_to(
t("administrate.actions.edit"),
[:edit, namespace, resource],
[:edit, namespace, resource.becomes(User)],
class: "action-edit",
) if show_action? :edit, resource%></td>
<% end %>
@@ -83,7 +83,7 @@ to display a collection of resources in an HTML table.
<% if valid_action? :destroy, collection_presenter.resource_name %>
<td><%= link_to(
t("administrate.actions.destroy"),
[namespace, resource],
[namespace, resource.becomes(User)],
class: "text-color-red",
method: :delete,
data: { confirm: t("administrate.actions.confirm") }