Mitbearbeiter mit Berechtigungen für Notizen hinzufügen und entfernen

Der Ersteller einer Notiz ist deren Eigentümer. Der Inhaber kann mithilfe von Berechtigungen, die einzelnen Nutzern oder Gruppen erteilt wurden, weitere Mitbearbeiter hinzufügen. Mitbearbeiter erhalten Bearbeitungszugriff auf die Notiz. Die Berechtigungen von Mitbearbeitern können auch über die API widerrufen werden. Auf dieser Seite wird erläutert, wie Sie Mitbearbeiter mithilfe von Berechtigungen hinzufügen und löschen.

Berechtigungen zum Hinzufügen von Mitbearbeitern hinzufügen

Das folgende Beispiel zeigt, wie Sie Berechtigungen für einen Nutzer oder eine Gruppe verwenden, um einer Notiz Mitbearbeiter hinzuzufügen:

REST

Rufen Sie notes.permissions.batchCreate() mit der übergeordneten Notiz auf, der die Berechtigung zugewiesen wurde, und mit permission. Beachten Sie, dass dem Mitglied (Nutzer, Gruppe) nur die Rolle WRITER zugewiesen werden kann.

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

Berechtigungen zum Entfernen von Mitbearbeitern aufheben

Im folgenden Beispiel wird gezeigt, wie Sie mithilfe von Berechtigungen alle Mitbearbeiter aus einer Notiz entfernen:

REST

Rufen Sie notes.permissions.batchDelete() mit der übergeordneten Notiz auf, der die Berechtigung zugewiesen wurde, und mit 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();
}