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

Osoba, która utworzyła notatkę, jest jej właścicielem. Właściciel może dodać inne współpracowników za pomocą uprawnień przyznanych poszczególnym użytkownikom lub grupom. Współpracownicy uzyskają uprawnienia do edycji notatki. Współpracownicy mogą też mieć swoje odwołanych uprawnień przy użyciu interfejsu API. Na tej stronie dowiesz się, jak dodawać i usuwać konta współpracowników za pomocą uprawnień.

Dodawanie uprawnień w celu dodawania współpracowników

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

REST

Zadzwoń do nas notes.permissions.batchCreate() z notatką nadrzędną przypisaną do tego uprawnienia oraz permission. Pamiętaj, że parametr członka (użytkownika lub 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 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();
}

Anulowanie uprawnień do usuwania współpracowników

Poniższy przykład pokazuje, jak używać uprawnień do usuwania wszystkich współpracowników. z notatki:

REST

Zadzwoń do nas notes.permissions.batchDelete() z notatką nadrzędną przypisaną do tego uprawnienia oraz 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();
}