- page_title "Account"

- if current_user.ldap_user?
  .alert.alert-info
    Some options are unavailable for LDAP accounts

.row.prepend-top-default
  .col-lg-3.profile-settings-sidebar
    %h4.prepend-top-0
      Private Token
    %p
      Your private token is used to access application resources without authentication.
  .col-lg-9
    = form_for @user, url: reset_private_token_profile_path, method: :put, html: { class: "private-token" } do |f|
      %p.cgray
        - if current_user.private_token
          = label_tag "token", "Private token", class: "label-light"
          = text_field_tag "token", current_user.private_token, class: "form-control"
        - else
          %span You don`t have one yet. Click generate to fix it.
      %p.help-block
        It can be used for atom feeds or the API. Keep it secret!
      .prepend-top-default
        - if current_user.private_token
          = f.submit 'Reset private token', data: { confirm: "Are you sure?" }, class: "btn btn-default"
        - else
          = f.submit 'Generate', class: "btn btn-default"
%hr
.row.prepend-top-default
  .col-lg-3.profile-settings-sidebar
    %h4.prepend-top-0
      Two-Factor Authentication
    %p
      Increase your account's security by enabling Two-Factor Authentication (2FA).
  .col-lg-9
    %p
      Status: #{current_user.two_factor_enabled? ? 'Enabled' : 'Disabled'}
    - if current_user.two_factor_enabled?
      = link_to 'Manage Two-Factor Authentication', profile_two_factor_auth_path, class: 'btn btn-info'
      = link_to 'Disable', profile_two_factor_auth_path,
                method: :delete,
                data: { confirm: "Are you sure? This will invalidate your registered applications and U2F devices." },
                class: 'btn btn-danger'
    - else
      .append-bottom-10
        = link_to 'Enable Two-Factor Authentication', profile_two_factor_auth_path, class: 'btn btn-success'

%hr
- if button_based_providers.any?
  .row.prepend-top-default
    .col-lg-3.profile-settings-sidebar
      %h4.prepend-top-0
        Social sign-in
      %p
        Activate signin with one of the following services
    .col-lg-9
      %label.label-light
        Connected Accounts
      %p Click on icon to activate signin with one of the following services
      - button_based_providers.each do |provider|
        .provider-btn-group
          .provider-btn-image
            = provider_image_tag(provider)
          - if auth_active?(provider)
            - if provider.to_s == 'saml'
              %a.provider-btn
                Active
            - else
              = link_to unlink_profile_account_path(provider: provider), method: :delete, class: 'provider-btn' do
                Disconnect
          - else
            = link_to user_omniauth_authorize_path(provider), method: :post, class: 'provider-btn not-active', "data-no-turbolink" => "true" do
              Connect
  %hr
- if current_user.can_change_username?
  .row.prepend-top-default
    .col-lg-3.profile-settings-sidebar
      %h4.prepend-top-0.warning-title
        Change username
      %p
        Changing your username will change path to all personal projects!
    .col-lg-9
      = form_for @user, url: update_username_profile_path, method: :put, remote: true, html: {class: "update-username"} do |f|
        .form-group
          = f.label :username, "Path", class: "label-light"
          .input-group
            .input-group-addon
              = "#{root_url}u/"
            = f.text_field :username, required: true, class: 'form-control'
        .help-block
          Current path:
          = "#{root_url}u/#{current_user.username}"
        .prepend-top-default
          = f.button class: "btn btn-warning", type: "submit" do
            = icon "spinner spin", class: "hidden loading-username"
            Update username
  %hr

- if signup_enabled?
  .row.prepend-top-default
    .col-lg-3.profile-settings-sidebar
      %h4.prepend-top-0.danger-title
        Remove account
    .col-lg-9
      - if @user.can_be_removed?
        %p
          Deleting an account has the following effects:
        %ul
          %li All user content like authored issues, snippets, comments will be removed
          - rp = current_user.personal_projects.count
          - unless rp.zero?
            %li #{pluralize rp, 'personal project'} will be removed and cannot be restored
        = link_to 'Delete account', user_registration_path, data: { confirm: "REMOVE #{current_user.name}? Are you sure?" }, method: :delete, class: "btn btn-remove"
      - else
        - if @user.solo_owned_groups.present?
          %p
            Your account is currently an owner in these groups:
            %strong #{@user.solo_owned_groups.map(&:name).join(', ')}
          %p
            You must transfer ownership or delete these groups before you can delete your account.
.append-bottom-default