Skip to content

Commit ccca98d

Browse files
authored
adds IAM policy remover to storage samples (GoogleCloudPlatform#396)
1 parent 33bc17d commit ccca98d

File tree

2 files changed

+50
-56
lines changed

2 files changed

+50
-56
lines changed

storage/api/composer.lock

Lines changed: 45 additions & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

storage/api/src/functions/remove_bucket_iam_member.php

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
namespace Google\Cloud\Samples\Storage;
2525

2626
# [START remove_bucket_iam_member]
27+
use Google\Cloud\Core\Iam\PolicyBuilder;
2728
use Google\Cloud\Storage\StorageClient;
2829

2930
/**
@@ -39,26 +40,11 @@ function remove_bucket_iam_member($bucketName, $role, $member)
3940
{
4041
$storage = new StorageClient();
4142
$bucket = $storage->bucket($bucketName);
42-
4343
$policy = $bucket->iam()->policy();
44+
$policyBuilder = new PolicyBuilder($policy);
45+
$policyBuilder->removeBinding($role, [$member]);
4446

45-
foreach ($policy['bindings'] as $i => &$binding) {
46-
if ($binding['role'] == $role) {
47-
if (false !== $j = array_search($member, $binding['members'])) {
48-
unset($binding['members'][$j]);
49-
$binding['members'] = array_values($binding['members']);
50-
if (empty($binding['members'])) {
51-
unset($policy['bindings'][$i]);
52-
$policy['bindings'] = array_values($policy['bindings']);
53-
}
54-
$bucket->iam()->setPolicy($policy);
55-
printf('User %s removed from role %s for bucket %s' . PHP_EOL, $member, $role, $bucketName);
56-
return;
57-
} else {
58-
printf('Member %s not found for role %s for bucket %s.' . PHP_EOL, $member, $role, $bucketName);
59-
}
60-
}
61-
}
62-
printf('Role %s not found for bucket %s.' . PHP_EOL, $role, $bucketName);
47+
$bucket->iam()->setPolicy($policyBuilder->result());
48+
printf('User %s removed from role %s for bucket %s' . PHP_EOL, $member, $role, $bucketName);
6349
}
6450
# [END remove_bucket_iam_member]

0 commit comments

Comments
 (0)