From c6a2cc536afa7390c498ef50acc4a450d8e6c2e9 Mon Sep 17 00:00:00 2001 From: Braulio Bhavamitra Date: Fri, 21 Aug 2015 17:00:23 -0300 Subject: [PATCH] Revert "Merge branch 'user_not_active_auth' into 'master'" --- app/controllers/public/account_controller.rb | 8 ++------ app/models/user.rb | 38 +++++--------------------------------- test/functional/account_controller_test.rb | 15 +-------------- 3 files changed, 8 insertions(+), 53 deletions(-) diff --git a/app/controllers/public/account_controller.rb b/app/controllers/public/account_controller.rb index 5775657..b4b80a9 100644 --- a/app/controllers/public/account_controller.rb +++ b/app/controllers/public/account_controller.rb @@ -46,12 +46,8 @@ class AccountController < ApplicationController self.current_user = plugins_alternative_authentication - begin - self.current_user ||= User.authenticate(params[:user][:login], params[:user][:password], environment) if params[:user] - rescue User::UserNotActivated => e - session[:notice] = e.message - return - end + self.current_user ||= User.authenticate(params[:user][:login], params[:user][:password], environment) if params[:user] + if logged_in? check_join_in_community(self.current_user) diff --git a/app/models/user.rb b/app/models/user.rb index fe8a563..e613513 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -120,17 +120,11 @@ class User < ActiveRecord::Base validates_inclusion_of :terms_accepted, :in => [ '1' ], :if => lambda { |u| ! u.terms_of_use.blank? }, :message => N_('{fn} must be checked in order to signup.').fix_i18n - scope :has_login?, lambda { |login,email,environment_id| - where('login = ? OR email = ?', login, email). - where(environment_id: environment_id) - } - # Authenticates a user by their login name or email and unencrypted password. Returns the user or nil. def self.authenticate(login, password, environment = nil) environment ||= Environment.default - - u = self.has_login?(login, login, environment.id) - u = u.first if u.is_a?(ActiveRecord::Relation) + u = self.first :conditions => ['(login = ? OR email = ?) AND environment_id = ? AND activated_at IS NOT NULL', + login, login, environment.id] # need to get the salt u && u.authenticated?(password) ? u : nil end @@ -242,23 +236,7 @@ class User < ActiveRecord::Base password.crypt(salt) end - class UserNotActivated < StandardError - attr_reader :user - - def initialize(message, user = nil) - @user = user - - super(message) - end - end - def authenticated?(password) - - unless self.activated? - message = _('The user "%{login}" is not activated! Please check your email to activate your user') % {login: self.login} - raise UserNotActivated.new(message, self) - end - result = (crypted_password == encrypt(password)) if (encryption_method != User.system_encryption_method) && result self.password_type = User.system_encryption_method.to_s @@ -297,15 +275,9 @@ class User < ActiveRecord::Base # current password. # * Saves the record unless it is a new one. def change_password!(current, new, confirmation) - - begin - unless self.authenticated?(current) - self.errors.add(:current_password, _('does not match.')) - raise IncorrectPassword - end - rescue UserNotActivated => e - self.errors.add(:current_password, e.message) - raise UserNotActivated + unless self.authenticated?(current) + self.errors.add(:current_password, _('does not match.')) + raise IncorrectPassword end self.force_change_password!(new, confirmation) end diff --git a/test/functional/account_controller_test.rb b/test/functional/account_controller_test.rb index e5b5696..19ebdce 100644 --- a/test/functional/account_controller_test.rb +++ b/test/functional/account_controller_test.rb @@ -40,14 +40,6 @@ class AccountControllerTest < ActionController::TestCase post :login, :user => { :login => 'fake', :password => 'fake' } end - should 'fail login if a user is inactive and show a warning message' do - user = User.create!(login: 'testuser', email: 'test@email.com', password:'test', password_confirmation:'test', activation_code: nil) - post :login, :user => { :login => 'testuser', :password => 'test' } - - assert_match 'not activated', session[:notice] - assert_nil session[:user] - end - def test_should_fail_login_and_not_redirect @request.env["HTTP_REFERER"] = 'bli' post :login, :user => {:login => 'johndoe', :password => 'bad password'} @@ -281,9 +273,8 @@ class AccountControllerTest < ActionController::TestCase assert_template 'invalid_change_password_code' end - should 'require password confirmation correctly to enter new password' do + should 'require password confirmation correctly to enter new pasword' do user = create_user('testuser', :email => 'testuser@example.com', :password => 'test', :password_confirmation => 'test') - user.activate change = ChangePassword.create!(:requestor => user.person) post :new_password, :code => change.code, :change_password => { :password => 'onepass', :password_confirmation => 'another_pass' } @@ -758,8 +749,6 @@ class AccountControllerTest < ActionController::TestCase get :activate assert_nil assigns(:message) post :login, :user => {:login => 'testuser', :password => 'test123'} - - assert_match 'not activated', session[:notice] assert_nil session[:user] end @@ -769,8 +758,6 @@ class AccountControllerTest < ActionController::TestCase get :activate, :activation_code => 'wrongcode' assert_nil assigns(:message) post :login, :user => {:login => 'testuser', :password => 'test123'} - - assert_match 'not activated', session[:notice] assert_nil session[:user] end -- libgit2 0.21.2