* feat: Disable Sharing globally
- Checkbox in System Settings
- If disabled, avoid share UI render
- Share APIs return None (non-obstructing) if share APIs are invoked
* feat: Settings checkbox must toggle share permission globally
- Treat feature like a perm toggler. Essentially noone is allowed to explicity share anything
- Implicit sharing via `ignore_share_permissions` is allowed. Devs can decide where sharing should happen under the hood
- UI is made read only and not hidden. Users must see who doc is already shared with
- Make sure perm APIs used by share feature return false if sharing is disabled
- Rename checkbox to `Disable Document Sharing`
* test: (server side) Impact of disabling sharing on APIs
- Also, fix missed system setting rename in `assign_to`
* fix: Inform assigner if assignee lacks perms and sharing is disabled
- misc: readable conditions
* fix: throw instead of msgprint
* fix: Typo and appropriate message for `throw`
---------
Co-authored-by: Ankush Menat <ankush@frappe.io>
* fix: integration request should be cleared
THese are basically logs of requests and shouldn't stay forever.
* fix(UX): show retention policy message on sidebar
These doctypes were added to log settings later.
Some might want to keep them around for long, others might wanna get rid
of it to free up memory. Hardcoded defaults dont work for everyone hence
make it configurable.
`no-docs`
[skip ci]
Child doctypes have no concept of permission so when ref_doctype is
child doctype it will always fail. You should pick ref_doctype that's
typical parent used for perm checks.
There is `Notification` doctype but it doesn't work so well for small
one-off reminders. Imagine these scenarios:
1. Remind me to follow up on this lead in 5 days.
2. Remind me to revoke temporary access I am giving to this user.
For such scenarios, I am proposing a simple reminder system built into
framework. All it does is:
1. For any document you can set a reminder with time and message.
2. When time comes you'll get a system notification with message and
link to the document.
Permissions:
1. Users can only see their own set reminders.
* fix: ignore certain validations during migrate
These are recoverable after migration is completed, better to let update
go through first.
* fix: Let people set arbitrary Data field options
It will be treated as vanilla Data field by default but other apps can
chose to modify behaviour based on it.
AFAIK there is no real side effects of this.