1414 * limitations under the License.
1515 */
1616
17- /*
18- * EDITING INSTRUCTIONS
19- * This file is referenced in Storage's javadoc. Any change to this file should be reflected in
20- * Storage's javadoc.
21- */
22-
2317package com .google .cloud .examples .storage .snippets ;
2418
2519import com .google .cloud .Identity ;
@@ -47,7 +41,6 @@ public BucketIamSnippets(Storage storage) {
4741 /**
4842 * Example of listing the Bucket-Level IAM Roles and Members
4943 */
50-
5144 public Policy listBucketIamMembers (String bucketName ) {
5245 // [START view_bucket_iam_members]
5346 // Initialize a Cloud Storage client
@@ -59,8 +52,7 @@ public Policy listBucketIamMembers(String bucketName) {
5952 // Print Roles and its identities
6053 Map <Role , Set <Identity >> policyBindings = policy .getBindings ();
6154 for (Map .Entry <Role , Set <Identity >> entry : policyBindings .entrySet ()) {
62- System .out .printf ("Role: %s" , entry .getKey ());
63- System .out .printf (" Identities: %s\n " , entry .getValue ());
55+ System .out .printf ("Role: %s Identities: %s\n " , entry .getKey (), entry .getValue ());
6456 }
6557 // [END view_bucket_iam_members]
6658 return policy ;
@@ -69,7 +61,6 @@ public Policy listBucketIamMembers(String bucketName) {
6961 /**
7062 * Example of adding a member to the Bucket-level IAM
7163 */
72-
7364 public void addBucketIamMember (String bucketName , Role role , Identity identity ) {
7465 // [START add_bucket_iam_member]
7566 // Initialize a Cloud Storage client
@@ -79,19 +70,18 @@ public void addBucketIamMember(String bucketName, Role role, Identity identity)
7970 Policy policy = storage .getIamPolicy (bucketName );
8071
8172 // Add identity to Bucket-level IAM role
82- Policy updatedPolicy = policy .toBuilder ().addIdentity (role , identity ).build ();
73+ Policy updatedPolicy = storage .setIamPolicy (bucketName ,
74+ policy .toBuilder ().addIdentity (role , identity ).build ());
8375
84- // Update the bucket IAM Policy
85- storage .setIamPolicy (bucketName , updatedPolicy );
86-
87- System .out .printf ("Added %s with role %s to %s\n " , identity , role , bucketName );
76+ if (updatedPolicy .getBindings ().get (role ).contains (identity )) {
77+ System .out .printf ("Added %s with role %s to %s\n " , identity , role , bucketName );
78+ }
8879 // [END add_bucket_iam_member]
8980 }
9081
9182 /**
9283 * Example of removing a member from the Bucket-level IAM
9384 */
94-
9585 public void removeBucketIamMember (String bucketName , Role role , Identity identity ) {
9686 // [START remove_bucket_iam_member]
9787 // Initialize a Cloud Storage client
@@ -100,13 +90,14 @@ public void removeBucketIamMember(String bucketName, Role role, Identity identit
10090 // Get IAM Policy for a bucket
10191 Policy policy = storage .getIamPolicy (bucketName );
10292
103- // Remove identity from Bucket-level IAM role
104- Policy updatedPolicy = policy .toBuilder ().removeIdentity (role , identity ).build ();
93+ // Remove an identity from a Bucket-level IAM role
94+ Policy updatedPolicy = storage .setIamPolicy (bucketName ,
95+ policy .toBuilder ().removeIdentity (role , identity ).build ());
10596
106- // Update the bucket IAM Policy
107- storage . setIamPolicy ( bucketName , updatedPolicy );
108-
109- System . out . printf ( "Removed %s with role %s from %s \n " , identity , role , bucketName );
97+ if ( updatedPolicy . getBindings (). get ( role ) == null ||
98+ ! updatedPolicy . getBindings (). get ( role ). contains ( identity )) {
99+ System . out . printf ( "Removed %s with role %s from %s \n " , identity , role , bucketName );
100+ }
110101 // [END remove_bucket_iam_member]
111102 }
112103}
0 commit comments