From 1c264f5992dbc0ac9f84eadb4092a19414d1da9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Geuken?= Date: Wed, 12 Apr 2017 16:47:17 +0200 Subject: [PATCH] [webui] Drop validation of user's email address --- src/api/app/models/user.rb | 7 ++++--- src/api/spec/controllers/webui/user_controller_spec.rb | 4 ++-- src/api/spec/models/user_spec.rb | 1 - 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/api/app/models/user.rb b/src/api/app/models/user.rb index d208b0b9141..49264b2bc16 100644 --- a/src/api/app/models/user.rb +++ b/src/api/app/models/user.rb @@ -53,7 +53,7 @@ class User < ApplicationRecord scope :all_without_nobody, -> { where("login != ?", nobody_login) } - validates :login, :email, :password, :password_hash_type, :state, + validates :login, :password, :password_hash_type, :state, presence: { message: 'must be given' } validates :login, @@ -73,8 +73,9 @@ class User < ApplicationRecord # However, this is not *so* bad since users have to answer on their email # to confirm their registration. validates :email, - format: { with: %r{\A([\w\-\.\#\$%&!?*\'\+=(){}|~]+)@([0-9a-zA-Z\-\.\#\$%&!?*\'=(){}|~]+)+\z}, - message: 'must be a valid email address.' } + format: { with: %r{\A([\w\-\.\#\$%&!?*\'\+=(){}|~]+)@([0-9a-zA-Z\-\.\#\$%&!?*\'=(){}|~]+)+\z}, + message: 'must be a valid email address.', + allow_blank: true } # We want to validate the format of the password and only allow alphanumeric # and some punctiation/base64 characters. diff --git a/src/api/spec/controllers/webui/user_controller_spec.rb b/src/api/spec/controllers/webui/user_controller_spec.rb index f8925b82a34..7328385abec 100644 --- a/src/api/spec/controllers/webui/user_controller_spec.rb +++ b/src/api/spec/controllers/webui/user_controller_spec.rb @@ -125,11 +125,11 @@ context "with invalid data" do before do login user - post :save, params: { user: user, realname: "another real name", email: "" } + post :save, params: { user: user, realname: "another real name", email: "invalid" } user.reload end - it { expect(flash[:error]).to eq("Couldn't update user: Validation failed: Email must be given, Email must be a valid email address..") } + it { expect(flash[:error]).to eq("Couldn't update user: Validation failed: Email must be a valid email address..") } it { expect(user.realname).to eq(user.realname) } it { expect(user.email).to eq(user.email) } it { is_expected.to redirect_to user_show_path(user) } diff --git a/src/api/spec/models/user_spec.rb b/src/api/spec/models/user_spec.rb index fad7a8716c2..a3b23a39af9 100644 --- a/src/api/spec/models/user_spec.rb +++ b/src/api/spec/models/user_spec.rb @@ -11,7 +11,6 @@ it { is_expected.to validate_length_of(:login).is_at_least(2).with_message('must have more than two characters.') } it { is_expected.to validate_length_of(:login).is_at_most(100).with_message('must have less than 100 characters.') } - it { is_expected.to validate_presence_of(:email).with_message('must be given') } it { is_expected.to allow_value('king@opensuse.org').for(:email) } it { is_expected.to_not allow_values('king.opensuse.org', 'opensuse.org', 'opensuse').for(:email) }