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)
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)
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)
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()])
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')
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')
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}" )
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)
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))
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))
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))
def get_blog(blog_name): frappe.response.docs = [] getdoc('Blog Post', blog_name) doc = frappe.response.docs[0] return doc