mirror of
https://github.com/we-promise/sure.git
synced 2026-04-07 22:34:47 +00:00
* First cut of a simplified "intro" UI layout * Linter * Add guest role and intro-only access * Fix guest role UI defaults (#940) Use enum predicate to avoid missing role helper. * Remove legacy user role mapping (#941) Drop the unused user role references in role normalization and SSO role mapping forms to avoid implying a role that never existed. Refs: #0 * Remove role normalization (#942) Remove role normalization Roles are now stored directly without legacy mappings. * Revert role mapping logic * Remove `normalize_role_settings` * Remove unnecessary migration * Make `member` the default * Broken `.erb` --------- Signed-off-by: Juan José Mata <juanjo.mata@gmail.com>
64 lines
2.5 KiB
Plaintext
64 lines
2.5 KiB
Plaintext
<%# locals: (user:, placement: "right-start", offset: 16, intro_mode: false) %>
|
|
|
|
<% intro_mode = local_assigns.fetch(:intro_mode, false) %>
|
|
|
|
<div data-testid="user-menu">
|
|
<%= render DS::Menu.new(
|
|
variant: "avatar",
|
|
avatar_url: user.profile_image&.variant(:small)&.url,
|
|
initials: user.initials,
|
|
placement: placement,
|
|
offset: offset
|
|
) do |menu| %>
|
|
<% if intro_mode %>
|
|
<% menu.with_button do %>
|
|
<%= render DS::Button.new(variant: "icon", icon: "settings", data: { DS__menu_target: "button" }) %>
|
|
<% end %>
|
|
<% end %>
|
|
<%= menu.with_header do %>
|
|
<div class="px-4 py-3 flex items-center gap-3">
|
|
<div class="w-9 h-9 shrink-0">
|
|
<%= render "settings/user_avatar", avatar_url: user.profile_image&.variant(:small)&.url, initials: user.initials, lazy: true %>
|
|
</div>
|
|
|
|
<div class="overflow-hidden text-ellipsis text-sm">
|
|
<p class="font-medium"><%= user.display_name %></p>
|
|
<% if user.display_name != user.email %>
|
|
<p class="text-secondary"><%= user.email %></p>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
|
|
<% if self_hosted? %>
|
|
<div class="px-4 py-3 border-t border-tertiary">
|
|
<p class="text-sm">
|
|
<span class="font-medium text-primary">Version:</span>
|
|
<%= link_to Sure.version.to_release_tag, "https://github.com/we-promise/sure/releases/tag/#{Sure.version.to_release_tag}", target: "_blank", class: "hover:underline" %>
|
|
|
|
<% if Sure.commit_sha.present? %>
|
|
(<%= link_to Sure.commit_sha.first(7), "https://github.com/we-promise/sure/commit/#{Sure.commit_sha}", target: "_blank", class: "hover:underline" %>)
|
|
<% end %>
|
|
</p>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% menu.with_item(
|
|
variant: "link",
|
|
text: "Settings",
|
|
icon: "settings",
|
|
href: intro_mode ? settings_profile_path : accounts_path(return_to: request.fullpath)
|
|
) %>
|
|
<% menu.with_item(variant: "link", text: "Changelog", icon: "box", href: changelog_path) %>
|
|
|
|
<% if self_hosted? && !intro_mode %>
|
|
<% menu.with_item(variant: "link", text: "Feedback", icon: "megaphone", href: feedback_path) %>
|
|
<% end %>
|
|
<% menu.with_item(variant: "link", text: "Contact", icon: "message-square-more", href: "https://discord.gg/36ZGBsxYEK") %>
|
|
|
|
<% menu.with_item(variant: "divider") %>
|
|
|
|
<% menu.with_item(variant: "button", text: "Log out", icon: "log-out", href: session_path(Current.session), method: :delete) %>
|
|
<% end %>
|
|
</div>
|