forked from saurabh/orbit4-5
112 lines
3.1 KiB
Ruby
112 lines
3.1 KiB
Ruby
class UsersController < ApplicationController
|
|
layout "authentication"
|
|
def new
|
|
@user = User.new
|
|
end
|
|
|
|
def create
|
|
firstname = {}
|
|
lastname = {}
|
|
@site_valid_locales.each do |locale|
|
|
firstname[locale] = params[:first_name]
|
|
lastname[locale] = params[:last_name]
|
|
end
|
|
|
|
@user = User.new(user_params)
|
|
@member = MemberProfile.new(email: params[:email], first_name_translations: firstname, last_name_translations: lastname)
|
|
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
|
|
else
|
|
render "new"
|
|
end
|
|
end
|
|
|
|
def confirmation
|
|
end
|
|
|
|
def confirm_user
|
|
user = User.confirm_email(params[:token])
|
|
|
|
redirect_to users_path(:user_id => user[:id])
|
|
if user[:success].eql?("true")
|
|
flash[:notice] = "You have confirmed successfully"
|
|
else
|
|
flash[:notice] = "Error in confirmation please try again."
|
|
end
|
|
end
|
|
|
|
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(p)
|
|
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)
|
|
@user_id = params[:user_id]
|
|
@member_profile = User.find(@user_id).member_profile
|
|
|
|
end
|
|
|
|
def role_update
|
|
user = User.find(params[:id])
|
|
member_profile = user.member_profile
|
|
if member_profile.update_attributes(basic_info_params)
|
|
redirect_to "/sessions/new"
|
|
else
|
|
@roles = Role.where(:disabled => false)
|
|
render :action => "role_page"
|
|
end
|
|
end
|
|
|
|
def get_role_statuses
|
|
@role = Role.find(params[:roleId])
|
|
@statuses = @role.role_statuses
|
|
render :layout => false
|
|
end
|
|
|
|
def check_availability
|
|
response = {}
|
|
case params[:type]
|
|
when "user_id"
|
|
response["success"] = User.where(:user_name => params[:value]).count > 0 ? false : true
|
|
when "user_email"
|
|
response["success"] = MemberProfile.where(:email => params[:value]).count > 0 ? false : true
|
|
end
|
|
render :json => response.to_json
|
|
end
|
|
|
|
private
|
|
|
|
# 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)
|
|
end
|
|
|
|
def basic_info_params
|
|
params.require(:member_profile).permit!
|
|
end
|
|
end
|