diff --git a/app/controllers/api/v1/profiles_controller.rb b/app/controllers/api/v1/profiles_controller.rb index cbf801e82..a77652ff8 100644 --- a/app/controllers/api/v1/profiles_controller.rb +++ b/app/controllers/api/v1/profiles_controller.rb @@ -31,6 +31,11 @@ class Api::V1::ProfilesController < Api::BaseController head :ok end + def resend_confirmation + @user.send_confirmation_instructions unless @user.confirmed? + head :ok + end + private def set_user diff --git a/app/javascript/dashboard/App.vue b/app/javascript/dashboard/App.vue index 6fd470fcf..49fe325f6 100644 --- a/app/javascript/dashboard/App.vue +++ b/app/javascript/dashboard/App.vue @@ -2,12 +2,13 @@
@@ -32,6 +33,7 @@ import NetworkNotification from './components/NetworkNotification.vue'; import UpdateBanner from './components/app/UpdateBanner.vue'; import UpgradeBanner from './components/app/UpgradeBanner.vue'; import PaymentPendingBanner from './components/app/PaymentPendingBanner.vue'; +import PendingEmailVerificationBanner from './components/app/PendingEmailVerificationBanner.vue'; import vueActionCable from './helper/actionCable'; import WootSnackbarBox from './components/SnackbarContainer.vue'; import rtlMixin from 'shared/mixins/rtlMixin'; @@ -52,6 +54,7 @@ export default { PaymentPendingBanner, WootSnackbarBox, UpgradeBanner, + PendingEmailVerificationBanner, }, mixins: [rtlMixin], diff --git a/app/javascript/dashboard/api/auth.js b/app/javascript/dashboard/api/auth.js index 229e4f309..dde817866 100644 --- a/app/javascript/dashboard/api/auth.js +++ b/app/javascript/dashboard/api/auth.js @@ -98,4 +98,8 @@ export default { }, }); }, + resendConfirmation() { + const urlData = endPoints('resendConfirmation'); + return axios.post(urlData.url); + }, }; diff --git a/app/javascript/dashboard/api/endPoints.js b/app/javascript/dashboard/api/endPoints.js index 678386d50..31337b7fc 100644 --- a/app/javascript/dashboard/api/endPoints.js +++ b/app/javascript/dashboard/api/endPoints.js @@ -47,6 +47,10 @@ const endPoints = { setActiveAccount: { url: '/api/v1/profile/set_active_account', }, + + resendConfirmation: { + url: '/api/v1/profile/resend_confirmation', + }, }; export default page => { diff --git a/app/javascript/dashboard/components/app/PendingEmailVerificationBanner.vue b/app/javascript/dashboard/components/app/PendingEmailVerificationBanner.vue new file mode 100644 index 000000000..c9dc51754 --- /dev/null +++ b/app/javascript/dashboard/components/app/PendingEmailVerificationBanner.vue @@ -0,0 +1,43 @@ + + + diff --git a/app/javascript/dashboard/components/ui/Banner.vue b/app/javascript/dashboard/components/ui/Banner.vue index 5d680fe48..3473111ae 100644 --- a/app/javascript/dashboard/components/ui/Banner.vue +++ b/app/javascript/dashboard/components/ui/Banner.vue @@ -1,6 +1,6 @@