- add_to_breadcrumbs _("Users"), admin_users_path - breadcrumb_title @user.name - page_title @user.name, _("Users") = render 'admin/users/head' .row .col-md-6 = render Pajamas::CardComponent.new(card_options: { class: 'gl-mb-5' }, body_options: { class: 'gl-py-2'}) do |c| - c.header do = @user.name - c.body do %ul.content-list %li = render Pajamas::AvatarComponent.new(@user, size: 64, class: 'gl-mr-3') %li %span.light= _('Profile page:') %strong = link_to user_path(@user) do = @user.username -# Rendered on mobile only so order of cards can be different on desktop vs mobile .gl-md-display-none = render 'admin/users/profile', user: @user = render 'admin/users/user_detail_note' = render Pajamas::CardComponent.new(card_options: { class: 'gl-mb-5' }, body_options: { class: 'gl-py-2'}) do |c| - c.header do = _('Account:') - c.body do %ul.content-list %li %span.light= _('Name:') %strong= @user.name %li %span.light= _('Username:') %strong = @user.username %li %span.light= _('Email:') %strong = render partial: 'shared/email_with_badge', locals: { email: mail_to(@user.email), verified: @user.confirmed? } - @user.emails.reject(&:user_primary_email?).each do |email| %li %span.light= _('Secondary email:') %strong = render partial: 'shared/email_with_badge', locals: { email: email.email, verified: email.confirmed? } = link_to remove_email_admin_user_path(@user, email), data: { confirm: _("Are you sure you want to remove %{email}?") % { email: email.email }, 'confirm-btn-variant': 'danger' }, method: :delete, class: "btn btn-sm btn-danger gl-button btn-icon float-right", title: _('Remove secondary email'), id: "remove_email_#{email.id}" do = sprite_icon('close', size: 16, css_class: 'gl-icon') %li %span.light ID: %strong{ data: { qa_selector: 'user_id_content' } } = @user.id %li %span.light= _('Namespace ID:') %strong = @user.namespace_id %li.two-factor-status %span.light= _('Two-factor Authentication:') %strong{ class: @user.two_factor_enabled? ? 'cgreen' : 'cred' } - if @user.two_factor_enabled? = _('Enabled') = link_to _('Disable'), disable_two_factor_admin_user_path(@user), aria: { label: _('Disable') }, data: { confirm: _('Are you sure?'), 'confirm-btn-variant': 'danger' }, method: :patch, class: 'btn gl-button btn-sm btn-danger float-right', title: _('Disable Two-factor Authentication') - else = _('Disabled') = render_if_exists 'admin/namespace_plan_info', namespace: @user.namespace %li %span.light= _('External User:') %strong = @user.external? ? _('Yes') : _('No') = render_if_exists 'admin/users/provisioned_by', user: @user %li %span.light= _('Can create groups:') %strong = @user.can_create_group ? _('Yes') : _('No') %li %span.light= _('Private profile:') %strong = @user.private_profile ? _('Yes') : _('No') %li %span.light= _('Personal projects limit:') %strong = @user.projects_limit %li %span.light= _('Member since:') %strong = @user.created_at.to_s(:medium) - if @user.confirmed_at %li %span.light= _('Confirmed at:') %strong = @user.confirmed_at.to_s(:medium) - else %li %span.ligh= _('Confirmed:') %strong.cred = _('No') %li %span.light= _('Current sign-in IP:') %strong = @user.current_sign_in_ip || _('never') %li %span.light= _('Current sign-in at:') %strong = @user.current_sign_in_at&.to_s(:medium) || _('never') %li %span.light= _('Last sign-in IP:') %strong = @user.last_sign_in_ip || _('never') %li %span.light= _('Last sign-in at:') %strong = @user.last_sign_in_at&.to_s(:medium) || _('never') %li %span.light= _('Sign-in count:') %strong = @user.sign_in_count %li %span.light= _("Highest role:") %strong = Gitlab::Access.human_access_with_none(@user.highest_role) = render_if_exists 'admin/users/using_license_seat', user: @user - if @user.ldap_user? %li %span.light= _('LDAP uid:') %strong = @user.ldap_identity.extern_uid - if @user.created_by %li %span.light= _('Created by:') %strong = link_to @user.created_by.name, [:admin, @user.created_by] = render_if_exists 'namespaces/shared_runner_status', namespace: @user.namespace = render_if_exists 'admin/users/credit_card_info', user: @user, link_to_match_page: true = render 'shared/custom_attributes', custom_attributes: @user.custom_attributes -# Rendered on desktop only so order of cards can be different on desktop vs mobile .col-md-6.gl-display-none.gl-md-display-block = render 'admin/users/profile', user: @user = render 'admin/users/user_detail_note'