From 7a9a25e6a90b5f453955570f7ae445c0e84b08d0 Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Tue, 7 Jul 2020 13:17:17 +0200 Subject: [PATCH] Add 2fa wizzard tabs --- app/assets/images/2fa/2fa_authenticator.png | Bin 0 -> 1634 bytes .../images/2fa/google_authenticator.png | Bin 0 -> 2200 bytes app/assets/images/2fa/install_mobile.png | Bin 0 -> 9859 bytes app/assets/images/2fa/ms_authenticator.png | Bin 0 -> 1607 bytes .../_2fa_modal_apps_tab.html.erb | 71 ++++++++++++++++++ .../_2fa_modal_qr_code_tab.html.erb | 13 ++++ .../_2fa_modal_verify_code_tab.html.erb | 18 +++++ .../edit_partials/_avatar.html.erb | 15 ++++ .../edit_partials/_email.html.erb | 40 ++++++++++ .../edit_partials/_full_name.html.erb | 12 +++ .../edit_partials/_initials.html.erb | 12 +++ .../edit_partials/_password.html.erb | 42 +++++++++++ 12 files changed, 223 insertions(+) create mode 100644 app/assets/images/2fa/2fa_authenticator.png create mode 100644 app/assets/images/2fa/google_authenticator.png create mode 100644 app/assets/images/2fa/install_mobile.png create mode 100644 app/assets/images/2fa/ms_authenticator.png create mode 100644 app/views/users/registrations/_2fa_modal_apps_tab.html.erb create mode 100644 app/views/users/registrations/_2fa_modal_qr_code_tab.html.erb create mode 100644 app/views/users/registrations/_2fa_modal_verify_code_tab.html.erb create mode 100644 app/views/users/registrations/edit_partials/_avatar.html.erb create mode 100644 app/views/users/registrations/edit_partials/_email.html.erb create mode 100644 app/views/users/registrations/edit_partials/_full_name.html.erb create mode 100644 app/views/users/registrations/edit_partials/_initials.html.erb create mode 100644 app/views/users/registrations/edit_partials/_password.html.erb diff --git a/app/assets/images/2fa/2fa_authenticator.png b/app/assets/images/2fa/2fa_authenticator.png new file mode 100644 index 0000000000000000000000000000000000000000..41a1e5d4f491c50c69872383f43e29eadf40f3ed GIT binary patch literal 1634 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 a0sjH@4nz!tb@nj;0000| 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/2fa/ms_authenticator.png b/app/assets/images/2fa/ms_authenticator.png new file mode 100644 index 0000000000000000000000000000000000000000..00f36b7fa115b81b7b669259de94633ac5e869a8 GIT binary patch literal 1607 zcmV-N2Dtf&P)8wQK~#7F-CApG z6jc=dW@o$G$F_x5+CmErr4p4NM8QY!@dM+7ABq|SqR})&iC`o#sDU3Q{7^B%4>bf6 zOd7#ZLkUnzgH{3t1TBdYrL;BewuRc)ZnxWRcRStL$BgH0*==pN+dDh6P0E*SGBfx2 z-E+=8=iIvj-fgqOrW^oJ0adYKK0y$CP{nGDVuu;oI0QxA3aFTOP*qy^@K$7rl8L0S zXhA+o|I;+568cyL)dO0vbsw;pd8 z4P9fX{%Zv7zOdn>1nh1x%+i-+ia7A>B5Ycd3(*vRre1#-HAH6jITw1RFpPpRM5u@R z?y}&*wxuY{N#knb@P@Gda2J|g0T=;8jD2mP6_<9DP9qUgRJ1!~wD!x80{>sH!fZ1x zZ7;=YS^y)U+eR`40pD#|g8WP|_O0I&#I9N=PBwWVvk$}}J59jzE3^GO5~1;Oh{P(| zaULn56)mt}d7cH!^3zbVz=AY0<0W9K{jzB)M4FNBb_dYq3E?I=#D;D^8hd55(6 z(YmJ$nd!z(ekMqM1$Xan=Z?p?g{Z13%;vdEU(8JDHJD6F^AY=ijMIP9maGbRX>|@( z6c`g%#Y4)79KJGyopp}!Sc~wZoO2tZ zvD|?a5FsB1mp8~&_XRR+Yn<=o>?377U^$JJyq@1isAf|ipMICq?)24j1<0MWU0W%H z*}tJMQpSU3$||*ZcukJsa;L;qk6aFlDeWzp6q=V)R8USKjLNAkykkY7iOA_@ALQWd zGpW2Xh?l?bLDTSrDzfJ%EB{61Z|+&!`)Q0*luc@ZCL(S!l(RPy=Nui*0Cv<3z#ng4 zpa}Q9dKX$IrMmHOvDJs6pav%bt#Kw9-w*#JUa7CIxDiNTq+Z(nj{WIDA{@Tz(R_fX zIe0oj>1>;0W~1*Iq;o1JjRe0I$ING0T@=>;WFLiAXbw@>vCY2oE>yl+9Jl!_i8C+vUOIu4RBdX-kW{Qyb;FByC{@`MQ*wIEaQvDF6*UgshqwB3SBgSjJlc)g>->jv zQPfiQ_;#(sh*=nOtq`JsaP#p#e00XiRX<1(!l(64Y^>_Vu*{hn%mPDitQgkQso^oY zW+++^|H7xA&ax`1dr{vm8G8L@I1z>ty7$=i*h0LuE)QAOaiOzAxkJCYvG@ESWsk;4 zVKP!eB#JVd8GF{}N1i{sFi4l6v!B!_i + + + + diff --git a/app/views/users/registrations/_2fa_modal_qr_code_tab.html.erb b/app/views/users/registrations/_2fa_modal_qr_code_tab.html.erb new file mode 100644 index 000000000..056e82108 --- /dev/null +++ b/app/views/users/registrations/_2fa_modal_qr_code_tab.html.erb @@ -0,0 +1,13 @@ +
+ + + +
diff --git a/app/views/users/registrations/_2fa_modal_verify_code_tab.html.erb b/app/views/users/registrations/_2fa_modal_verify_code_tab.html.erb new file mode 100644 index 000000000..51799c6c2 --- /dev/null +++ b/app/views/users/registrations/_2fa_modal_verify_code_tab.html.erb @@ -0,0 +1,18 @@ +
+ + <%= form_with(url: users_2fa_enable_path, method: "post", class: "2fa-enable-form") do %> + + + <% end %> +
diff --git a/app/views/users/registrations/edit_partials/_avatar.html.erb b/app/views/users/registrations/edit_partials/_avatar.html.erb new file mode 100644 index 000000000..3f521adf3 --- /dev/null +++ b/app/views/users/registrations/edit_partials/_avatar.html.erb @@ -0,0 +1,15 @@ +
+ +
diff --git a/app/views/users/registrations/edit_partials/_email.html.erb b/app/views/users/registrations/edit_partials/_email.html.erb new file mode 100644 index 000000000..1267b30ff --- /dev/null +++ b/app/views/users/registrations/edit_partials/_email.html.erb @@ -0,0 +1,40 @@ +<%= form_for(resource, + as: resource_name, + url: registration_path(resource_name, format: :json), + remote: true, + html: { method: :put, "data-for" => "email", class: 'settings-page-email', id: 'user-email-field' }) do |f| %> +
+
+ <%= f.label t("users.registrations.edit.email_label") %> + + <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %> + + <% end %> +
+
+
+
+

<%=t "users.registrations.edit.email_title" %>

+
+ <%= f.label :email, t("users.registrations.edit.new_email_label") %> + <%= f.email_field :email, class: "form-control", "data-role" => "edit" %> +
+
+ <%= f.label :current_password, t("users.registrations.edit.current_password_label") %> <%=t "users.registrations.edit.password_explanation" %> + <%= f.password_field :current_password, autocomplete: "off", class: "form-control", "data-role" => "clear", id: 'edit-email-current-password' %> +
+
+ <%=t "general.cancel" %> + <%= f.submit t("general.save"), class: "btn btn-success" %> +
+
+
+<% end %> diff --git a/app/views/users/registrations/edit_partials/_full_name.html.erb b/app/views/users/registrations/edit_partials/_full_name.html.erb new file mode 100644 index 000000000..e69f58e54 --- /dev/null +++ b/app/views/users/registrations/edit_partials/_full_name.html.erb @@ -0,0 +1,12 @@ + diff --git a/app/views/users/registrations/edit_partials/_initials.html.erb b/app/views/users/registrations/edit_partials/_initials.html.erb new file mode 100644 index 000000000..d938d8d00 --- /dev/null +++ b/app/views/users/registrations/edit_partials/_initials.html.erb @@ -0,0 +1,12 @@ + diff --git a/app/views/users/registrations/edit_partials/_password.html.erb b/app/views/users/registrations/edit_partials/_password.html.erb new file mode 100644 index 000000000..ec0541479 --- /dev/null +++ b/app/views/users/registrations/edit_partials/_password.html.erb @@ -0,0 +1,42 @@ +<%= form_for(resource, + as: resource_name, + url: registration_path(resource_name, format: :json), + remote: true, + html: { method: :put, "data-for" => "password", class: 'settings-page-change-password', id: 'user-password-field' }) do |f| %> + <%= hidden_field_tag "user[change_password]", "true" %> +
+
+ <%= f.label t("users.registrations.edit.password_label") %> + +
+
+
+
+

<%=t "users.registrations.edit.password_title" %>

+
+ <%= f.label :current_password, t("users.registrations.edit.current_password_label") %> <%=t "users.registrations.edit.password_explanation" %> + <%= f.password_field :current_password, autocomplete: "off", class: "form-control", "data-role" => "clear", id: 'edit-password-current-password' %> +
+ +
+ <%= f.label :password, t("users.registrations.edit.new_password_label") %> + <%= f.password_field :password, autocomplete: "off", class: "form-control", "data-role" => "clear" %> +
+ +
+ <%= f.label :password_confirmation, t("users.registrations.edit.new_password_2_label") %> + <%= f.password_field :password_confirmation, autocomplete: "off", class: "form-control", "data-role" => "clear" %> +
+ +
+ <%=t "general.cancel" %> + <%= f.submit t("general.save"), class: "btn btn-success" %> +
+
+
+<% end %>