示例#1
0
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()
示例#2
0
文件: utils.py 项目: yered1/frappe
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")
示例#7
0
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")
示例#10
0
    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)
示例#12
0
def reset(doctype):
	frappe.only_for("System Manager")
	reset_perms(doctype)
	clear_doctype_cache(doctype)
示例#13
0
def reset(doctype):
    frappe.only_for(("System Manager", "Local Admin"))
    reset_perms(doctype)
    clear_permissions_cache(doctype)