Remove permissions from a user or domain. :param value: User or domain to remove permissions from :type value: str :param role: (optional) Permission to remove. Defaults to all permissions. :type role: str Example:: # Remove
(self, value: str, role: str = "any")
| 548 | return self.client.list_permissions(self.id) |
| 549 | |
| 550 | def remove_permissions(self, value: str, role: str = "any") -> List[str]: |
| 551 | """Remove permissions from a user or domain. |
| 552 | |
| 553 | :param value: User or domain to remove permissions from |
| 554 | :type value: str |
| 555 | :param role: (optional) Permission to remove. Defaults to all |
| 556 | permissions. |
| 557 | :type role: str |
| 558 | |
| 559 | Example:: |
| 560 | |
| 561 | # Remove Otto's write permission for this spreadsheet |
| 562 | sh.remove_permissions('otto@example.com', role='writer') |
| 563 | |
| 564 | # Remove all Otto's permissions for this spreadsheet |
| 565 | sh.remove_permissions('otto@example.com') |
| 566 | """ |
| 567 | permission_list = self.client.list_permissions(self.id) |
| 568 | |
| 569 | key = "emailAddress" if "@" in value else "domain" |
| 570 | |
| 571 | filtered_id_list: List[str] = [ |
| 572 | str(p["id"]) |
| 573 | for p in permission_list |
| 574 | if p.get(key) == value and (p["role"] == role or role == "any") |
| 575 | ] |
| 576 | |
| 577 | for permission_id in filtered_id_list: |
| 578 | self.client.remove_permission(self.id, permission_id) |
| 579 | |
| 580 | return filtered_id_list |
| 581 | |
| 582 | def transfer_ownership(self, permission_id: str) -> Response: |
| 583 | """Transfer the ownership of this file to a new user. |
nothing calls this directly
no test coverage detected