orbit4-5/app/controllers/users_controller.rb

103 lines
3.0 KiB
Ruby
Raw Normal View History

2014-04-10 04:01:34 +00:00
class UsersController < ApplicationController
2014-04-10 09:13:42 +00:00
layout "authentication"
2014-04-10 04:01:34 +00:00
def new
@user = User.new
end
def create
@user = User.new(user_params)
@member = MemberProfile.new(email: params[:email], first_name: params[:first_name], last_name: params[:last_name])
2014-04-10 04:01:34 +00:00
if @user.save
@member.save
@user.update_attributes(member_profile_id: @member.id)
redirect_to users_confirmation_path
@user.generate_confirmation_token
url = "#{request.protocol}#{request.host_with_port}/#{locale.to_s}/users/confirm_user?token=#{@user.confirmation_token}"
email = Email.new(:mail_to => @user.member_profile.email, :mail_subject => "Confirmation email for orbit signup.", :template => "email/user_confirmation_email.html.erb", :template_data => {"url" => url})
email.deliver
2014-04-10 04:01:34 +00:00
else
render "new"
end
end
def confirmation
end
2014-05-09 06:03:55 +00:00
def confirm_user
user = User.confirm_email(params[:token])
redirect_to users_path(:user_id => user[:id])
2014-05-09 06:03:55 +00:00
if user[:success].eql?("true")
flash[:notice] = "You have confirmed successfully"
else
flash[:notice] = "Error in confirmation please try again."
end
end
2014-05-26 08:43:51 +00:00
def index
if params[:user_id].nil?
redirect_to "/users/sign_up"
end
@user = User.find(params[:user_id])
end
def form_page
@user = User.find(params[:user_id])
@member_profile = @user.member_profile
end
def basic_info_update
@user = User.find(params[:id])
member_profile = @user.member_profile
if member_profile.update_attributes(basic_info_params)
redirect_to users_role_page_path(:user_id => @user.id.to_s)
else
render :action=> "form_page"
end
end
def role_page
@roles = Role.where(:disabled => false)
2014-05-26 08:43:51 +00:00
@user_id = params[:user_id]
end
def role_update
user = User.find(params[:id])
member_profile = user.member_profile
if member_profile.update_attributes(basic_info_params)
2014-05-26 08:43:51 +00:00
redirect_to "/users/sign_in"
else
@roles = Role.where(:disabled => false)
2014-05-26 08:43:51 +00:00
render :action => "role_page"
end
end
def check_availability
response = {}
case params[:type]
when "user_id"
response["success"] = User.where(:user_id => params[:value]).count > 0 ? false : true
when "user_email"
response["success"] = User.where(:email => params[:value]).count > 0? false : true
end
render :json => response.to_json
2014-05-09 06:03:55 +00:00
end
2014-04-10 04:01:34 +00:00
private
def email_template(token)
html = "<p>Thank you for registering your site with Orbit! Please click on the following link and confirm. This is to make sure we could provide you with a spam free experience. Thanks a lot.</p>"
html = html + "<a href='#{confirm_user_users_url(:token => token)} /> Please click here </a>"
html
end
2014-04-10 04:01:34 +00:00
# Never trust parameters from the scary internet, only allow the white list through.
def user_params
params.require(:user).permit(:password, :password_confirmation, :user_name, :member_profile_id, :email, :first_name, :last_name)
2014-04-10 04:01:34 +00:00
end
2014-05-26 08:43:51 +00:00
def basic_info_params
params.require(:member_profile).permit!
end
2014-04-10 04:01:34 +00:00
end