Sha256: cd129c44fb7fecbcb8dbd5053454df6b5be8b3c9d17cc6c431d602ad86b12fd8

Contents?: true

Size: 1.8 KB

Versions: 14

Compression:

Stored size: 1.8 KB

Contents

module Faalis::Dashboard
  class GroupsController < ::Dashboard::ApplicationController

    before_action :get_all_permissions, only: [:new, :edit]

    def index
      authorize Faalis::Group
      @groups = Faalis::Group.all
    end

    def new
      authorize Faalis::Group
      @group = Faalis::Group.new
    end


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

    def create
      authorize Faalis::Group

      name = group_params[:name]
      @group = Faalis::Group.new(name: name, role: name.underscore)

      @group.permissions = populate_permissions

      respond_to do |f|
        if @group.save
          f.js
          f.html
        else
          f.js { render :errors }
          f.html
        end
      end

    end

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

      @group.permissions = populate_permissions
      @group.name        = group_params[:name]
      @group.role        = group_params[:name].underscore

      respond_to do |f|
        if @group.save
          f.js
          f.html
        else
          f.js { render :errors }
          f.html
        end
      end
    end

    private

    def populate_permissions
      unless group_params[:permissions].nil?
        # TODO: Fix this for mongoid too.
        ids = group_params[:permissions].keys.map(&:to_i)
        Faalis::Permission.where(id: ids)
      end
    end

    def group_params
      params.require(:group).permit!
    end

    def get_all_permissions
      @permissions = {}
      Faalis::Permission.all.each do |perm|
        if @permissions.include? perm.model
          @permissions[perm.model] << [perm.permission_type, perm.id]
        else
          @permissions[perm.model] = [[perm.permission_type, perm.id]]
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
faalis-2.1.1 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.1.0 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.8 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.7 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.5 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.4 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.3 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.1 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.0 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.0.rc6 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.0.rc5 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.0.rc4 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.0.rc3 app/controllers/faalis/dashboard/groups_controller.rb
faalis-2.0.0.rc2 app/controllers/faalis/dashboard/groups_controller.rb