Skip to content

Instantly share code, notes, and snippets.

@jhancock
Created December 4, 2008 10:00
Show Gist options
  • Save jhancock/31904 to your computer and use it in GitHub Desktop.
Save jhancock/31904 to your computer and use it in GitHub Desktop.
def activate_post(user, _submit_activate = nil, _submit_cancel = nil)
@page_title = 'Activate Account'
if _submit_cancel
message[:notice] = "Activation cancelled"
redirect(url(:home), :message => message)
elsif _submit_activate # activate action
@user = User.new(user)
if user[:password] != user[:password_confirmed]
@user.errors.add(:password, "passwords do not match")
# do not want to redisplay these values
@user.password = @user.password_confirmed = nil
render(:activate)
elsif @user = User.find_unactivated_user(user[:email_unconfirmed_code])
if @user.activate(user[:display_name], user[:password]) # this does the save, so can return false it fails
session.user = user
send_mail(:account_activated, {}, {:user => user})
message[:notice] = "Your account is activated and you are logged in!"
redirect(url(:home), :message => message)
else
# display_name already in use or maybe the password didn't meet minimum standards
message[:notice] = "Activation failed."
render(:activate)
end
else
@user.errors.add(:email_unconfirmed_code, "no user found with this confirmation code")
render(:activate)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment