コード例 #1
0
ファイル: test_user_permission.py プロジェクト: yered1/frappe
    def test_for_apply_to_all_on_update_from_applicable(self):
        ''' Update User Permission from some to all applicable Doctypes'''
        user = create_user('*****@*****.**')
        param = get_params(
            user,
            'User',
            user.name,
        )

        # create User permissions that with applicable
        is_created = add_user_permissions(
            get_params(user,
                       'User',
                       user.name,
                       applicable=["Chat Room", "Chat Message"]))

        self.assertEquals(is_created, 1)

        is_created = add_user_permissions(param)
        is_created_apply_to_all = frappe.db.exists("User Permission",
                                                   get_exists_param(user))
        removed_applicable_first = frappe.db.exists(
            "User Permission", get_exists_param(user, applicable="Chat Room"))
        removed_applicable_second = frappe.db.exists(
            "User Permission", get_exists_param(user,
                                                applicable="Chat Message"))

        # To check that a User permission with apply_to_all exists
        self.assertIsNotNone(is_created_apply_to_all)

        # Check that all User Permission with applicable is removed
        self.assertIsNone(removed_applicable_first)
        self.assertIsNone(removed_applicable_second)
        self.assertEquals(is_created, 1)
コード例 #2
0
	def test_user_perm_on_new_doc_with_field_default(self):
		"""Test User Perm impact on frappe.new_doc. with *field* default value"""
		frappe.set_user("Administrator")
		user = create_user("*****@*****.**", "Blogger")

		# make a doctype "Doc A" with 'doctype' link field and default value ToDo
		if not frappe.db.exists("DocType", "Doc A"):
			doc = new_doctype(
				"Doc A",
				fields=[
					{
						"label": "DocType",
						"fieldname": "doc",
						"fieldtype": "Link",
						"options": "DocType",
						"default": "ToDo",
					}
				],
				unique=0,
			)
			doc.insert()

		# make User Perm on DocType 'ToDo' in Assignment Rule (unrelated doctype)
		add_user_permissions(get_params(user, "DocType", "ToDo", applicable=["Assignment Rule"]))
		frappe.set_user("*****@*****.**")

		new_doc = frappe.new_doc("Doc A")

		# User perm is created on ToDo but for doctype Assignment Rule only
		# it should not have impact on Doc A
		self.assertEquals(new_doc.doc, "ToDo")

		frappe.set_user("Administrator")
		remove_applicable(["Assignment Rule"], "*****@*****.**", "DocType", "ToDo")
コード例 #3
0
ファイル: test_user_permission.py プロジェクト: yered1/frappe
    def test_for_applicable_on_update_from_apply_to_all(self):
        ''' Update User Permission from all to some applicable Doctypes'''
        user = create_user('*****@*****.**')
        param = get_params(user,
                           'User',
                           user.name,
                           applicable=["Chat Room", "Chat Message"])

        # Initially create User Permission document with apply_to_all checked
        is_created = add_user_permissions(get_params(user, 'User', user.name))

        self.assertEquals(is_created, 1)

        is_created = add_user_permissions(param)
        frappe.db.commit()

        removed_apply_to_all = frappe.db.exists("User Permission",
                                                get_exists_param(user))
        is_created_applicable_first = frappe.db.exists(
            "User Permission", get_exists_param(user, applicable="Chat Room"))
        is_created_applicable_second = frappe.db.exists(
            "User Permission", get_exists_param(user,
                                                applicable="Chat Message"))

        # Check that apply_to_all is removed
        self.assertIsNone(removed_apply_to_all)

        # Check that User Permissions for applicable is created
        self.assertIsNotNone(is_created_applicable_first)
        self.assertIsNotNone(is_created_applicable_second)
        self.assertEquals(is_created, 1)
コード例 #4
0
ファイル: test_user_permission.py プロジェクト: yered1/frappe
 def test_default_user_permission_validation(self):
     user = create_user('*****@*****.**')
     param = get_params(user, 'User', user.name, is_default=1)
     add_user_permissions(param)
     #create a duplicate entry with default
     perm_user = create_user('*****@*****.**')
     param = get_params(user, 'User', perm_user.name, is_default=1)
     self.assertRaises(frappe.ValidationError, add_user_permissions, param)
コード例 #5
0
	def test_default_user_permission_corectness(self):
		user = create_user("*****@*****.**")
		param = get_params(user, "User", user.name, is_default=1, hide_descendants=1)
		add_user_permissions(param)
		# create a duplicate entry with default
		perm_user = create_user("*****@*****.**")
		test_blog = make_test_blog()
		param = get_params(perm_user, "Blog Post", test_blog.name, is_default=1, hide_descendants=1)
		add_user_permissions(param)
		frappe.db.delete("User Permission", filters={"for_value": test_blog.name})
		frappe.delete_doc("Blog Post", test_blog.name)
コード例 #6
0
ファイル: test_user_permission.py プロジェクト: yered1/frappe
    def test_for_apply_to_all_on_update_from_apply_all(self):
        user = create_user('*****@*****.**')
        param = get_params(user, 'User', user.name)

        # Initially create User Permission document with apply_to_all checked
        is_created = add_user_permissions(param)

        self.assertEquals(is_created, 1)
        is_created = add_user_permissions(param)

        # User Permission should not be changed
        self.assertEquals(is_created, 0)
コード例 #7
0
    def test_user_perm_for_nested_doctype(self):
        """Test if descendants' visibility is controlled for a nested DocType."""
        from frappe.core.doctype.doctype.test_doctype import new_doctype

        user = create_user("*****@*****.**", "Blogger")
        if not frappe.db.exists("DocType", "Person"):
            doc = new_doctype("Person",
                              fields=[{
                                  "label": "Person Name",
                                  "fieldname": "person_name",
                                  "fieldtype": "Data"
                              }],
                              unique=0)
            doc.is_tree = 1
            doc.insert()

        parent_record = frappe.get_doc({
            "doctype": "Person",
            "person_name": "Parent",
            "is_group": 1
        }).insert()

        child_record = frappe.get_doc({
            "doctype": "Person",
            "person_name": "Child",
            "is_group": 0,
            "parent_person": parent_record.name
        }).insert()

        add_user_permissions(get_params(user, "Person", parent_record.name))

        # check if adding perm on a group record, makes child record visible
        self.assertTrue(
            has_user_permission(frappe.get_doc("Person", parent_record.name),
                                user.name))
        self.assertTrue(
            has_user_permission(frappe.get_doc("Person", child_record.name),
                                user.name))

        frappe.db.set_value("User Permission", {
            "allow": "Person",
            "for_value": parent_record.name
        }, "hide_descendants", 1)
        frappe.cache().delete_value("user_permissions")

        # check if adding perm on a group record with hide_descendants enabled,
        # hides child records
        self.assertTrue(
            has_user_permission(frappe.get_doc("Person", parent_record.name),
                                user.name))
        self.assertFalse(
            has_user_permission(frappe.get_doc("Person", child_record.name),
                                user.name))
コード例 #8
0
ファイル: test_user_permission.py プロジェクト: moh5q/erpnext
	def test_for_apply_to_all_on_update_from_apply_all(self):
		user = get_user()
		param = get_params(user, apply_to_all=1)

		# Initially create User Permission document with apply_to_all checked
		is_created = add_user_permissions(param)

		self.assertEquals(is_created, 1)
		is_created = add_user_permissions(param)

		# User Permission should not be changed
		self.assertEquals(is_created, 0)
コード例 #9
0
	def test_user_perm_on_new_doc_with_user_default(self):
		"""Test User Perm impact on frappe.new_doc. with *user* default value"""
		from frappe.core.doctype.session_default_settings.session_default_settings import (
			clear_session_defaults,
			set_session_default_values,
		)

		frappe.set_user("Administrator")
		user = create_user("*****@*****.**", "Blogger")

		# make a doctype "Doc A" with 'doctype' link field
		if not frappe.db.exists("DocType", "Doc A"):
			doc = new_doctype(
				"Doc A",
				fields=[
					{
						"label": "DocType",
						"fieldname": "doc",
						"fieldtype": "Link",
						"options": "DocType",
					}
				],
				unique=0,
			)
			doc.insert()

		# create a 'DocType' session default field
		if not frappe.db.exists("Session Default", {"ref_doctype": "DocType"}):
			settings = frappe.get_single("Session Default Settings")
			settings.append("session_defaults", {"ref_doctype": "DocType"})
			settings.save()

		# make User Perm on DocType 'ToDo' in Assignment Rule (unrelated doctype)
		add_user_permissions(get_params(user, "DocType", "ToDo", applicable=["Assignment Rule"]))

		# User default Doctype value is ToDo via Session Defaults
		frappe.set_user("*****@*****.**")
		set_session_default_values({"doc": "ToDo"})

		new_doc = frappe.new_doc("Doc A")

		# User perm is created on ToDo but for doctype Assignment Rule only
		# it should not have impact on Doc A
		self.assertEquals(new_doc.doc, "ToDo")

		frappe.set_user("Administrator")
		clear_session_defaults()
		remove_applicable(["Assignment Rule"], "*****@*****.**", "DocType", "ToDo")
コード例 #10
0
	def test_default_user_permission(self):
		frappe.set_user("Administrator")
		user = create_user("*****@*****.**", "Website Manager")
		for category in ["general", "public"]:
			if not frappe.db.exists("Blog Category", category):
				frappe.get_doc({"doctype": "Blog Category", "title": category}).insert()

		param = get_params(user, "Blog Category", "general", is_default=1)
		add_user_permissions(param)

		param = get_params(user, "Blog Category", "public")
		add_user_permissions(param)

		frappe.set_user("*****@*****.**")
		doc = frappe.new_doc("Blog Post")

		self.assertEquals(doc.blog_category, "general")
		frappe.set_user("Administrator")
コード例 #11
0
	def test_default_user_permission(self):
		frappe.set_user('Administrator')
		user = create_user('*****@*****.**', 'Website Manager')
		for category in ['general', 'public']:
			if not frappe.db.exists('Blog Category', category):
				frappe.get_doc({'doctype': 'Blog Category', 'title': category}).insert()

		param = get_params(user, 'Blog Category', 'general', is_default=1)
		add_user_permissions(param)

		param = get_params(user, 'Blog Category', 'public')
		add_user_permissions(param)

		frappe.set_user('*****@*****.**')
		doc = frappe.new_doc("Blog Post")

		self.assertEqual(doc.blog_category, 'general')
		frappe.set_user('Administrator')
コード例 #12
0
	def test_for_apply_to_all_on_update_from_applicable(self):
		''' Update User Permission from some to all applicable Doctypes'''
		user = get_user()
		param = get_params(user, apply = 1)
		created = add_user_permissions(param)
		created_apply_to_all = frappe.db.exists("User Permission", get_exists_param(user))
		removed_applicable_first = frappe.db.exists("User Permission", get_exists_param(user, applicable = "Chat Room"))
		removed_applicable_second = frappe.db.exists("User Permission", get_exists_param(user, applicable = "Chat Message"))


		self.assertIsNotNone(created_apply_to_all)
		self.assertIsNone(removed_applicable_first)
		self.assertIsNone(removed_applicable_second)
		self.assertEquals(created, 1)
コード例 #13
0
ファイル: test_user_permission.py プロジェクト: yered1/frappe
 def test_apply_to_all(self):
     ''' Create User permission for User having access to all applicable Doctypes'''
     user = create_user('*****@*****.**')
     param = get_params(user, 'User', user.name)
     is_created = add_user_permissions(param)
     self.assertEquals(is_created, 1)
コード例 #14
0
ファイル: test_user_permission.py プロジェクト: moh5q/erpnext
	def test_apply_to_all(self):
		''' Create User permission for User having access to all applicable Doctypes'''
		user = get_user()
		param = get_params(user, apply_to_all = 1)
		is_created = add_user_permissions(param)
		self.assertEquals(is_created, 1)