Dodawanie i usuwanie współpracowników obsługujących notatki z uprawnieniami

Twórca notatki jest jej właścicielem. Właściciel może dodawać współpracowników, przyznając uprawnienia poszczególnym użytkownikom lub grupom. Współpracownicy uzyskują dostęp do edycji notatki. Możesz też cofnąć uprawnienia współpracownika za pomocą interfejsu API. Na tej stronie dowiesz się, jak dodawać i usuwać współpracowników za pomocą uprawnień.

Dodawanie uprawnień do dodawania współpracowników

Poniższy przykład pokazuje, jak używać uprawnień użytkownika lub grupy do dodawania współpracowników do notatki:

REST

Wywołaj funkcję notes.permissions.batchCreate() z przypisanym do notatki nadrzędnej uprawnieniem i wartością permission. Pamiętaj, że do elementu (użytkownika, grupy) można przypisać tylko rolę 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();
}

Cofanie uprawnień do usuwania współpracowników

Poniższy przykład pokazuje, jak za pomocą uprawnień usunąć wszystkich współpracowników z notatki:

REST

Wywołaj funkcję notes.permissions.batchDelete() z notatką nadrzędną, do której przypisano uprawnienia, i 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();
}