module GoodData::Mixin::MdGrantees

Public Instance Methods

change_permission(opts) click to toggle source
# File lib/gooddata/mixins/md_grantees.rb, line 24
def change_permission(opts)
  permission = opts[:permission]
  member = opts[:member]
  op = opts[:operation]
  klasses = [GoodData::Profile, GoodData::UserGroup, GoodData::Membership]
  fail "Permission has to be set. Current value '#{permission}'" unless permission
  fail 'Member has to be either user or group' unless klasses.any? { |c| member.is_a?(c) }
  payload = {
    granteeURIs: {
      items: [
        { aclEntryURI: { permission: permission, grantee: member.uri } }
      ]
    }
  }
  client.post(uri + '/grantees/' + op.to_s, payload)
end
grant(opts = {}) click to toggle source
# File lib/gooddata/mixins/md_grantees.rb, line 16
def grant(opts = {})
  change_permission(opts.merge(operation: :add))
end
grantees(opts = {}) click to toggle source
# File lib/gooddata/mixins/md_grantees.rb, line 10
def grantees(opts = {})
  permission = opts[:permission]
  params = permission ? { permission: permission } : {}
  client.get(uri + '/grantees', params: params)
end
revoke(opts = {}) click to toggle source
# File lib/gooddata/mixins/md_grantees.rb, line 20
def revoke(opts = {})
  change_permission(opts.merge(operation: :remove))
end