Sha256: f2956c0e14df15c82c888632bd2e4d674ad1f4b626659c6252bf506ac58a4543

Contents?: true

Size: 1.49 KB

Versions: 2

Compression:

Stored size: 1.49 KB

Contents

module Squall
  # OnApp Role
  class Role < Base
    # Public: Lists all roles.
    #
    # Returns an Array.
    def list
      response = request(:get, '/roles.json')
      response.collect { |role| role['role']}
    end

    # Public: Show info for the given role.
    #
    # id - ID of the role
    #
    # Returns a Hash.
    def show(id)
      response = request(:get, "/roles/#{id}.json")
      response["role"]
    end

    # Public: Create a new Role
    #
    # options - Params for creating the roles:
    #           :label          - Label for the role
    #           :permission_ids - An array of permission ids granted to the role.
    #
    # Example
    #
    #     create label: 'Admin'
    def create(options = {})
      request(:post, '/roles.json', default_params(options))
    end

    # Public: Edit a Role.
    #
    # id      - ID of the role
    # options - Params for editing the roles, see `#create`
    #
    # Example
    #
    #     edit 1, label: 'myrole', permission_ids: [1, 3]
    #
    # Returns a Hash.
    def edit(id, options = {})
      request(:put, "/roles/#{id}.json", default_params(options))
    end

    # Public: Delete a Role.
    #
    # id - ID of the role
    #
    # Returns a Hash.
    def delete(id)
      request(:delete, "/roles/#{id}.json")
    end

    # Public: Lists all permissions available.
    #
    # Returns an Array.
    def permissions
      response = request(:get, '/permissions.json')
      response.collect { |perm| perm['permission'] }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
squall-1.4.0 lib/squall/role.rb
squall-1.3.1 lib/squall/role.rb