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