def reset_perms(): from frappe.permissions import reset_perms frappe.connect() for d in frappe.db.sql_list("""select name from `tabDocType` where ifnull(istable, 0)=0 and ifnull(custom, 0)=0"""): frappe.clear_cache(doctype=d) reset_perms(d) frappe.destroy()
def reset_perms(context): "Reset permissions for all doctypes" from frappe.permissions import reset_perms for site in context.sites: try: frappe.init(site=site) frappe.connect() for d in frappe.db.sql_list("""select name from `tabDocType` where istable=0 and custom=0"""): frappe.clear_cache(doctype=d) reset_perms(d) finally: frappe.destroy()
def reset_perms(context): "Reset permissions for all doctypes" from frappe.permissions import reset_perms for site in context.sites: try: frappe.init(site=site) frappe.connect() for d in frappe.db.sql_list("""select name from `tabDocType` where ifnull(istable, 0)=0 and ifnull(custom, 0)=0"""): frappe.clear_cache(doctype=d) reset_perms(d) finally: frappe.destroy()
def execute(): for doctype in ("About Us Settings", "Accounts Settings", "Activity Type", "Blog Category", "Blog Settings", "Blogger", "Branch", "Brand", "Buying Settings", "Communication", "Company", "Contact Us Settings", "Country", "Currency", "Currency Exchange", "Deduction Type", "Department", "Designation", "Earning Type", "Event", "Feed", "File", "Fiscal Year", "HR Settings", "Industry Type", "Leave Type", "Letter Head", "Mode of Payment", "Module Def", "Naming Series", "POS Setting", "Print Heading", "Report", "Role", "Selling Settings", "Stock Settings", "Supplier Type", "UOM"): try: reset_perms(doctype) except: print("Error resetting perms for", doctype) raise
def execute(): for doctype in ("About Us Settings", "Accounts Settings", "Activity Type", "Blog Category", "Blog Settings", "Blogger", "Branch", "Brand", "Buying Settings", "Communication", "Company", "Contact Us Settings", "Country", "Currency", "Currency Exchange", "Deduction Type", "Department", "Designation", "Earning Type", "Event", "Feed", "File", "Fiscal Year", "HR Settings", "Industry Type", "Leave Type", "Letter Head", "Mode of Payment", "Module Def", "Naming Series", "POS Setting", "Print Heading", "Report", "Role", "Selling Settings", "Stock Settings", "Supplier Type", "UOM"): try: reset_perms(doctype) except: print "Error resetting perms for", doctype raise
def execute(): frappe.reload_doctype("DocType") frappe.reload_doctype("Communication") reset_perms("Communication") migrate_comments() frappe.delete_doc("DocType", "Comment") # frappe.db.sql_ddl("drop table `tabComment`") migrate_feed() frappe.delete_doc("DocType", "Feed") # frappe.db.sql_ddl("drop table `tabFeed`") update_timeline_doc_for("Blogger")
def execute(): frappe.reload_doctype("Communication") # set status = "Linked" frappe.db.sql("""update `tabCommunication` set status='Linked' where ifnull(reference_doctype, '')!='' and ifnull(reference_name, '')!=''""") frappe.db.sql("""update `tabCommunication` set status='Closed' where status='Archived'""") # reset permissions if owner of all DocPerms is Administrator if not frappe.db.sql("""select name from `tabDocPerm` where parent='Communication' and ifnull(owner, '')!='Administrator'"""): reset_perms("Communication")
def execute(): frappe.reload_doctype("Communication") # set status = "Linked" frappe.db.sql("""update `tabCommunication` set status='Linked' where ifnull(reference_doctype, '')!='' and ifnull(reference_name, '')!=''""" ) frappe.db.sql("""update `tabCommunication` set status='Closed' where status='Archived'""") # reset permissions if owner of all DocPerms is Administrator if not frappe.db.sql("""select name from `tabDocPerm` where parent='Communication' and ifnull(owner, '')!='Administrator'"""): reset_perms("Communication")
def test_doc_read_access(self): #owner and assigned_by is testperm todo1 = create_new_todo('Test1', '*****@*****.**') test_user = frappe.get_doc('User', '*****@*****.**') #owner is testperm, but assigned_by is test4 todo2 = create_new_todo('Test2', '*****@*****.**') frappe.set_user('*****@*****.**') #owner and assigned_by is test4 todo3 = create_new_todo('Test3', '*****@*****.**') # user without any role to read or write todo document self.assertFalse(todo1.has_permission("read")) self.assertFalse(todo1.has_permission("write")) # user without any role but he/she is assigned_by of that todo document self.assertTrue(todo2.has_permission("read")) self.assertTrue(todo2.has_permission("write")) # user is the owner and assigned_by of the todo document self.assertTrue(todo3.has_permission("read")) self.assertTrue(todo3.has_permission("write")) frappe.set_user('Administrator') test_user.add_roles('Blogger') add_permission('ToDo', 'Blogger') frappe.set_user('*****@*****.**') # user with only read access to todo document, not an owner or assigned_by self.assertTrue(todo1.has_permission("read")) self.assertFalse(todo1.has_permission("write")) frappe.set_user('Administrator') test_user.remove_roles('Blogger') reset_perms('ToDo') clear_permissions_cache('ToDo') frappe.db.rollback()
def reset(doctype): frappe.only_for("System Manager") reset_perms(doctype) clear_permissions_cache(doctype)
def reset(doctype): frappe.only_for("System Manager") reset_perms(doctype) clear_doctype_cache(doctype)
def reset(doctype): frappe.only_for(("System Manager", "Local Admin")) reset_perms(doctype) clear_permissions_cache(doctype)