Change landing page when skipping confirmation email and add documentation
This commit is contained in:
parent
0baadd6cff
commit
7bb84e6497
7 changed files with 48 additions and 17 deletions
|
@ -37,8 +37,8 @@ class RegistrationsController < Devise::RegistrationsController
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
|
||||||
def after_sign_up_path_for(_resource)
|
def after_sign_up_path_for(user)
|
||||||
users_almost_there_path
|
user.confirmed_at.present? ? dashboard_projects_path : users_almost_there_path
|
||||||
end
|
end
|
||||||
|
|
||||||
def after_inactive_sign_up_path_for(_resource)
|
def after_inactive_sign_up_path_for(_resource)
|
||||||
|
|
|
@ -106,9 +106,9 @@
|
||||||
.form-group
|
.form-group
|
||||||
.col-sm-offset-2.col-sm-10
|
.col-sm-offset-2.col-sm-10
|
||||||
.checkbox
|
.checkbox
|
||||||
= f.label :skip_confirmation_email do
|
= f.label :send_user_confirmation_email do
|
||||||
= f.check_box :send_user_confirmation_email
|
= f.check_box :send_user_confirmation_email
|
||||||
Send sign-up email confirmation
|
Send confirmation email on sign-up
|
||||||
.form-group
|
.form-group
|
||||||
.col-sm-offset-2.col-sm-10
|
.col-sm-offset-2.col-sm-10
|
||||||
.checkbox
|
.checkbox
|
||||||
|
|
|
@ -3,7 +3,7 @@ class AddSendConfirmationEmailToApplicationSettings < ActiveRecord::Migration
|
||||||
add_column :application_settings, :send_user_confirmation_email, :boolean, default: false
|
add_column :application_settings, :send_user_confirmation_email, :boolean, default: false
|
||||||
|
|
||||||
#Sets confirmation email to true by default on existing installations.
|
#Sets confirmation email to true by default on existing installations.
|
||||||
ApplicationSetting.update_all(send_user_confirmation_email: true)
|
execute "UPDATE application_settings SET send_user_confirmation_email=true"
|
||||||
end
|
end
|
||||||
|
|
||||||
def down
|
def down
|
||||||
|
|
|
@ -8,3 +8,4 @@
|
||||||
- [User File Uploads](user_file_uploads.md)
|
- [User File Uploads](user_file_uploads.md)
|
||||||
- [How we manage the CRIME vulnerability](crime_vulnerability.md)
|
- [How we manage the CRIME vulnerability](crime_vulnerability.md)
|
||||||
- [Enforce Two-factor authentication](two_factor_authentication.md)
|
- [Enforce Two-factor authentication](two_factor_authentication.md)
|
||||||
|
- [Send email confirmation on sign-up](user_email_confirmation.md)
|
||||||
|
|
7
doc/security/user_email_confirmation.md
Normal file
7
doc/security/user_email_confirmation.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# User email confirmation at sign-up
|
||||||
|
|
||||||
|
Gitlab admin can enable email confirmation on sign-up, if you want to confirm all
|
||||||
|
user emails before they are able to sign-in.
|
||||||
|
|
||||||
|
In the Admin area under **Settings** (`/admin/application_settings`), go to section
|
||||||
|
**Sign-in Restrictions** and look for **Send confirmation email on sign-up** option.
|
|
@ -16,7 +16,7 @@ describe RegistrationsController do
|
||||||
it 'logs user in directly' do
|
it 'logs user in directly' do
|
||||||
post(:create, user_params)
|
post(:create, user_params)
|
||||||
expect(ActionMailer::Base.deliveries.last).to be_nil
|
expect(ActionMailer::Base.deliveries.last).to be_nil
|
||||||
expect(subject.current_user).to be
|
expect(subject.current_user).to_not be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,22 +2,45 @@ require 'spec_helper'
|
||||||
|
|
||||||
feature 'Signup', feature: true do
|
feature 'Signup', feature: true do
|
||||||
describe 'signup with no errors' do
|
describe 'signup with no errors' do
|
||||||
before { allow_any_instance_of(ApplicationSetting).to receive(:send_user_confirmation_email).and_return(true) }
|
|
||||||
|
|
||||||
it 'creates the user account and sends a confirmation email' do
|
context "when sending confirmation email" do
|
||||||
user = build(:user)
|
before { allow_any_instance_of(ApplicationSetting).to receive(:send_user_confirmation_email).and_return(true) }
|
||||||
|
|
||||||
visit root_path
|
it 'creates the user account and sends a confirmation email' do
|
||||||
|
user = build(:user)
|
||||||
|
|
||||||
fill_in 'new_user_name', with: user.name
|
visit root_path
|
||||||
fill_in 'new_user_username', with: user.username
|
|
||||||
fill_in 'new_user_email', with: user.email
|
|
||||||
fill_in 'new_user_password', with: user.password
|
|
||||||
click_button "Sign up"
|
|
||||||
|
|
||||||
expect(current_path).to eq users_almost_there_path
|
fill_in 'new_user_name', with: user.name
|
||||||
expect(page).to have_content("Please check your email to confirm your account")
|
fill_in 'new_user_username', with: user.username
|
||||||
|
fill_in 'new_user_email', with: user.email
|
||||||
|
fill_in 'new_user_password', with: user.password
|
||||||
|
click_button "Sign up"
|
||||||
|
|
||||||
|
expect(current_path).to eq users_almost_there_path
|
||||||
|
expect(page).to have_content("Please check your email to confirm your account")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when not sending confirmation email" do
|
||||||
|
before { allow_any_instance_of(ApplicationSetting).to receive(:send_user_confirmation_email).and_return(false) }
|
||||||
|
|
||||||
|
it 'creates the user account and goes to dashboard' do
|
||||||
|
user = build(:user)
|
||||||
|
|
||||||
|
visit root_path
|
||||||
|
|
||||||
|
fill_in 'new_user_name', with: user.name
|
||||||
|
fill_in 'new_user_username', with: user.username
|
||||||
|
fill_in 'new_user_email', with: user.email
|
||||||
|
fill_in 'new_user_password', with: user.password
|
||||||
|
click_button "Sign up"
|
||||||
|
|
||||||
|
expect(current_path).to eq dashboard_projects_path
|
||||||
|
expect(page).to have_content("Welcome! You have signed up successfully.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'signup with errors' do
|
describe 'signup with errors' do
|
||||||
|
|
Loading…
Reference in a new issue