summaryrefslogtreecommitdiff
path: root/app/views/users/edit.html.erb
blob: 8a5900ce1b91e8c3e0b2e191451188c599ee953e (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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<div id="admin_layout">
  <h1><%= @user == current_user ? t(".my_account") : t(".edit_user", :login => @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 %>

  <%= form_for @user do |f| %>
    <div class="layout_row">
      <div class="layout_row_label"><%= t("users.labels.login") %></div>
      <div class="layout_row_content"><%= f.text_field :login, :autocomplete => "username" %></div>
    </div>

    <div class="layout_row">
      <div class="layout_row_label"><%= t("users.labels.email") %></div>
      <div class="layout_row_content"><%= f.text_field :email %></div>
    </div>

    <div class="layout_row">
      <div class="layout_row_label"><%= t("users.labels.password") %></div>
      <div class="layout_row_content"><%= f.password_field :password, :autocomplete => "new-password" %></div>
    </div>

    <div class="layout_row">
      <div class="layout_row_label"><%= t("users.labels.confirm") %></div>
      <div class="layout_row_content"><%= f.password_field :password_confirmation, :autocomplete => "new-password" %></div>
    </div>

    <% if current_user.is_admin? %>
      <div class="layout_row">
        <div class="layout_row_label"><%= t("users.labels.roles") %></div>
        <div class="layout_row_content">
          <% User::ROLES.each do |role| %>
            <label class="role_choice">
              <%= check_box_tag "user[roles][]", role, @user.roles.include?(role),
                    :id => "user_roles_#{role}" %>
              <%= t("users.roles.#{role}") %>
              <span class="field_hint"><%= t("users.role_hints.#{role}") %></span>
            </label>
          <% end %>
          <%= hidden_field_tag "user[roles][]", "" %>
        </div>
      </div>
    <% end %>

    <div class="layout_row">
      <div class="layout_row_label"></div>
      <div class="layout_row_content"><%= submit_tag t(".update") %></div>
    </div>
  <% end %>

  <% if @user == current_user %>
    <div class="layout_row">
      <div class="layout_row_label"><%= t(".second_factor") %></div>
      <div class="layout_row_content">
        <% if current_user.otp_enrolled? %>
          <p><%= t(".enabled") %></p>
          <%= form_tag otp_enrollment_path, :method => :delete, :class => "otp_form" do %>
            <%= password_field_tag :current_password, nil, :placeholder => t(".current_password"), :autocomplete => "current-password" %>
            <%= text_field_tag :code, nil, :placeholder => t(".current_code"),
                  :autocomplete => "one-time-code", :inputmode => "numeric" %>
            <%= button_tag :type => "submit", :class => "action_button" do %>
              <%= icon("shield-off", library: "tabler", "aria-hidden": true) %> <%= t(".disable_second_factor") %>
            <% end %>
          <% end %>
        <% else %>
          <p><%= t(".not_enrolled") %></p>
          <%= form_tag otp_enrollment_path, :method => :post, :class => "otp_form" do %>
            <%= password_field_tag :current_password, nil, :placeholder => t(".current_password"), :autocomplete => "current-password"%>
            <%= button_tag :type => "submit", :class => "action_button" do %>
              <%= icon("shield-lock", library: "tabler", "aria-hidden": true) %> <%= t(".enable_second_factor") %>
            <% end %>
          <% end %>
        <% end %>
      </div>
    </div>
  <% elsif current_user.is_admin? && @user.otp_enrolled? %>
    <div class="layout_row">
      <div class="layout_row_label"><%= t(".second_factor") %></div>
      <div class="layout_row_content">
        <%= t(".enabled") %>
        <%= button_to t(".reset_second_factor"), reset_otp_user_path(@user), :method => :put,
              :form_class => "button_to destructive",
              :form => { :data => { :confirm => t(".reset_confirm", :login => @user.login) } } %>
      </div>
    </div>
  <% end %>
</div>