Sha256: 0a4afbad9516f2772624921bcd47dfc90742545eb45c83ce5d14970e2f2ef08f

Contents?: true

Size: 1.64 KB

Versions: 16

Compression:

Stored size: 1.64 KB

Contents

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

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

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

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

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

    def create
      user_creator = UserCreator.new(user_params)
      user_creator.save
      @user = user_creator.get_user
      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

16 entries across 16 versions & 2 rubygems

Version Path
gaku_admin-0.3.0 app/controllers/gaku/admin/users_controller.rb
gaku_admin-0.3.0.pre.4 app/controllers/gaku/admin/users_controller.rb
gaku_admin-0.3.0.pre.3 app/controllers/gaku/admin/users_controller.rb
gaku_admin-0.3.0.pre.2 app/controllers/gaku/admin/users_controller.rb
gaku_admin-0.3.0.pre.1 app/controllers/gaku/admin/users_controller.rb
gaku_admin-0.3.0.pre.0 app/controllers/gaku/admin/users_controller.rb
gaku-0.2.4 admin/app/controllers/gaku/admin/users_controller.rb
gaku_admin-0.2.4 app/controllers/gaku/admin/users_controller.rb
gaku-0.2.3 admin/app/controllers/gaku/admin/users_controller.rb
gaku_admin-0.2.3 app/controllers/gaku/admin/users_controller.rb
gaku-0.2.2 admin/app/controllers/gaku/admin/users_controller.rb
gaku_admin-0.2.2 app/controllers/gaku/admin/users_controller.rb
gaku-0.2.1 admin/app/controllers/gaku/admin/users_controller.rb
gaku_admin-0.2.1 app/controllers/gaku/admin/users_controller.rb
gaku-0.2.0 admin/app/controllers/gaku/admin/users_controller.rb
gaku_admin-0.2.0 app/controllers/gaku/admin/users_controller.rb