Maurits van der Schee 6 years ago
parent
commit
8f2da3cc30
2 changed files with 7 additions and 21 deletions
  1. 5
    5
      api.php
  2. 2
    16
      tests/Tests.php

+ 5
- 5
api.php View File

1136
 
1136
 
1137
 	protected function applyBeforeHandler(&$action,&$database,&$table,&$ids,&$callback,&$inputs) {
1137
 	protected function applyBeforeHandler(&$action,&$database,&$table,&$ids,&$callback,&$inputs) {
1138
 		if (is_callable($callback,true)) {
1138
 		if (is_callable($callback,true)) {
1139
-			$max = (is_array($ids)&&count($ids))?:count($inputs);
1139
+			$max = is_array($ids)?count($ids):count($inputs);
1140
 			$values = array('action'=>$action,'database'=>$database,'table'=>$table);
1140
 			$values = array('action'=>$action,'database'=>$database,'table'=>$table);
1141
 			for ($i=0;$i<$max;$i++) {
1141
 			for ($i=0;$i<$max;$i++) {
1142
 				$action = $values['action'];
1142
 				$action = $values['action'];
1907
 
1907
 
1908
 		// reflection
1908
 		// reflection
1909
 		list($tables,$collect,$select) = $this->findRelations($tables,$database,$auto_include);
1909
 		list($tables,$collect,$select) = $this->findRelations($tables,$database,$auto_include);
1910
-		$fields = $this->findFields($tables,$database);
1911
-		if ($tenancy_function) $this->applyTenancyFunction($tenancy_function,$action,$database,$fields,$filters);
1912
-		$fields = $this->limitFields($fields,$columns,$exclude,$select,$database);
1910
+		$allFields = $this->findFields($tables,$database);
1911
+		if ($tenancy_function) $this->applyTenancyFunction($tenancy_function,$action,$database,$allFields,$filters);
1912
+		$fields = $this->limitFields($allFields,$columns,$exclude,$select,$database);
1913
 		
1913
 		
1914
 		// permissions
1914
 		// permissions
1915
 		if ($table_authorizer) $this->applyTableAuthorizer($table_authorizer,$action,$database,$tables);
1915
 		if ($table_authorizer) $this->applyTableAuthorizer($table_authorizer,$action,$database,$tables);
1922
 		foreach ($inputs as $k=>$context) {
1922
 		foreach ($inputs as $k=>$context) {
1923
 			$input = $this->filterInputByFields($context,$fields[$tables[0]]);
1923
 			$input = $this->filterInputByFields($context,$fields[$tables[0]]);
1924
 
1924
 
1925
-			if ($tenancy_function) $this->applyInputTenancy($tenancy_function,$action,$database,$tables[0],$input,$fields[$tables[0]]);
1925
+			if ($tenancy_function) $this->applyInputTenancy($tenancy_function,$action,$database,$tables[0],$input,$allFields[$tables[0]]);
1926
 			if ($input_sanitizer) $this->applyInputSanitizer($input_sanitizer,$action,$database,$tables[0],$input,$fields[$tables[0]]);
1926
 			if ($input_sanitizer) $this->applyInputSanitizer($input_sanitizer,$action,$database,$tables[0],$input,$fields[$tables[0]]);
1927
 			if ($input_validator) $this->applyInputValidator($input_validator,$action,$database,$tables[0],$input,$fields[$tables[0]],$context);
1927
 			if ($input_validator) $this->applyInputValidator($input_validator,$action,$database,$tables[0],$input,$fields[$tables[0]],$context);
1928
 
1928
 

+ 2
- 16
tests/Tests.php View File

661
         $test->expect('{"posts":{"columns":["id","user_id","category_id","content"],"records":[]},"post_tags":{"relations":{"post_id":"posts.id"},"columns":["id","post_id","tag_id"],"records":[]},"tags":{"relations":{"id":"post_tags.tag_id"},"columns":["id","name"],"records":[]}}');
661
         $test->expect('{"posts":{"columns":["id","user_id","category_id","content"],"records":[]},"post_tags":{"relations":{"post_id":"posts.id"},"columns":["id","post_id","tag_id"],"records":[]},"tags":{"relations":{"id":"post_tags.tag_id"},"columns":["id","name"],"records":[]}}');
662
     }
662
     }
663
 
663
 
664
-    public function testListUsersExcludeTenancyId()
665
-    {
666
-        $test = new Api($this);
667
-        $test->get('/users?exclude=id');
668
-        $test->expect('{"users":{"columns":["username","location"],"records":[["user1","POINT(30 20)"]]}}');
669
-    }
670
-
671
-    public function testListUsersColumnsWithoutTenancyId()
672
-    {
673
-        $test = new Api($this);
674
-        $test->get('/users?columns=username,location');
675
-        $test->expect('{"users":{"columns":["username","location"],"records":[["user1","POINT(30 20)"]]}}');
676
-    }
677
-
678
     public function testTenancyCreateColumns()
664
     public function testTenancyCreateColumns()
679
     {
665
     {
680
         // creation should fail, since due to tenancy function it will try to create with id=1, which is a PK and is already taken
666
         // creation should fail, since due to tenancy function it will try to create with id=1, which is a PK and is already taken
696
         // should list only user with id=1 (exactly 1 record)
682
         // should list only user with id=1 (exactly 1 record)
697
         $test = new Api($this);
683
         $test = new Api($this);
698
         $test->get('/users?columns=username,location');
684
         $test->get('/users?columns=username,location');
699
-        $test->expect('{"users":{"columns":["username","location"],"records":[["user1",null]]}}');
685
+        $test->expect('{"users":{"columns":["username","location"],"records":[["user1","POINT(30 20)"]]}}');
700
     }
686
     }
701
 
687
 
702
     public function testTenancyListExclude()
688
     public function testTenancyListExclude()
704
         // should list only user with id=1 (exactly 1 record)
690
         // should list only user with id=1 (exactly 1 record)
705
         $test = new Api($this);
691
         $test = new Api($this);
706
         $test->get('/users?exclude=id');
692
         $test->get('/users?exclude=id');
707
-        $test->expect('{"users":{"columns":["username","location"],"records":[["user1",null]]}}');
693
+        $test->expect('{"users":{"columns":["username","location"],"records":[["user1","POINT(30 20)"]]}}');
708
     }
694
     }
709
 
695
 
710
     public function testTenancyReadColumns()
696
     public function testTenancyReadColumns()

Loading…
Cancel
Save