Sha256: f744a441a22166f6b8da945ddf0f1f858cd4b621b7bfc22a90705b36de77cd44

Contents?: true

Size: 1.95 KB

Versions: 28

Compression:

Stored size: 1.95 KB

Contents

require_dependency "egov_utils/application_controller"

module EgovUtils
  class GroupsController < ApplicationController
    def index
      @groups = EgovUtils::Group.
                accessible_by(current_ability).
                order(:provider).
                page(params[:page] || 1)
    end

    def new
      @group = Group.new
    end

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

    def update
      @group = Group.find(params[:id])

      if @group.update(update_params)
        redirect_to egov_utils.groups_path, notice: t('success_updated')
      else
        render :edit
      end
    end

    def create
      @group = Group.new(create_params)
      respond_to do |format|
        if @group.save
          format.html{ redirect_to egov_utils.groups_path, notice: t('success_created') }
          format.json{ render json: @group, status: :created }
        else
          format.html{ render 'new' }
          format.json{ render json: @group.errors.full_messages, status: :unprocessable_entity }
        end
      end
    end

    def new_users
      @principals = EgovUtils::User.active.assignable_to_group(@group)
      respond_to do |format|
        format.html
        format.js { render_modal_js }
      end
    end

    def add_users
      render_404 and return unless @group.allow_member_assign?
      @users = User.active.assignable_to_group(@group).where(:id => (params[:user_id] || params[:user_ids])).to_a
      @group.users << @users
      respond_to do |format|
        format.html { redirect_to group_path(@group) }
        format.json { head :ok }
      end
    end

    private

    def create_params
      params
        .require(:group)
        .permit(:name, :provider, :ldap_uid, :external_uid, roles: []) do |p|
          p[:roles] = p[:roles].compact_blank
        end
    end

    def update_params
      params.require(:group).permit(:name, roles: []).tap do |p|
        p[:roles] = p[:roles].compact_blank
      end
    end

  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
egov_utils-1.5.0.alpha16 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha15 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha14 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha13 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha12 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha11 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha10 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha9 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha8 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha7 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha6 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha5 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha4 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.4.5 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.4.4 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha3 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha2 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.5.0.alpha1 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.4.3 app/controllers/egov_utils/groups_controller.rb
egov_utils-1.4.2 app/controllers/egov_utils/groups_controller.rb