* Overwrite "if owner" restriction*
- Overwrite "if owner" restriction if user has other valid roles
(with access rights) without if_owner enabled for it in doc perm
eg:
If a doctype has 2 docperm for Role A and Role B and the docperm with
Role A has if owner enabled.
Suppose User 1 has Role A, then User 1 should see only docs
which was created by him.
Now if User 2 has Role A and Role B, User 2 should be able to see all the
records because Role B has unrestricted access on doctype.
------------------------------------------------------
Previously in case of User 2, the restriction(of if owner) from Role A
used to reflect and User 2 was only able to view only records made by
him.
This commit will overwrite the if_owner restriction in such case.
- Refactor get_role_permission method
* Add advanced control for user permission
- Add ability to skip user permission check for specific doctype
* Refactor "linked with" method
- Add option to skip linked with doctype which has
ignore_user_permission enabled against them.
* Clear "linked with doctype" cache on doctype changes
* [Minor] Fix formatting
* Fix error and bugs in linked_with method
* Format code
* Add fix to get allowed docs from user_permission
* Fix has_user_permission bug
* Add before migrate patch for user permission
* Fix typo