Sha256: d609cc0aa62afe5ca56b657e704e1f88d903f84cc8ce62b2a237496a64d6c871

Contents?: true

Size: 946 Bytes

Versions: 3

Compression:

Stored size: 946 Bytes

Contents

module RedBase
  module API
    class GroupsAPI < Grape::API

      resource :groups do

        desc "Return all the groups"
        get do
          authenticated_user
          # TODO: Check for admin user only
          RedBase::Group.includes(:permissions)
        end

        delete do
          authenticated_user

          #if can? :delete, Group
          #end
          Group.delete(params[:id].split(","))
        end

        post do
          authenticated_user

          permissions = [];

          params[:permissions].each do |perm_string|
            perm, model = perm_string.split "|"
            permission = Permission.find_or_create_by_model_and_permission_type(model, perm)
            permissions << permission
          end

          Group.create!({
                          name: params[:name],
                          permissions: permissions,
                        })
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
red_base-0.6.0 lib/red_base/api/groups_api.rb
red_base-0.5.1 lib/red_base/api/groups_api.rb
red_base-0.5.0 lib/red_base/api/groups_api.rb