Sha256: 80c00d0efe031a3d97240415ea90c1c5d77f098b79a842ec695efae39b2dc149

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

require_dependency "authz/application_controller"

module Authz
  class RolablesController < ApplicationController
    def index
      @rolables = rolable.all.page(params[:page])
    end

    def show
      @rolable = rolable.find(params[:id])
      @associated_roles = @rolable.roles.page(1)
      @associated_business_processes = @rolable.business_processes.page(params[:business_processes_page])
      @associated_controller_actions = @rolable.controller_actions.page(params[:controller_actions_page])
    end

    def edit
      @rolable = rolable.find(params[:id])
    end

    def update
      @rolable = rolable.find(params[:id])
      if @rolable.update(rolable_params)
        redirect_to send("#{@rolable.model_name.singular}_path", @rolable)
      else
        render 'edit'
      end
    end

    private

    def rolable
      ::Authz.rolables.each do |klass|
        klass_name = klass.authorizable_association_name
        regex = /\A\/#{klass_name}(\/|\z)/
        next unless regex.match request.path_info
        return klass
      end
    end

    def rolable_params
      params.require(rolable.model_name.singular)
        .permit(role_ids: [])
    end


  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
authz-0.0.1.alpha5 app/controllers/authz/rolables_controller.rb
authz-0.0.1.alpha4 app/controllers/authz/rolables_controller.rb
authz-0.0.1.alpha3 app/controllers/authz/rolables_controller.rb
authz-0.0.1.alpha2 app/controllers/authz/rolables_controller.rb