Aggiungere e rimuovere collaboratori con autorizzazioni per le note

L'autore di una nota è il proprietario. Il proprietario può aggiungere collaboratori utilizzando le autorizzazioni concesse a singoli utenti o gruppi. I collaboratori ottengono l'accesso in modifica alla nota. Puoi anche revocare le autorizzazioni dei collaboratori utilizzando l'API. Questa pagina mostra come aggiungere ed eliminare collaboratori utilizzando le autorizzazioni.

Aggiungere autorizzazioni per aggiungere collaboratori

Il seguente esempio mostra come utilizzare le autorizzazioni su un utente o un gruppo per aggiungere collaboratori a una nota:

REST

Chiama notes.permissions.batchCreate() con la nota principale a cui è assegnata l'autorizzazione e permission. Tieni presente che al membro (utente, gruppo) può essere assegnato solo il ruolo WRITER.

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 Groups 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();
}

Revocare le autorizzazioni per rimuovere i collaboratori

L'esempio seguente mostra come utilizzare le autorizzazioni per rimuovere tutti i collaboratori da una nota:

REST

Chiama notes.permissions.batchDelete() con la nota principale a cui è assegnata l'autorizzazione e permission.

Java

/**
 * Deletes all permissions of a given note excluding the owner. The owner
 * can't 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) {
    // The note owner can't be removed from the permissions. Trying to
    // remove the owner causes an exception.
    if (!permission.getRole().equals("OWNER")) {
      permissionsToDelete.add(permission.getName());
    }
  }

  keepService
      .notes()
      .permissions()
      .batchDelete(
          note.getName(),
          new BatchDeletePermissionsRequest().setNames(permissionsToDelete))
      .execute();
}