show.html.haml 3.96 KB
Newer Older
Timothy Andrew's avatar
Timothy Andrew committed
1
- page_title 'Two-Factor Authentication', 'Account'
George Tsiolis's avatar
George Tsiolis committed
2
- add_to_breadcrumbs("Two-Factor Authentication", profile_account_path)
3
- @content_class = "limit-container-width" unless fluid_layout
4

5
6
7
8
9
.js-two-factor-auth{ 'data-two-factor-skippable' => "#{two_factor_skippable?}", 'data-two_factor_skip_url' => skip_profile_two_factor_auth_path }
  .row.prepend-top-default
    .col-lg-4
      %h4.prepend-top-0
        Register Two-Factor Authentication App
Timothy Andrew's avatar
Timothy Andrew committed
10
      %p
11
12
13
        Use an app on your mobile device to enable two-factor authentication (2FA).
    .col-lg-8
      - if current_user.two_factor_otp_enabled?
George Tsiolis's avatar
George Tsiolis committed
14
15
16
17
18
19
        %p
          You've already enabled two-factor authentication using mobile authenticator applications. In order to register a different device, you must first disable two-factor authentication.
          = link_to 'Disable two-factor authentication', 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'
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
      - else
        %p
          Download the Google Authenticator application from App Store or Google Play Store and scan this code.
          More information is available in the #{link_to('documentation', help_page_path('profile/two_factor_authentication'))}.
        .row.append-bottom-10
          .col-md-4
            = raw @qr_code
          .col-md-8
            .account-well
              %p.prepend-top-0.append-bottom-0
                Can't scan the code?
              %p.prepend-top-0.append-bottom-0
                To add the entry manually, provide the following details to the application on your phone.
              %p.prepend-top-0.append-bottom-0
                Account:
                = @account_string
              %p.prepend-top-0.append-bottom-0
                Key:
                = current_user.otp_secret.scan(/.{4}/).join(' ')
              %p.two-factor-new-manual-content
                Time based: Yes
        = form_tag profile_two_factor_auth_path, method: :post do |f|
          - if @error
            .alert.alert-danger
              = @error
          .form-group
            = label_tag :pin_code, nil, class: "label-light"
            = text_field_tag :pin_code, nil, class: "form-control", required: true
          .prepend-top-default
            = submit_tag 'Register with two-factor app', class: 'btn btn-success'
Timothy Andrew's avatar
Timothy Andrew committed
50

51
  %hr
Timothy Andrew's avatar
Timothy Andrew committed
52

53
54
55
56
57
58
59
60
61
62
63
64
65
66
  .row.prepend-top-default
    .col-lg-4
      %h4.prepend-top-0
        Register Universal Two-Factor (U2F) Device
      %p
        Use a hardware device to add the second factor of authentication.
      %p
        As U2F devices are only supported by a few browsers, we require that you set up a
        two-factor authentication app before a U2F device. That way you'll always be able to
        log in - even when you're using an unsupported browser.
    .col-lg-8
      - if @u2f_registration.errors.present?
        = form_errors(@u2f_registration)
      = render "u2f/register"
Timothy Andrew's avatar
Timothy Andrew committed
67

68
      %hr
Timothy Andrew's avatar
Timothy Andrew committed
69

70
      %h5 U2F Devices (#{@u2f_registrations.length})
Timothy Andrew's avatar
Timothy Andrew committed
71

72
73
74
75
76
77
78
79
      - if @u2f_registrations.present?
        .table-responsive
          %table.table.table-bordered.u2f-registrations
            %colgroup
              %col{ width: "50%" }
              %col{ width: "30%" }
              %col{ width: "20%" }
            %thead
Timothy Andrew's avatar
Timothy Andrew committed
80
              %tr
81
82
83
84
85
86
87
88
89
                %th Name
                %th Registered On
                %th
            %tbody
              - @u2f_registrations.each do |registration|
                %tr
                  %td= registration.name.presence || "<no name set>"
                  %td= registration.created_at.to_date.to_s(:medium)
                  %td= link_to "Delete", profile_u2f_registration_path(registration), method: :delete, class: "btn btn-danger pull-right", data: { confirm: "Are you sure you want to delete this device? This action cannot be undone." }
Timothy Andrew's avatar
Timothy Andrew committed
90

91
92
93
      - else
        .settings-message.text-center
          You don't have any U2F devices registered yet.