Sha256: f4b120844d3dc210de8aa281475ab108f9b1a8d56a24634c762f3dd4cc415267

Contents?: true

Size: 1.91 KB

Versions: 5

Compression:

Stored size: 1.91 KB

Contents

module Clearance
  module App
    module Controllers
      module UsersController

        def self.included(base)
          base.class_eval do
            filter_parameter_logging :password, :password_confirmation, :old_password
            
            before_filter :login_required, :only => [:change_password, :edit_password]
            
            include InstanceMethods
        
          private
            include PrivateInstanceMethods
          end
        end

        module InstanceMethods
          def new
            @user = user_model.new(params[:user])
          end
      
          def create
            @user = user_model.create params[:user]
            @user.save ? create_successful : create_failed
          end
          
          def edit_password
            @user = current_user
          end
          
          def change_password
            @user = current_user
            
            if @user.change_password(params[:user])
              flash[:notice] = "Password changed successfully."
              after_successful_change_password
            else
              render :action => "edit_password"
            end
          end
          
        end

        module PrivateInstanceMethods
          
          def create_successful
            ClearanceMailer.deliver_confirmation @user
            flash[:notice] = "You will receive an email within the next few minutes. It contains instructions for you to confirm your account."
            redirect_to url_after_create
          end
          
          def create_failed
            render :action => "new"
          end

          def after_successful_change_password
            redirect_to user_path(current_user)
          end
          
          def url_after_create
            new_session_url
          end
        
          def url_after_change_password
            user_path(current_user)
          end
        end

      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
hashrocket-clearance-0.4.0 lib/clearance/app/controllers/users_controller.rb
hashrocket-clearance-0.4.1 lib/clearance/app/controllers/users_controller.rb
hashrocket-clearance-0.4.2 lib/clearance/app/controllers/users_controller.rb
hashrocket-clearance-0.4.3 lib/clearance/app/controllers/users_controller.rb
hashrocket-clearance-0.4.4 lib/clearance/app/controllers/users_controller.rb