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 )
2014-05-26 07:18:59 +00:00
@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
2014-05-26 01:45:46 +00:00
@member . save
@user . update_attributes ( member_profile_id : @member . id )
2014-05-27 05:51:18 +00:00
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
2014-05-27 05:51:18 +00:00
def confirmation
end
2014-05-09 06:03:55 +00:00
def confirm_user
user = User . confirm_email ( params [ :token ] )
2014-05-27 05:51:18 +00:00
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
2014-05-27 05:51:18 +00:00
@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
2014-05-27 05:51:18 +00:00
if member_profile . update_attributes ( basic_info_params )
2014-05-26 08:43:51 +00:00
redirect_to " /users/sign_in "
else
2014-05-27 05:51:18 +00:00
@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
2014-05-27 05:51:18 +00:00
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
2014-05-26 07:18:59 +00:00
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