Sha256: c3e611c869d89d9af06a895a49465c99013ca53ae9b9b58dd073928854a85403

Contents?: true

Size: 1.69 KB

Versions: 6

Compression:

Stored size: 1.69 KB

Contents

module Gaku
  class Admin::UsersController < Admin::BaseController

    #load_and_authorize_resource class: User

    respond_to :js,   only: %i( new create edit update destroy )
    respond_to :html, only: :index

    before_action :set_user, only: %i( edit update destroy )
    before_action :set_roles

    def index
      @users = User.all.page(params[:page]).per(Preset.default_per_page)
      @count = User.count
      respond_with @users
    end

    def new
      @user = User.new
      respond_with @user
    end

    def create
      @user = User.new(user_params)
      @user.save
      save_user_roles
      @count = User.count
      respond_with @user
    end

    def edit
    end

    def update
      clean_password
      save_user_roles
      @user.update(user_params)
      respond_with @user
    end

    def destroy
      @user.destroy
      @count = User.count
      respond_with @user
    end

    private

    def set_user
      @user = User.find(params[:id])
    end

    def user_params
      params.require(:user).permit(attributes)
    end

    def attributes
      [:login, :username, :email, :password, :password_confirmation, :remember_me, :locale, { role_ids: [] } ]
    end

    def set_roles
      @roles = Role.all
    end

    def save_user_roles
      if params[:user][:role_ids]
        @user.roles.destroy_all
        Role.all.each do |role|
          if params[:user][:role_ids].include?(role.id.to_s)
            @user.roles << role
          end
        end
      end
    end

    def clean_password
      params[:user].delete(:password) if params[:user][:password].blank?
      params[:user].delete(:password_confirmation) if params[:user][:password_confirmation].blank?
    end

  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
gaku_core-0.0.3 app/controllers/gaku/admin/users_controller.rb
gaku-0.0.3 core/app/controllers/gaku/admin/users_controller.rb
gaku-0.0.2 core/app/controllers/gaku/admin/users_controller.rb
gaku_core-0.0.2 app/controllers/gaku/admin/users_controller.rb
gaku-0.0.1 core/app/controllers/gaku/admin/users_controller.rb
gaku_core-0.0.1 app/controllers/gaku/admin/users_controller.rb