You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

38 lines
1.4 KiB

  1. from __future__ import unicode_literals
  2. import frappe
  3. import frappe.share
  4. def execute():
  5. frappe.reload_doc("core", "doctype", "docperm")
  6. frappe.reload_doc("core", "doctype", "docshare")
  7. frappe.reload_doc('email', 'doctype', 'email_account')
  8. # default share to all writes
  9. frappe.db.sql("""update tabDocPerm set `share`=1 where ifnull(`write`,0)=1 and ifnull(`permlevel`,0)=0""")
  10. # every user must have access to his / her own detail
  11. users = frappe.get_all("User", filters={"user_type": "System User"})
  12. usernames = [user.name for user in users]
  13. for user in usernames:
  14. frappe.share.add("User", user, user, write=1, share=1)
  15. # move event user to shared
  16. if frappe.db.exists("DocType", "Event User"):
  17. for event in frappe.get_all("Event User", fields=["parent", "person"]):
  18. if event.person in usernames:
  19. if not frappe.db.exists("Event", event.parent):
  20. frappe.db.sql("delete from `tabEvent User` where parent = %s",event.parent)
  21. else:
  22. frappe.share.add("Event", event.parent, event.person, write=1)
  23. frappe.delete_doc("DocType", "Event User")
  24. # move note user to shared
  25. if frappe.db.exists("DocType", "Note User"):
  26. for note in frappe.get_all("Note User", fields=["parent", "user", "permission"]):
  27. perm = {"read": 1} if note.permission=="Read" else {"write": 1}
  28. if note.user in usernames:
  29. frappe.share.add("Note", note.parent, note.user, **perm)
  30. frappe.delete_doc("DocType", "Note User")