def test_alt_parent_inherit_user(self):
     # Test inheritance of "user" scope definitions
     coll_id = "newcoll"
     newcoll = Collection.create(self.testsite, coll_id, collection_create_values(coll_id))
     user1   = AnnalistUser.create(self.testcoll, "user1", annalistuser_create_values(user_id="user1"))
     user2   = AnnalistUser.create(newcoll,       "user2", annalistuser_create_values(user_id="user2"))
     altparents = newcoll.set_alt_entities(self.testcoll)
     parentids  = [ p.get_id() for p in altparents ]
     self.assertEqual(parentids, ["newcoll", "testcoll", layout.SITEDATA_ID])
     self.assertFalse(AnnalistUser.exists(newcoll, "user1", altscope="user"))
     self.assertTrue(AnnalistUser.exists(newcoll, "_default_user_perms", altscope="user"))   # Access site data
     self.assertTrue(AnnalistUser.exists(newcoll, "user2", altscope="user"))
     testuser = AnnalistUser.load(newcoll, "user2", altscope="user")
     self.assertEquals(testuser["rdfs:label"], "Test User")
     return
 def test_get_local_user_uri_mismatch(self):
     c = self.testcoll
     usr = AnnalistUser.create(c, "user1",
                               annalistuser_create_values(user_id="user1"))
     ugp = c.get_user_permissions("user1", "mailto:[email protected]")
     self.assertIsNone(ugp)
     return
 def test_annalistuser_create_load(self):
     usr = AnnalistUser.create(self.testcoll, "user1",
                               annalistuser_create_values(user_id="user1"))
     uld = AnnalistUser.load(self.testcoll, "user1").get_values()
     ued = annalistuser_read_values(user_id="user1")
     self.assertKeysMatch(uld, ued)
     self.assertDictionaryMatch(uld, ued)
     return
 def test_get_local_user_missing_fields(self):
     # E.g. what happens if user record is created through default view?  Don't return value.
     d = annalistuser_create_values(user_id="user1")
     d.pop(ANNAL.CURIE.user_permission)
     usr = AnnalistUser.create(self.testcoll, "user1", d)
     ugp = self.testcoll.get_user_permissions("user1", "mailto:[email protected]")
     self.assertIsNone(ugp)
     return
 def test_annalistuser_create_load(self):
     usr = AnnalistUser.create(
         self.testcoll, "user1", annalistuser_create_values(user_id="user1")
         )
     uld = AnnalistUser.load(self.testcoll, "user1").get_values()
     ued = annalistuser_read_values(user_id="user1")
     self.assertKeysMatch(ued, uld)
     self.assertDictionaryMatch(ued, uld)
     return
Beispiel #6
0
 def test_get_user_uri_mismatch(self):
     s = self.testsite
     c = s.site_data_collection()
     # Create local permissions
     usr = AnnalistUser.create(c, "user1", annalistuser_create_values(user_id="user1"))
     # Test access to permissions defined locally in collection
     ugp = s.get_user_permissions("user1", "mailto:[email protected]")
     self.assertIsNone(ugp)
     return
 def test_get_local_user_permissions(self):
     # Create local permissions
     usr = AnnalistUser.create(self.testcoll, "user1", annalistuser_create_values(user_id="user1"))
     # Test access to permissions defined locally in collection
     ugp = self.testcoll.get_user_permissions("user1", "mailto:[email protected]")
     self.assertEqual(ugp[ANNAL.CURIE.id],                 "user1")
     self.assertEqual(ugp[ANNAL.CURIE.type_id],            "_user")
     self.assertEqual(ugp[RDFS.CURIE.label],               "Test User")
     self.assertEqual(ugp[RDFS.CURIE.comment],             "User user1: permissions for Test User in collection testcoll")
     self.assertEqual(ugp[ANNAL.CURIE.user_uri],           "mailto:[email protected]")
     self.assertEqual(ugp[ANNAL.CURIE.user_permission],    ["VIEW", "CREATE", "UPDATE", "DELETE", "CONFIG", "ADMIN"])
     return
 def test_annalistuser1_data(self):
     usr = AnnalistUser(self.testcoll, "user1", self.testsite)
     self.assertEqual(usr.get_id(), "user1")
     self.assertEqual(usr.get_type_id(), "_user")
     self.assertIn("/c/testcoll/_annalist_collection/users/user1/",
                   usr.get_url())
     self.assertEqual(TestBaseUri + "/c/testcoll/d/_user/user1/",
                      usr.get_view_url())
     usr.set_values(annalistuser_create_values(user_id="user1"))
     td = usr.get_values()
     self.assertEqual(set(td.keys()), set(annalistuser_value_keys()))
     v = annalistuser_values(user_id="user1")
     self.assertDictionaryMatch(td, v)
     return
Beispiel #9
0
 def test_annalistuser2_data(self):
     usr = AnnalistUser(self.testcoll, "user2")
     self.assertEqual(usr.get_id(), "user2")
     self.assertEqual(usr.get_type_id(), layout.USER_TYPEID)
     self.assertIn("/c/testcoll/d/%(user_dir)s/user2/" % self.layout,
                   usr.get_url())
     self.assertEqual(
         TestBaseUri + "/c/testcoll/d/%(user_typeid)s/user2/" % self.layout,
         usr.get_view_url())
     usr.set_values(annalistuser_create_values(user_id="user2"))
     ugv = usr.get_values()
     self.assertEqual(set(ugv.keys()), set(annalistuser_value_keys()))
     uev = annalistuser_values(user_id="user2")
     self.assertDictionaryMatch(ugv, uev)
     return
 def no_test_post_confirmed_remove_user(self):
     t = AnnalistUser.create(self.testcoll, "deleteuser", annalistuser_create_values("deleteuser"))
     self.assertTrue(AnnalistUser.exists(self.testcoll, "deleteuser"))
     # Submit positive confirmation
     u = TestHostUri + annalistuser_edit_url("delete", "testcoll")
     f = annalistuser_delete_confirm_form_data("deleteuser")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,     302)
     self.assertEqual(r.reason_phrase,   "FOUND")
     self.assertEqual(r.content,         "")
     self.assertMatch(r['location'],    
         "^"+TestHostUri+
         collection_edit_url("testcoll")+
         r"\?info_head=.*&info_message=.*deletetype.*testcoll.*$"
         )
     # Confirm deletion
     self.assertFalse(AnnalistUser.exists(self.testcoll, "deletetype"))
     return
 def test_annalistuser2_data(self):
     usr = AnnalistUser(self.testcoll, "user2")
     self.assertEqual(usr.get_id(), "user2")
     self.assertEqual(usr.get_type_id(), layout.USER_TYPEID)
     self.assertIn(
         "/c/testcoll/_annalist_collection/%(user_dir)s/user2/"%self.layout, 
         usr.get_url()
         )
     self.assertEqual(
         TestBaseUri + "/c/testcoll/d/%(user_typeid)s/user2/"%self.layout, 
         usr.get_view_url()
         )
     usr.set_values(annalistuser_create_values(user_id="user2"))
     ugv = usr.get_values()
     self.assertEqual(set(ugv.keys()), set(annalistuser_value_keys()))
     uev = annalistuser_values(user_id="user2")
     self.assertDictionaryMatch(ugv, uev)
     return
 def no_test_post_confirmed_remove_user(self):
     t = AnnalistUser.create(self.testcoll, "deleteuser",
                             annalistuser_create_values("deleteuser"))
     self.assertTrue(AnnalistUser.exists(self.testcoll, "deleteuser"))
     # Submit positive confirmation
     u = TestHostUri + annalistuser_edit_url("delete", "testcoll")
     f = annalistuser_delete_confirm_form_data("deleteuser")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content, "")
     self.assertMatch(
         r['location'],
         "^" + TestHostUri + collection_edit_url("testcoll") +
         r"\?info_head=.*&info_message=.*deletetype.*testcoll.*$")
     # Confirm deletion
     self.assertFalse(AnnalistUser.exists(self.testcoll, "deletetype"))
     return
 def setUp(self):
     init_annalist_test_site()
     self.testsite = Site(TestBaseUri, TestBaseDir)
     self.testcoll = Collection(self.testsite, "testcoll")
     # populate site with different classes of users: admin, config, create, update, delete, view
     self.user_admin = AnnalistUser.create(
         self.testcoll, "user_admin",
         annalistuser_create_values(
             coll_id="testcoll",
             user_id="user_admin",
             user_name="Admin User",
             user_uri="mailto:user_admin@%s" % TestHost,
             user_permissions=[
                 "VIEW", "CREATE", "UPDATE", "DELETE", "CONFIG", "ADMIN"
             ]))
     self.user_config = AnnalistUser.create(
         self.testcoll, "user_config",
         annalistuser_create_values(
             coll_id="testcoll",
             user_id="user_config",
             user_name="Admin User",
             user_uri="mailto:user_config@%s" % TestHost,
             user_permissions=[
                 "VIEW", "CREATE", "UPDATE", "DELETE", "CONFIG"
             ]))
     self.user_create = AnnalistUser.create(
         self.testcoll, "user_create",
         annalistuser_create_values(
             coll_id="testcoll",
             user_id="user_create",
             user_name="Admin User",
             user_uri="mailto:user_create@%s" % TestHost,
             user_permissions=["VIEW", "UPDATE", "CREATE"]))
     self.user_update = AnnalistUser.create(
         self.testcoll, "user_update",
         annalistuser_create_values(coll_id="testcoll",
                                    user_id="user_update",
                                    user_name="Admin User",
                                    user_uri="mailto:user_update@%s" %
                                    TestHost,
                                    user_permissions=["VIEW", "UPDATE"]))
     self.user_delete = AnnalistUser.create(
         self.testcoll, "user_delete",
         annalistuser_create_values(
             coll_id="testcoll",
             user_id="user_delete",
             user_name="Admin User",
             user_uri="mailto:user_delete@%s" % TestHost,
             user_permissions=["VIEW", "UPDATE", "DELETE"]))
     self.user_view = AnnalistUser.create(
         self.testcoll, "user_view",
         annalistuser_create_values(coll_id="testcoll",
                                    user_id="user_view",
                                    user_name="Admin User",
                                    user_uri="mailto:user_view@%s" %
                                    TestHost,
                                    user_permissions=["VIEW"]))
     self.user_site_admin = AnnalistUser.create(
         self.testsite,
         "user_site_admin",
         annalistuser_create_values(
             coll_id="testcoll",
             user_id="user_site_admin",
             user_name="Site_admin User",
             user_uri="mailto:user_site_admin@%s" % TestHost,
             user_permissions=[
                 "VIEW", "CREATE", "UPDATE", "DELETE", "CONFIG", "ADMIN"
             ]),
         use_altpath=True)
     self.user_site_create_coll = AnnalistUser.create(
         self.testsite,
         "user_site_create_coll",
         annalistuser_create_values(
             coll_id="testcoll",
             user_id="user_site_create_coll",
             user_name="Site_create User",
             user_uri="mailto:user_site_create_coll@%s" % TestHost,
             user_permissions=["VIEW", "CREATE_COLLECTION"]),
         use_altpath=True)
     self.user_site_delete_coll = AnnalistUser.create(
         self.testsite,
         "user_site_delete_coll",
         annalistuser_create_values(
             coll_id="testcoll",
             user_id="user_site_delete_coll_coll",
             user_name="Site_delete User",
             user_uri="mailto:user_site_delete_coll@%s" % TestHost,
             user_permissions=[
                 "VIEW", "CREATE_COLLECTION", "DELETE_COLLECTION"
             ]),
         use_altpath=True)
     self.user_site_view = AnnalistUser.create(
         self.testsite,
         "user_site_view",
         annalistuser_create_values(coll_id="testcoll",
                                    user_id="user_site_view",
                                    user_name="Site_view User",
                                    user_uri="mailto:user_site_view@%s" %
                                    TestHost,
                                    user_permissions=["VIEW"]),
         use_altpath=True)
     return
Beispiel #14
0
 def test_get_local_user_uri_mismatch(self):
     usr = AnnalistUser.create(self.testcoll, "user1", annalistuser_create_values(user_id="user1"))
     ugp = self.testcoll.get_user_permissions("user1", "mailto:[email protected]")
     self.assertIsNone(ugp)
     return