Ejemplo n.º 1
0
	def test_if_user_is_added(self):
		ev = frappe.get_doc({
			'doctype': 'Event',
			'subject': 'test event for view logs',
			'starts_on': '2018-06-04 14:11:00',
			'event_type': 'Public'
		}).insert()

		frappe.set_user('*****@*****.**')

		from frappe.desk.form.load import getdoc

		# load the form
		getdoc('Event', ev.name)
		a = frappe.get_value(
			doctype="View Log", 
			filters={
				"reference_doctype": "Event",
				"reference_name": ev.name
			}, 
			fieldname=['viewed_by']
		)

		self.assertEqual('*****@*****.**', a)
		self.assertNotEqual('*****@*****.**', a)
Ejemplo n.º 2
0
	def test_if_user_is_added(self):
		ev = frappe.get_doc({
			'doctype': 'Event',
			'subject': 'test event for view logs',
			'starts_on': '2018-06-04 14:11:00',
			'event_type': 'Public'
		}).insert()

		frappe.set_user('*****@*****.**')

		from frappe.desk.form.load import getdoc

		# load the form
		getdoc('Event', ev.name)
		a = frappe.get_value(
			doctype="View Log", 
			filters={
				"reference_doctype": "Event",
				"reference_name": ev.name
			}, 
			fieldname=['viewed_by']
		)

		self.assertEqual('*****@*****.**', a)
		self.assertNotEqual('*****@*****.**', a)
Ejemplo n.º 3
0
	def test_if_owner_permission_on_getdoc(self):
		update("Blog Post", "Blogger", 0, "if_owner", 1)
		update("Blog Post", "Blogger", 0, "read", 1)
		update("Blog Post", "Blogger", 0, "write", 1)
		update("Blog Post", "Blogger", 0, "delete", 1)
		frappe.clear_cache(doctype="Blog Post")

		frappe.set_user("*****@*****.**")

		doc = frappe.get_doc(
			{
				"doctype": "Blog Post",
				"blog_category": "-test-blog-category",
				"blogger": "_Test Blogger 1",
				"title": "_Test Blog Post Title New",
				"content": "_Test Blog Post Content",
			}
		)

		doc.insert()

		getdoc("Blog Post", doc.name)
		doclist = [d.name for d in frappe.response.docs]
		self.assertTrue(doc.name in doclist)

		frappe.set_user("*****@*****.**")
		self.assertRaises(frappe.PermissionError, getdoc, "Blog Post", doc.name)
Ejemplo n.º 4
0
    def test_if_user_is_added(self):
        ev = frappe.get_doc({
            "doctype": "Event",
            "subject": "test event for view logs",
            "starts_on": "2018-06-04 14:11:00",
            "event_type": "Public",
        }).insert()

        frappe.set_user("*****@*****.**")

        from frappe.desk.form.load import getdoc

        # load the form
        getdoc("Event", ev.name)
        a = frappe.get_value(
            doctype="View Log",
            filters={
                "reference_doctype": "Event",
                "reference_name": ev.name
            },
            fieldname=["viewed_by"],
        )

        self.assertEqual("*****@*****.**", a)
        self.assertNotEqual("*****@*****.**", a)
Ejemplo n.º 5
0
 def test_user_onload_modules(self):
     from frappe.config import get_modules_from_all_apps
     from frappe.desk.form.load import getdoc
     frappe.response.docs = []
     getdoc("User", "Administrator")
     doc = frappe.response.docs[0]
     self.assertListEqual(
         doc.get("__onload").get('all_modules', []),
         [m.get("module_name") for m in get_modules_from_all_apps()])
Ejemplo n.º 6
0
    def test_fieldlevel_permissions_in_load(self):
        user = frappe.get_doc('User', '*****@*****.**')
        user.remove_roles('Website Manager')
        user.add_roles('Blogger')
        reset('Blog Post')

        frappe.db.set_value('DocField', {
            'fieldname': 'published',
            'parent': 'Blog Post'
        }, 'permlevel', 1)

        update('Blog Post', 'Website Manager', 0, 'permlevel', 1)

        frappe.set_user(user.name)

        # print frappe.as_json(get_valid_perms('Blog Post'))

        frappe.clear_cache(doctype='Blog Post')

        blog = frappe.db.get_value('Blog Post', {'title': '_Test Blog Post'})

        getdoc('Blog Post', blog)

        checked = False

        for doc in frappe.response.docs:
            if doc.name == blog:
                self.assertEqual(doc.published, None)
                checked = True

        self.assertTrue(checked, True)

        frappe.db.set_value('DocField', {
            'fieldname': 'published',
            'parent': 'Blog Post'
        }, 'permlevel', 0)

        reset('Blog Post')

        frappe.clear_cache(doctype='Blog Post')

        frappe.response.docs = []
        getdoc('Blog Post', blog)

        checked = False

        for doc in frappe.response.docs:
            if doc.name == blog:
                self.assertEqual(doc.published, 1)
                checked = True

        self.assertTrue(checked, True)

        frappe.set_user('Administrator')
    def test_fieldlevel_permissions_in_load(self):
        user = frappe.get_doc('User', '*****@*****.**')
        user.remove_roles('Website Manager')
        user.add_roles('Blogger')
        frappe.set_user(user.name)

        frappe.db.sql(
            'update tabDocField set permlevel=1 where fieldname="published" and parent="Blog Post"'
        )
        frappe.db.sql(
            'update tabDocPerm set permlevel=1 where role="Website Manager" and parent="Blog Post"'
        )
        frappe.clear_cache(doctype='Blog Post')

        blog = frappe.db.get_value('Blog Post', {'title': '_Test Blog Post'})

        getdoc('Blog Post', blog)

        checked = False

        for doc in frappe.response.docs:
            if doc.name == blog:
                self.assertEquals(doc.published, None)
                checked = True

        self.assertTrue(checked, True)

        frappe.db.sql(
            'update tabDocField set permlevel=0 where fieldname="published" and parent="Blog Post"'
        )
        frappe.db.sql(
            'update tabDocPerm set permlevel=0 where role="Website Manager" and parent="Blog Post"'
        )

        frappe.clear_cache(doctype='Blog Post')

        frappe.response.docs = []
        getdoc('Blog Post', blog)

        checked = False

        for doc in frappe.response.docs:
            if doc.name == blog:
                self.assertEquals(doc.published, 1)
                checked = True

        self.assertTrue(checked, True)

        frappe.set_user('Administrator')
Ejemplo n.º 8
0
	def test_fieldlevel_permissions_in_load(self):
		user = frappe.get_doc('User', '*****@*****.**')
		user.remove_roles('Website Manager')
		user.add_roles('Blogger')
		reset('Blog Post')

		frappe.db.sql('update tabDocField set permlevel=1 where fieldname="published" and parent="Blog Post"')

		update('Blog Post', 'Website Manager', 0, 'permlevel', 1)

		frappe.set_user(user.name)

		# print frappe.as_json(get_valid_perms('Blog Post'))

		frappe.clear_cache(doctype='Blog Post')

		blog = frappe.db.get_value('Blog Post', {'title': '_Test Blog Post'})

		getdoc('Blog Post', blog)

		checked = False

		for doc in frappe.response.docs:
			if doc.name == blog:
				self.assertEquals(doc.published, None)
				checked = True

		self.assertTrue(checked, True)

		frappe.db.sql('update tabDocField set permlevel=0 where fieldname="published" and parent="Blog Post"')
		reset('Blog Post')

		frappe.clear_cache(doctype='Blog Post')

		frappe.response.docs = []
		getdoc('Blog Post', blog)

		checked = False

		for doc in frappe.response.docs:
			if doc.name == blog:
				self.assertEquals(doc.published, 1)
				checked = True

		self.assertTrue(checked, True)

		frappe.set_user('Administrator')
Ejemplo n.º 9
0
    def assertFormLoad(self, doctype, docname):
        # reset previous response
        frappe.response = frappe._dict({"docs": []})
        frappe.response.docinfo = None

        try:
            getdoc(doctype, docname)
        except Exception as e:
            self.fail(f"Failed to load {doctype}-{docname}: {e}")

        self.assertTrue(
            frappe.response.docs,
            msg=f"expected document in reponse, found: {frappe.response.docs}")
        self.assertTrue(
            frappe.response.docinfo,
            msg=f"expected docinfo in reponse, found: {frappe.response.docinfo}"
        )
Ejemplo n.º 10
0
	def test_if_owner_permission_on_delete(self):
		update("Blog Post", "Blogger", 0, "if_owner", 1)
		update("Blog Post", "Blogger", 0, "read", 1)
		update("Blog Post", "Blogger", 0, "write", 1)
		update("Blog Post", "Blogger", 0, "delete", 1)

		# Remove delete perm
		update("Blog Post", "Website Manager", 0, "delete", 0)

		frappe.clear_cache(doctype="Blog Post")

		frappe.set_user("*****@*****.**")

		doc = frappe.get_doc(
			{
				"doctype": "Blog Post",
				"blog_category": "-test-blog-category",
				"blogger": "_Test Blogger 1",
				"title": "_Test Blog Post Title New 1",
				"content": "_Test Blog Post Content",
			}
		)

		doc.insert()

		getdoc("Blog Post", doc.name)
		doclist = [d.name for d in frappe.response.docs]
		self.assertTrue(doc.name in doclist)

		frappe.set_user("*****@*****.**")

		# Website Manager able to read
		getdoc("Blog Post", doc.name)
		doclist = [d.name for d in frappe.response.docs]
		self.assertTrue(doc.name in doclist)

		# Website Manager should not be able to delete
		self.assertRaises(frappe.PermissionError, frappe.delete_doc, "Blog Post", doc.name)

		frappe.set_user("*****@*****.**")
		frappe.delete_doc("Blog Post", "-test-blog-post-title-new-1")
		update("Blog Post", "Website Manager", 0, "delete", 1)
Ejemplo n.º 11
0
    def test_if_user_is_added(self):
        ev = frappe.get_doc({
            "doctype": "Event",
            "subject": "test event for seen",
            "starts_on": "2016-01-01 10:10:00",
            "event_type": "Public",
        }).insert()

        frappe.set_user("*****@*****.**")

        from frappe.desk.form.load import getdoc

        # load the form
        getdoc("Event", ev.name)

        # reload the event
        ev = frappe.get_doc("Event", ev.name)

        self.assertTrue("*****@*****.**" in json.loads(ev._seen))

        # test another user
        frappe.set_user("*****@*****.**")

        # load the form
        getdoc("Event", ev.name)

        # reload the event
        ev = frappe.get_doc("Event", ev.name)

        self.assertTrue("*****@*****.**" in json.loads(ev._seen))
        self.assertTrue("*****@*****.**" in json.loads(ev._seen))

        ev.save()
        ev = frappe.get_doc("Event", ev.name)

        self.assertFalse("*****@*****.**" in json.loads(ev._seen))
        self.assertTrue("*****@*****.**" in json.loads(ev._seen))
Ejemplo n.º 12
0
    def test_if_user_is_added(self):
        ev = frappe.get_doc({
            'doctype': 'Event',
            'subject': 'test event for seen',
            'starts_on': '2016-01-01 10:10:00',
            'event_type': 'Public'
        }).insert()

        frappe.set_user('*****@*****.**')

        from frappe.desk.form.load import getdoc

        # load the form
        getdoc('Event', ev.name)

        # reload the event
        ev = frappe.get_doc('Event', ev.name)

        self.assertTrue('*****@*****.**' in json.loads(ev._seen))

        # test another user
        frappe.set_user('*****@*****.**')

        # load the form
        getdoc('Event', ev.name)

        # reload the event
        ev = frappe.get_doc('Event', ev.name)

        self.assertTrue('*****@*****.**' in json.loads(ev._seen))
        self.assertTrue('*****@*****.**' in json.loads(ev._seen))

        ev.save()
        ev = frappe.get_doc('Event', ev.name)

        self.assertFalse('*****@*****.**' in json.loads(ev._seen))
        self.assertTrue('*****@*****.**' in json.loads(ev._seen))
Ejemplo n.º 13
0
	def test_if_user_is_added(self):
		ev = frappe.get_doc({
			'doctype': 'Event',
			'subject': 'test event for seen',
			'starts_on': '2016-01-01 10:10:00',
			'event_type': 'Public'
		}).insert()

		frappe.set_user('*****@*****.**')

		from frappe.desk.form.load import getdoc

		# load the form
		getdoc('Event', ev.name)

		# reload the event
		ev = frappe.get_doc('Event', ev.name)

		self.assertTrue('*****@*****.**' in json.loads(ev._seen))

		# test another user
		frappe.set_user('*****@*****.**')

		# load the form
		getdoc('Event', ev.name)

		# reload the event
		ev = frappe.get_doc('Event', ev.name)

		self.assertTrue('*****@*****.**' in json.loads(ev._seen))
		self.assertTrue('*****@*****.**' in json.loads(ev._seen))

		ev.save()

		self.assertFalse('*****@*****.**' in json.loads(ev._seen))
		self.assertTrue('*****@*****.**' in json.loads(ev._seen))
Ejemplo n.º 14
0
def get_blog(blog_name):
	frappe.response.docs = []
	getdoc('Blog Post', blog_name)
	doc = frappe.response.docs[0]
	return doc