افزودن و حذف همکاران یادداشت با مجوز

خالق یک یادداشت، صاحب آن یادداشت است. مالک می‌تواند با استفاده از مجوزهایی که به کاربران یا گروه‌ها اعطا شده است، مشارکت‌کنندگان دیگری را اضافه کند. مشارکت‌کنندگان به یادداشت دسترسی ویرایش می‌کنند. همکاران همچنین می توانند با استفاده از API مجوزهای خود را لغو کنند. این صفحه نحوه افزودن و حذف همکاران با استفاده از مجوزها را توضیح می دهد.

برای افزودن همکاران مجوز اضافه کنید

نمونه زیر نحوه استفاده از مجوزهای یک کاربر یا گروه برای افزودن همکاران به یادداشت را نشان می دهد:

استراحت

() notes.permissions.batchCreate را با یادداشت والد که مجوز و permission اختصاص داده است فراخوانی کنید. توجه داشته باشید که به عضو (کاربر، گروه) فقط می توان نقش WRITER را اختصاص داد.

جاوا

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

مجوزهای حذف همکاران را لغو کنید

نمونه زیر نحوه استفاده از مجوزها برای حذف همه همکاران از یک یادداشت را نشان می دهد:

استراحت

() notes.permissions.batchDelete را با یادداشت والد که مجوز و permission اختصاص داده است فراخوانی کنید.

جاوا

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