Add and remove note collaborators with permissions

The creator of a note is the owner of that note. The owner can add other collaborators using permissions granted to individual users or groups. Collaborators gain edit access to the note. Collaborators can also have their permissions revoked using the API. This page explains how to add and delete collaborators using permissions.

Add permissions to add collaborators

The following sample shows how to use permissions on a user or group to add collaborators to a note:

REST

Call notes.permissions.batchCreate() with the parent note assigned the permission and permission . Note that the member (user, group) can only be assigned the WRITER role.

Java

  /** 
 * Grants write access to a user and to a Google group for the given note. 
 * 
 * @param note The note whose permissions will be updated. 
 * @param userEmail Email address of the user that will be added to the permissions of the note. 
 * @param groupEmail Email address of the Google group that will be added to the permissions of 
 *     the note. 
 * @throws IOException 
 * @return The response of the create permissions request. 
 */ 
 private 
  
 BatchCreatePermissionsResponse 
  
 addPermissions 
 ( 
  
 Note 
  
 note 
 , 
  
 String 
  
 userEmail 
 , 
  
 String 
  
 groupEmail 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
 String 
  
 noteName 
  
 = 
  
 note 
 . 
 getName 
 (); 
  
 CreatePermissionRequest 
  
 userPermission 
  
 = 
  
 new 
  
 CreatePermissionRequest 
 () 
  
 . 
 setParent 
 ( 
 noteName 
 ) 
  
 . 
 setPermission 
 ( 
 new 
  
 Permission 
 (). 
 setEmail 
 ( 
 userEmail 
 ). 
 setRole 
 ( 
 "WRITER" 
 )); 
  
 CreatePermissionRequest 
  
 groupPermission 
  
 = 
  
 new 
  
 CreatePermissionRequest 
 () 
  
 . 
 setParent 
 ( 
 noteName 
 ) 
  
 . 
 setPermission 
 ( 
 new 
  
 Permission 
 (). 
 setEmail 
 ( 
 groupEmail 
 ). 
 setRole 
 ( 
 "WRITER" 
 )); 
  
 BatchCreatePermissionsRequest 
  
 batchCreatePermissionsRequest 
  
 = 
  
 new 
  
 BatchCreatePermissionsRequest 
 () 
  
 . 
 setRequests 
 ( 
 Arrays 
 . 
 asList 
 ( 
 userPermission 
 , 
  
 groupPermission 
 )); 
  
 return 
  
 keepService 
  
 . 
 notes 
 () 
  
 . 
 permissions 
 () 
  
 . 
 batchCreate 
 ( 
 noteName 
 , 
  
 batchCreatePermissionsRequest 
 ) 
  
 . 
 execute 
 (); 
 } 
 

Revoke permissions to remove collaborators

The following sample shows how to use permissions to remove all collaborators from a note:

REST

Call notes.permissions.batchDelete() with the parent note assigned the permission and permission .

Java

  /** 
 * Deletes all permissions of a given note excluding the owner. Owner of the note cannot be 
 * removed from a note's permissions. 
 * 
 * @param note The note whose permissions will be deleted. 
 * @throws IOException 
 */ 
 private 
  
 void 
  
 deletePermissions 
 ( 
 Note 
  
 note 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
 List<Permission> 
  
 notePermissions 
  
 = 
  
 keepService 
 . 
 notes 
 (). 
 get 
 ( 
 note 
 . 
 getName 
 ()). 
 execute 
 (). 
 getPermissions 
 (); 
  
 // List of users, groups or families that will be deleted from the permissions of the note. 
  
 List<String> 
  
 permissionsToDelete 
  
 = 
  
 new 
  
 ArrayList 
<> (); 
  
 for 
  
 ( 
 Permission 
  
 permission 
  
 : 
  
 notePermissions 
 ) 
  
 { 
  
 // Note owner cannot be removed from the permissions of the note. Trying to remove the note 
  
 // owner from the permissions will cause an exception. 
  
 if 
  
 ( 
 ! 
 permission 
 . 
 getRole 
 (). 
 equals 
 ( 
 "OWNER" 
 )) 
  
 { 
  
 permissionsToDelete 
 . 
 add 
 ( 
 permission 
 . 
 getName 
 ()); 
  
 } 
  
 } 
  
 keepService 
  
 . 
 notes 
 () 
  
 . 
 permissions 
 () 
  
 . 
 batchDelete 
 ( 
  
 note 
 . 
 getName 
 (), 
  
 new 
  
 BatchDeletePermissionsRequest 
 (). 
 setNames 
 ( 
 permissionsToDelete 
 )) 
  
 . 
 execute 
 (); 
 } 
 
Design a Mobile Site
View Site in Mobile | Classic
Share by: