Skip to content

Commit 8f2da3c

Browse files
committed
fix for #367
1 parent e16469a commit 8f2da3c

File tree

2 files changed

+7
-21
lines changed

2 files changed

+7
-21
lines changed

api.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,7 +1136,7 @@ protected function parseGetParameterArray($get,$name,$characters) {
11361136

11371137
protected function applyBeforeHandler(&$action,&$database,&$table,&$ids,&$callback,&$inputs) {
11381138
if (is_callable($callback,true)) {
1139-
$max = (is_array($ids)&&count($ids))?:count($inputs);
1139+
$max = is_array($ids)?count($ids):count($inputs);
11401140
$values = array('action'=>$action,'database'=>$database,'table'=>$table);
11411141
for ($i=0;$i<$max;$i++) {
11421142
$action = $values['action'];
@@ -1907,9 +1907,9 @@ protected function getParameters($settings) {
19071907

19081908
// reflection
19091909
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);
19131913

19141914
// permissions
19151915
if ($table_authorizer) $this->applyTableAuthorizer($table_authorizer,$action,$database,$tables);
@@ -1922,7 +1922,7 @@ protected function getParameters($settings) {
19221922
foreach ($inputs as $k=>$context) {
19231923
$input = $this->filterInputByFields($context,$fields[$tables[0]]);
19241924

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]]);
19261926
if ($input_sanitizer) $this->applyInputSanitizer($input_sanitizer,$action,$database,$tables[0],$input,$fields[$tables[0]]);
19271927
if ($input_validator) $this->applyInputValidator($input_validator,$action,$database,$tables[0],$input,$fields[$tables[0]],$context);
19281928

tests/Tests.php

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -661,20 +661,6 @@ public function testListPostWithIncludeButNoRecords()
661661
$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":[]}}');
662662
}
663663

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-
678664
public function testTenancyCreateColumns()
679665
{
680666
// 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,15 +682,15 @@ public function testTenancyListColumns()
696682
// should list only user with id=1 (exactly 1 record)
697683
$test = new Api($this);
698684
$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)"]]}}');
700686
}
701687

702688
public function testTenancyListExclude()
703689
{
704690
// should list only user with id=1 (exactly 1 record)
705691
$test = new Api($this);
706692
$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)"]]}}');
708694
}
709695

710696
public function testTenancyReadColumns()

0 commit comments

Comments
 (0)