module GClouder::Resources::Project::IAMPolicyBinding::Remote

Public Class Methods

list() click to toggle source
# File lib/gclouder/resources/project/iam_policy_binding.rb, line 259
def self.list
  resources.each_with_object({ "global" => [] }) do |data, collection|
    data["name"] = data["role"].gsub("roles/", "")
    data.delete("role")
    collection["global"] << data
  end
end
policy_member?(project, role, member) click to toggle source
# File lib/gclouder/resources/project/iam_policy_binding.rb, line 271
def self.policy_member?(project, role, member)
  bindings = gcloud("--format json projects get-iam-policy #{project} | jq '.bindings[] | select(.role == \"roles/#{role}\")'", force: true)
  return false if bindings.empty?
  fatal "could not get policy bindings for project: #{project}" unless bindings.key?("members")
  bindings["members"].include?(member["name"])
end
project_id() click to toggle source
# File lib/gclouder/resources/project/iam_policy_binding.rb, line 278
def self.project_id
  project["project_id"]
end
resources() click to toggle source
# File lib/gclouder/resources/project/iam_policy_binding.rb, line 267
def self.resources
  gcloud("--format json projects get-iam-policy #{project_id} | jq .bindings", force: true)
end