Sha256: f015d6ade36ded3d5b6a24481cb3dd4287e05701147c30f3c228192250b943d9

Contents?: true

Size: 1.49 KB

Versions: 1

Compression:

Stored size: 1.49 KB

Contents

require_dependency 'comable/apartment/application_controller'

module Comable
  module Apartment
    class UsersController < Comable::Apartment::ApplicationController
      load_and_authorize_resource :tenant, class: Comable::Tenant.name, find_by: :name
      before_filter :switch_tenant
      load_and_authorize_resource :user, class: Comable::User.name
      after_filter :reset_tenant

      def index
        @users = @users.with_role(*admin_roles)
      end

      def show
        render :edit
      end

      def new
      end

      def create
        if @user.save
          redirect_to comable_apartment.tenant_user_path(@tenant, @user), notice: Comable.t(:successful)
        else
          flash.now[:alert] = Comable.t(:failure)
          render :new
        end
      end

      def edit
      end

      def update
        if @user.update_attributes(user_params)
          redirect_to comable_apartment.tenant_user_path(@tenant, @user), notice: Comable.t(:successful)
        else
          flash.now[:alert] = Comable.t(:failure)
          render :edit
        end
      end

      def destroy
        @user.destroy
        redirect_to comable_apartment.tenant_users_path(@tenant), notice: Comable.t(:successful)
      end

      private

      def user_params
        params.require(:user).permit(
          :email,
          :password,
          :role
        )
      end

      def switch_tenant
        @tenant.switch!
      end

      def reset_tenant
        @tenant.reset!
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
comable-apartment-0.0.1 app/controllers/comable/apartment/users_controller.rb