[Git][noosfero/noosfero][master] 2 commits: Fix user email validation
Antonio Terceiro
gitlab at gitlab.com
Tue Aug 4 16:25:59 BRT 2015
Antonio Terceiro pushed to branch master at Noosfero / noosfero
Commits:
59c15564 by brenddongontijo at 2015-08-03T19:05:48Z
Fix user email validation
Signed-off-by: Andre Bernardes <andrebsguedes at gmail.com>
Signed-off-by: Brenddon Gontijo <brenddongontijo at msn.com>
Signed-off-by: Filipe Ribeiro <firibeiro77 at live.com>
- - - - -
6193f05c by Antonio Terceiro at 2015-08-04T19:24:08Z
Merge branch 'fix_user_email_validation' into 'master'
Fix user email validation
Add regex to test the email validation.
Fixes #82
See merge request !644
- - - - -
3 changed files:
- app/views/account/_signup_form.html.erb
- lib/noosfero/constants.rb
- test/unit/user_test.rb
Changes:
=====================================
app/views/account/_signup_form.html.erb
=====================================
--- a/app/views/account/_signup_form.html.erb
+++ b/app/views/account/_signup_form.html.erb
@@ -135,6 +135,10 @@
<script type="text/javascript">
jQuery(function($) {
+ $.validator.addMethod('validEmail', function(value, element) {
+ var regex = /^([^\W_])([\w._-]+)@((?:[-_a-z0-9]+\.)+[a-z]{2,})$/i;
+ return this.optional(element) || regex.test(value);
+ }, 'Please enter a valid e-mail');
$('#signup-form input[type=text], #signup-form textarea').each(function() {
$(this).bind('blur', function() {
@@ -170,7 +174,7 @@ jQuery(function($) {
$('#signup-balloon').fadeIn('slow');
});
$('#user_login').blur(function() { $('#signup-balloon').fadeOut('slow'); });
- $('#signup-form').validate({ rules: { 'user[email]': { email: true } }, messages: { 'user[email]' : '' } });
+ $('#signup-form').validate({ rules: { 'user[email]': { email: true, validEmail: true } }, messages: { 'user[email]' : '' } });
$('#user_email').focus(function() {
$('#email-balloon').fadeIn('slow');
});
=====================================
lib/noosfero/constants.rb
=====================================
--- a/lib/noosfero/constants.rb
+++ b/lib/noosfero/constants.rb
@@ -1,5 +1,5 @@
module Noosfero::Constants
- EMAIL_FORMAT = /\A([^@\s]+)@((?:[-_a-z0-9]+\.)+[a-z]{2,})\Z/i
+ EMAIL_FORMAT = /\A([^\W_])([\w._-]+)@((?:[-_a-z0-9]+\.)+[a-z]{2,})\Z/i
INTEGER_FORMAT = /\A\d*\Z/i
PROFILE_PER_PAGE = 10
end
=====================================
test/unit/user_test.rb
=====================================
--- a/test/unit/user_test.rb
+++ b/test/unit/user_test.rb
@@ -14,6 +14,24 @@ class UserTest < ActiveSupport::TestCase
end
end
+ should 'not create user with wrong email' do
+ user = User.new(login: 'test_user', email: 'tes*te at hotmail.com',
+ password: '123456', password_confirmation: '123456')
+ user.save
+ assert_equal user.valid?, false
+ assert !user.errors[:email].nil?
+
+ user.email = '_teste at hotmail.com'
+ user.save
+ assert_equal user.valid?, false
+ assert !user.errors[:email].nil?
+
+ user.email = 'teste$@hotmail.com'
+ user.save
+ assert_equal user.valid?, false
+ assert !user.errors[:email].nil?
+ end
+
def test_should_require_login
assert_no_difference 'User.count' do
u = new_user(:login => nil)
View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/a7f039c706c85a11ca0990b4912c27f0585911f9...6193f05c704476bf8d09bb1ae73f200d7718f70d
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20150804/f76d9fa1/attachment.html>
More information about the Noosfero-dev
mailing list