Sha256: 9d22cce501a2fdcee1758b33d0f16b5b354f110d66985ed49ebb71070cc7968e

Contents?: true

Size: 1.99 KB

Versions: 4

Compression:

Stored size: 1.99 KB

Contents

module Boxroom
  class UsersController < Boxroom::ApplicationController
    include Boxroom::BaseController

    before_action :require_admin, :except => [:edit, :update]
    before_action :require_existing_user, :only => [:edit, :update, :destroy, :extend]
    before_action :require_deleted_user_isnt_admin, :only => :destroy

    def index
      @users = User.where.not(:name => nil).order('name')
      @new_users = User.where(:name => nil).order('email')
    end

    def new
      @user = User.new
    end

    def create
      @user = User.new(permitted_params.user)

      if @user.save
        UserMailer.signup_email(@user).deliver_now
        redirect_to users_url
      else
        render :action => 'new'
      end
    end

    # Note: @user is set in require_existing_user
    def edit
    end

    # Note: @user is set in require_existing_user
    def update
      if @user.update_attributes(permitted_params.user.merge({:password_required => false}))
        redirect_to edit_user_url(@user), :notice => t(:your_changes_were_saved)
      else
        render :action => 'edit'
      end
    end

    # Note: @user is set in require_existing_user
    def extend
      @user.signup_token_expires_at = @user.signup_token_expires_at + 2.weeks
      @user.save(:validate => false)
      redirect_to users_url
    end

    # Note: @user is set in require_existing_user
    def destroy
      @user.destroy
      redirect_to users_url
    end

    private

    def require_existing_user
      if boxroom_current_user.member_of_admins? && params[:id] != boxroom_current_user.id.to_s
        @title = t(:edit_user)
        @user = User.find(params[:id])
      else
        @title = t(:account_settings)
        @user = boxroom_current_user
      end
    rescue ActiveRecord::RecordNotFound
      redirect_to users_url, :alert => t(:user_already_deleted)
    end

    def require_deleted_user_isnt_admin
      if @user.is_admin
        redirect_to users_url, :alert => t(:admin_user_cannot_be_deleted)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
boxroom-0.0.5 app/controllers/boxroom/users_controller.rb
boxroom-0.0.4 app/controllers/boxroom/users_controller.rb
boxroom-0.0.3 app/controllers/boxroom/users_controller.rb
boxroom-0.0.2 app/controllers/boxroom/users_controller.rb