Sha256: 901a0893ac67687642d75d1b31ed676bc74590564271313d4bb2b88aff943f02

Contents?: true

Size: 1.89 KB

Versions: 4

Compression:

Stored size: 1.89 KB

Contents

module Caboose
  class RegisterController < Caboose::ApplicationController
    layout 'caboose/modal'
    
    # GET /register
    def index
      @return_url = params[:return_url].nil? ? "/" : params[:return_url];
      @modal = params[:modal].nil? ? false : params[:modal]
      redirect_to @return_url if logged_in?
    end
    
    # POST /register
    def register
      
      resp = StdClass.new('error' => '', 'redirect' => '')
      return_url = params[:return_url].nil? ? "/" : params[:return_url];
      
      if (logged_in?)
        resp.error = "Already logged in"
      else
        
        first_name  = params[:first_name]
        last_name   = params[:last_name]
        email       = params[:email]
        pass1       = params[:pass1]
        pass2       = params[:pass2]
                          
        if (first_name.nil? || first_name.strip.length == 0)
          resp.error = "Your first name is required."
        elsif (last_name.nil? || last_name.strip.length == 0)
          resp.error = "Your last name is required."
        elsif (email.nil? || email.strip.length == 0)
          resp.error = "Your email address is required."
        elsif (pass1.nil? || pass1.strip.length < 8)
          resp.error = "Your password must be at least 8 characters."
        elsif (pass2.nil? || pass1 != pass2)
          resp.error = "Your passwords don't match."
        else
          
          u = Caboose::User.new
          u.first_name    = first_name
          u.last_name     = last_name
          u.email         = email
          u.password      = Digest::SHA1.hexdigest(Caboose::salt + pass1)
          u.date_created  = DateTime.now
          u.save
          
          # Go ahead and log the user in
          u = Caboose::User.find(u.id)
          login_user(u)
          
          resp.redirect = "/login?return_url=#{return_url}"

        end
      end
      render json: resp
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
caboose-cms-0.2.43 app/controllers/caboose/register_controller.rb
caboose-cms-0.2.42 app/controllers/caboose/register_controller.rb
caboose-cms-0.2.41 app/controllers/caboose/register_controller.rb
caboose-cms-0.2.40 app/controllers/caboose/register_controller.rb