summaryrefslogtreecommitdiff
path: root/app/views/users/edit.html.erb
blob: a8994701b20b39449db7a24aeab90b1d6d2bc91b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<h1><%= @user == current_user ? "My account" : "Edit user “#{@user.login}”" %></h1>

<% if @user.errors.any? %>
  <div class="error_messages">
    <ul><% @user.errors.full_messages.each do |msg| %><li><%= msg %></li><% end %></ul>
  </div>
<% end %>

<div id="admin_layout">
  <%= form_for @user do |f| %>
  <div id="content">
    <div class="layout_row_label">Login</div>
    <div class="layout_row_content"><%= f.text_field :login, :autocomplete => "username" %></div>

    <div class="layout_row_label">E-Mail</div>
    <div class="layout_row_content"><%= f.text_field :email %></div>

    <div class="layout_row_label">Password</div>
    <div class="layout_row_content"><%= f.password_field :password, :autocomplete => "new-password" %></div>

    <div class="layout_row_label">Confirm</div>
    <div class="layout_row_content"><%= f.password_field :password_confirmation, :autocomplete => "new-password" %></div>

    <% if current_user.admin? %>
    <div class="layout_row_label">Admin?</div>
    <div class="layout_row_content"><%= f.check_box :admin %></div>
    <% end %>

    <div class="layout_row_label"></div>
    <div class="layout_row_content"><%= f.submit "Update" %></div>
  <% end %>
  </div>

  <% if @user == current_user %>
    <div class="layout_row_label">Second factor</div>
    <div class="layout_row_content">
      <% if current_user.otp_enrolled? %>
        <p>Enabled.</p>
        <%= form_tag otp_enrollment_path, :method => :delete, :class => "otp_form" do %>
          <%= text_field_tag :login, current_user.login, :autocomplete => "username", :readonly => true, :tabindex => -1, :class => "visually_hidden" %>
          <%= password_field_tag :current_password, nil, :placeholder => "Current password", :autocomplete => "current-password" %>
          <%= text_field_tag :code, nil, :placeholder => "Current code",
                :autocomplete => "one-time-code", :inputmode => "numeric" %>
          <%= button_tag :type => "submit", :class => "action_button" do %>
            <%= icon("shield-off", library: "tabler", "aria-hidden": true) %> Disable second factor
          <% end %>
        <% end %>
      <% else %>
        <p>Not enrolled.</p>
        <%= form_tag otp_enrollment_path, :method => :post, :class => "otp_form" do %>
          <%= text_field_tag :login, current_user.login, :autocomplete => "username", :readonly => true, :tabindex => -1, :class => "visually_hidden" %>
          <%= password_field_tag :current_password, nil, :placeholder => "Current password", :autocomplete => "current-password"%>
          <%= button_tag :type => "submit", :class => "action_button" do %>
            <%= icon("shield-lock", library: "tabler", "aria-hidden": true) %> Enable second factor
          <% end %>
        <% end %>
      <% end %>
    </div>
  <% elsif current_user.admin? && @user.otp_enrolled? %>
    <div class="layout_row_label">Second factor</div>
    <div class="layout_row_content">
      Enabled.
      <%= button_to "Reset second factor", reset_otp_user_path(@user), :method => :put,
            :form_class => "button_to destructive",
            :form => { :data => { :confirm =>
              "Reset #{@user.login}'s second factor? They will log in with password only afterwards." } } %>
    </div>
  <% end %>
</div>