server/test/unittest_security.py
changeset 321 247947250382
parent 0 b97547f5f1fa
child 389 aa180daa2bd4
equal deleted inserted replaced
320:e2647e72afe7 321:247947250382
   233         cnx = self.login('anon')
   233         cnx = self.login('anon')
   234         cu = cnx.cursor()
   234         cu = cnx.cursor()
   235         self.assertRaises(Unauthorized,
   235         self.assertRaises(Unauthorized,
   236                           cu.execute, 'Personne U where U nom "managers"')
   236                           cu.execute, 'Personne U where U nom "managers"')
   237 
   237 
   238     def test_read_erqlexpr(self):
   238     def test_read_erqlexpr_base(self):
   239         eid = self.execute("INSERT Affaire X: X sujet 'cool'")[0][0]
   239         eid = self.execute("INSERT Affaire X: X sujet 'cool'")[0][0]
   240         self.commit()
   240         self.commit()
   241         cnx = self.login('iaminusersgrouponly')
   241         cnx = self.login('iaminusersgrouponly')
   242         cu = cnx.cursor()
   242         cu = cnx.cursor()
   243         rset = cu.execute('Affaire X')
   243         rset = cu.execute('Affaire X')
   244         self.assertEquals(rset.rows, [])
   244         self.assertEquals(rset.rows, [])
   245         self.assertRaises(Unauthorized, cu.execute, 'Any X WHERE X eid %(x)s', {'x': eid}, 'x')
   245         self.assertRaises(Unauthorized, cu.execute, 'Any X WHERE X eid %(x)s', {'x': eid}, 'x')
   246         #  cache test
   246         # cache test
   247         self.assertRaises(Unauthorized, cu.execute, 'Any X WHERE X eid %(x)s', {'x': eid}, 'x')
   247         self.assertRaises(Unauthorized, cu.execute, 'Any X WHERE X eid %(x)s', {'x': eid}, 'x')
   248         aff2 = cu.execute("INSERT Affaire X: X sujet 'cool'")[0][0]
   248         aff2 = cu.execute("INSERT Affaire X: X sujet 'cool'")[0][0]
   249         soc1 = cu.execute("INSERT Societe X: X nom 'chouette'")[0][0]
   249         soc1 = cu.execute("INSERT Societe X: X nom 'chouette'")[0][0]
   250         cu.execute("SET A concerne S WHERE A is Affaire, S is Societe")
   250         cu.execute("SET A concerne S WHERE A is Affaire, S is Societe")
   251         cnx.commit()
   251         cnx.commit()
   252         rset = cu.execute('Any X WHERE X eid %(x)s', {'x': aff2}, 'x')
   252         rset = cu.execute('Any X WHERE X eid %(x)s', {'x': aff2}, 'x')
   253         self.assertEquals(rset.rows, [[aff2]])
   253         self.assertEquals(rset.rows, [[aff2]])
       
   254         # more cache test w/ NOT eid
       
   255         rset = cu.execute('Affaire X WHERE NOT X eid %(x)s', {'x': eid}, 'x')
       
   256         self.assertEquals(rset.rows, [])
       
   257         rset = cu.execute('Affaire X WHERE NOT X eid %(x)s', {'x': aff2}, 'x')
       
   258         self.assertEquals(rset.rows, [])
   254         
   259         
   255     def test_read_erqlexpr_has_text1(self):
   260     def test_read_erqlexpr_has_text1(self):
   256         aff1 = self.execute("INSERT Affaire X: X sujet 'cool'")[0][0]
   261         aff1 = self.execute("INSERT Affaire X: X sujet 'cool'")[0][0]
   257         card1 = self.execute("INSERT Card X: X title 'cool'")[0][0]
   262         card1 = self.execute("INSERT Card X: X title 'cool'")[0][0]
   258         self.execute('SET X owned_by U WHERE X eid %(x)s, U login "iaminusersgrouponly"', {'x': card1}, 'x')
   263         self.execute('SET X owned_by U WHERE X eid %(x)s, U login "iaminusersgrouponly"', {'x': card1}, 'x')
   298         self.commit()
   303         self.commit()
   299         cnx = self.login('iaminusersgrouponly')
   304         cnx = self.login('iaminusersgrouponly')
   300         cu = cnx.cursor()
   305         cu = cnx.cursor()
   301         rset = cu.execute('Any COUNT(X) WHERE X is Affaire')
   306         rset = cu.execute('Any COUNT(X) WHERE X is Affaire')
   302         self.assertEquals(rset.rows, [[0]])        
   307         self.assertEquals(rset.rows, [[0]])        
   303         cu = cnx.cursor()
       
   304         aff2 = cu.execute("INSERT Affaire X: X sujet 'cool'")[0][0]
   308         aff2 = cu.execute("INSERT Affaire X: X sujet 'cool'")[0][0]
   305         soc1 = cu.execute("INSERT Societe X: X nom 'chouette'")[0][0]
   309         soc1 = cu.execute("INSERT Societe X: X nom 'chouette'")[0][0]
   306         cu.execute("SET A concerne S WHERE A is Affaire, S is Societe")
   310         cu.execute("SET A concerne S WHERE A is Affaire, S is Societe")
   307         cnx.commit()
   311         cnx.commit()
   308         rset = cu.execute('Any COUNT(X) WHERE X is Affaire')
   312         rset = cu.execute('Any COUNT(X) WHERE X is Affaire')