Manage Roles

Assign and manage roles for users within the system
Create New Role

Define a custom role and assign permissions later

<%= form_with model: @role, url: admin_portal_roles_path, local: true, class: "d-flex gap-2 align-items-center" do |f| %> <%= f.text_field :name, placeholder: "e.g. Mini Admin", class: "form-control rounded-pill", required: true %> <%= f.submit "Create Role", data: { turbo: false }, class: "btn btn-primary rounded-pill px-4" %> <% end %>
<% Current.onboard_client.users.each do |user| %> <% end %>
User Email Current Roles Assign Role
<%= user.display_name %> <%= user.email %> <% if user.roles.any? %>
<% user.roles.each do |role| %> <%= role.name.titleize %> <%= button_to admin_portal_user_user_role_path(user, role), method: :delete, data: { turbo: false, confirm: "Remove this role from #{user.display_name}?" }, class: "btn btn-sm p-0 border-0 bg-transparent text-danger fw-bold" do %> × <% end %> <% end %>
<% else %> No roles assigned <% end %>
<%= form_with url: admin_portal_user_user_roles_path(user), method: :post, local: true, class: "d-flex justify-content-end gap-2 align-items-center" do |f| %> <%= hidden_field_tag :role_id, nil, id: "user_role_select_#{user.id}" %> <%= select_tag :role_id, options_from_collection_for_select( Current.onboard_client.roles, :id, :name ), prompt: "Select role", class: "form-select form-select-sm rounded-pill w-auto", onchange: "document.getElementById('user_role_select_#{user.id}').value = this.value;" %> <%= f.submit "Assign", data: { turbo: false }, class: "btn btn-primary btn-sm rounded-pill px-4" %> <% end %>