Skip to content

Commit

Permalink
Refactor: Add methods to User to edit the encapsulate the status field.
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3906 e93f8b46-1217-0410-a6f0-8f06a7374b81
  • Loading branch information
edavis10 committed Aug 3, 2010
1 parent 25037b8 commit 13234f8
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 6 deletions.
12 changes: 6 additions & 6 deletions app/controllers/account_controller.rb
Expand Up @@ -83,9 +83,9 @@ def register
else
@user = User.new(params[:user])
@user.admin = false
@user.status = User::STATUS_REGISTERED
@user.register
if session[:auth_source_registration]
@user.status = User::STATUS_ACTIVE
@user.activate
@user.login = session[:auth_source_registration][:login]
@user.auth_source_id = session[:auth_source_registration][:auth_source_id]
if @user.save
Expand Down Expand Up @@ -116,8 +116,8 @@ def activate
token = Token.find_by_action_and_value('register', params[:token])
redirect_to(home_url) && return unless token and !token.expired?
user = token.user
redirect_to(home_url) && return unless user.status == User::STATUS_REGISTERED
user.status = User::STATUS_ACTIVE
redirect_to(home_url) && return unless user.registered?
user.activate
if user.save
token.destroy
flash[:notice] = l(:notice_account_activated)
Expand Down Expand Up @@ -170,7 +170,7 @@ def open_id_authenticate(openid_url)
user.mail = registration['email'] unless registration['email'].nil?
user.firstname, user.lastname = registration['fullname'].split(' ') unless registration['fullname'].nil?
user.random_password
user.status = User::STATUS_REGISTERED
user.register

case Setting.self_registration
when '1'
Expand Down Expand Up @@ -241,7 +241,7 @@ def register_by_email_activation(user, &block)
# Pass a block for behavior when a user fails to save
def register_automatically(user, &block)
# Automatic activation
user.status = User::STATUS_ACTIVE
user.activate
user.last_login_on = Time.now
if user.save
self.logged_user = user
Expand Down
24 changes: 24 additions & 0 deletions app/models/user.rb
Expand Up @@ -164,6 +164,30 @@ def locked?
self.status == STATUS_LOCKED
end

def activate
self.status = STATUS_ACTIVE
end

def register
self.status = STATUS_REGISTERED
end

def lock
self.status = STATUS_LOCKED
end

def activate!
update_attribute(:status, STATUS_ACTIVE)
end

def register!
update_attribute(:status, STATUS_REGISTERED)
end

def lock!
update_attribute(:status, STATUS_LOCKED)
end

def check_password?(clear_password)
if auth_source_id.present?
auth_source.authenticate(self.login, clear_password)
Expand Down

0 comments on commit 13234f8

Please sign in to comment.