İzinleri olan not ortak çalışanları ekleme ve kaldırma

Notu oluşturan kişi, o notun sahibidir. Grup sahibi, tek tek kullanıcılara veya gruplara verilen izinleri kullanarak başka ortak çalışanlar ekleyebilir. Ortak çalışanlar not için düzenleme erişimi elde eder. Ortak çalışanların izinleri API kullanılarak iptal edilebilir. Bu sayfada, izinleri kullanarak ortak çalışan ekleme ve silme işlemleri açıklanmaktadır.

Ortak çalışan eklemek için izin ekleme

Aşağıdaki örnekte, bir nota ortak çalışan eklemek için bir kullanıcı veya grupta izinlerin nasıl kullanılacağı gösterilmektedir:

REST

İzin atanmış üst not ve permission ile birlikte notes.permissions.batchCreate() yöntemini çağırın. Üyeye (kullanıcı, grup) yalnızca WRITER rolünün atanabileceğini unutmayın.

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

Ortak çalışanları kaldırma izinlerini iptal et

Aşağıdaki örnekte, bir nottaki tüm ortak çalışanları kaldırmak için izinlerin nasıl kullanılacağı gösterilmektedir:

REST

İzin atanmış üst not ve permission ile notes.permissions.batchDelete() yöntemini çağırın.

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