33
44use Tqdev \PhpCrudApi \Column \Reflection \ReflectedTable ;
55use Tqdev \PhpCrudApi \Middleware \Communication \VariableStore ;
6- use Tqdev \PhpCrudApi \Record \Condition \AndCondition ;
76use Tqdev \PhpCrudApi \Record \Condition \ColumnCondition ;
87use Tqdev \PhpCrudApi \Record \Condition \Condition ;
98
@@ -98,10 +97,17 @@ public function definition(): GenericDefinition
9897 return $ this ->definition ;
9998 }
10099
101- private function addAuthorizationCondition (String $ tableName , Condition $ condition2 ): Condition
100+ private function addMiddlewareConditions (String $ tableName , Condition $ condition ): Condition
102101 {
103102 $ condition1 = VariableStore::get ("authorization.conditions. $ tableName " );
104- return $ condition1 ? AndCondition::fromArray ([$ condition1 , $ condition2 ]) : $ condition2 ;
103+ if ($ condition1 ) {
104+ $ condition = $ condition ->_and ($ condition1 );
105+ }
106+ $ condition2 = VariableStore::get ("multiTenancy.conditions. $ tableName " );
107+ if ($ condition2 ) {
108+ $ condition = $ condition ->_and ($ condition2 );
109+ }
110+ return $ condition ;
105111 }
106112
107113 public function createSingle (ReflectedTable $ table , array $ columnValues ) /*: ?String*/
@@ -131,7 +137,7 @@ public function selectSingle(ReflectedTable $table, array $columnNames, String $
131137 $ selectColumns = $ this ->columns ->getSelect ($ table , $ columnNames );
132138 $ tableName = $ table ->getName ();
133139 $ condition = new ColumnCondition ($ table ->getPk (), 'eq ' , $ id );
134- $ condition = $ this ->addAuthorizationCondition ($ tableName , $ condition );
140+ $ condition = $ this ->addMiddlewareConditions ($ tableName , $ condition );
135141 $ parameters = array ();
136142 $ whereClause = $ this ->conditions ->getWhereClause ($ condition , $ parameters );
137143 $ sql = 'SELECT ' . $ selectColumns . ' FROM " ' . $ tableName . '" ' . $ whereClause ;
@@ -153,7 +159,7 @@ public function selectMultiple(ReflectedTable $table, array $columnNames, array
153159 $ selectColumns = $ this ->columns ->getSelect ($ table , $ columnNames );
154160 $ tableName = $ table ->getName ();
155161 $ condition = new ColumnCondition ($ table ->getPk (), 'in ' , implode (', ' , $ ids ));
156- $ condition = $ this ->addAuthorizationCondition ($ tableName , $ condition );
162+ $ condition = $ this ->addMiddlewareConditions ($ tableName , $ condition );
157163 $ parameters = array ();
158164 $ whereClause = $ this ->conditions ->getWhereClause ($ condition , $ parameters );
159165 $ sql = 'SELECT ' . $ selectColumns . ' FROM " ' . $ tableName . '" ' . $ whereClause ;
@@ -166,7 +172,7 @@ public function selectMultiple(ReflectedTable $table, array $columnNames, array
166172 public function selectCount (ReflectedTable $ table , Condition $ condition ): int
167173 {
168174 $ tableName = $ table ->getName ();
169- $ condition = $ this ->addAuthorizationCondition ($ tableName , $ condition );
175+ $ condition = $ this ->addMiddlewareConditions ($ tableName , $ condition );
170176 $ parameters = array ();
171177 $ whereClause = $ this ->conditions ->getWhereClause ($ condition , $ parameters );
172178 $ sql = 'SELECT COUNT(*) FROM " ' . $ tableName . '" ' . $ whereClause ;
@@ -178,7 +184,7 @@ public function selectAllUnordered(ReflectedTable $table, array $columnNames, Co
178184 {
179185 $ selectColumns = $ this ->columns ->getSelect ($ table , $ columnNames );
180186 $ tableName = $ table ->getName ();
181- $ condition = $ this ->addAuthorizationCondition ($ tableName , $ condition );
187+ $ condition = $ this ->addMiddlewareConditions ($ tableName , $ condition );
182188 $ parameters = array ();
183189 $ whereClause = $ this ->conditions ->getWhereClause ($ condition , $ parameters );
184190 $ sql = 'SELECT ' . $ selectColumns . ' FROM " ' . $ tableName . '" ' . $ whereClause ;
@@ -195,7 +201,7 @@ public function selectAll(ReflectedTable $table, array $columnNames, Condition $
195201 }
196202 $ selectColumns = $ this ->columns ->getSelect ($ table , $ columnNames );
197203 $ tableName = $ table ->getName ();
198- $ condition = $ this ->addAuthorizationCondition ($ tableName , $ condition );
204+ $ condition = $ this ->addMiddlewareConditions ($ tableName , $ condition );
199205 $ parameters = array ();
200206 $ whereClause = $ this ->conditions ->getWhereClause ($ condition , $ parameters );
201207 $ orderBy = $ this ->columns ->getOrderBy ($ table , $ columnOrdering );
@@ -216,7 +222,7 @@ public function updateSingle(ReflectedTable $table, array $columnValues, String
216222 $ updateColumns = $ this ->columns ->getUpdate ($ table , $ columnValues );
217223 $ tableName = $ table ->getName ();
218224 $ condition = new ColumnCondition ($ table ->getPk (), 'eq ' , $ id );
219- $ condition = $ this ->addAuthorizationCondition ($ tableName , $ condition );
225+ $ condition = $ this ->addMiddlewareConditions ($ tableName , $ condition );
220226 $ parameters = array_values ($ columnValues );
221227 $ whereClause = $ this ->conditions ->getWhereClause ($ condition , $ parameters );
222228 $ sql = 'UPDATE " ' . $ tableName . '" SET ' . $ updateColumns . $ whereClause ;
@@ -228,7 +234,7 @@ public function deleteSingle(ReflectedTable $table, String $id)
228234 {
229235 $ tableName = $ table ->getName ();
230236 $ condition = new ColumnCondition ($ table ->getPk (), 'eq ' , $ id );
231- $ condition = $ this ->addAuthorizationCondition ($ tableName , $ condition );
237+ $ condition = $ this ->addMiddlewareConditions ($ tableName , $ condition );
232238 $ parameters = array ();
233239 $ whereClause = $ this ->conditions ->getWhereClause ($ condition , $ parameters );
234240 $ sql = 'DELETE FROM " ' . $ tableName . '" ' . $ whereClause ;
@@ -245,7 +251,7 @@ public function incrementSingle(ReflectedTable $table, array $columnValues, Stri
245251 $ updateColumns = $ this ->columns ->getIncrement ($ table , $ columnValues );
246252 $ tableName = $ table ->getName ();
247253 $ condition = new ColumnCondition ($ table ->getPk (), 'eq ' , $ id );
248- $ condition = $ this ->addAuthorizationCondition ($ tableName , $ condition );
254+ $ condition = $ this ->addMiddlewareConditions ($ tableName , $ condition );
249255 $ parameters = array_values ($ columnValues );
250256 $ whereClause = $ this ->conditions ->getWhereClause ($ condition , $ parameters );
251257 $ sql = 'UPDATE " ' . $ tableName . '" SET ' . $ updateColumns . $ whereClause ;
0 commit comments