@@ -190,21 +190,38 @@ private function searchProjects($query)
190
190
$ projectModalClass = 'ProcessMaker\Package\Projects\Models\Project ' ;
191
191
$ project = new $ projectModalClass ;
192
192
193
- if (empty ($ query )) {
194
- $ results = $ project ->get ();
195
- } else {
196
- $ results = $ project ->pmql ('title = " ' . $ query . '" ' , function ($ expression ) {
197
- return function ($ query ) use ($ expression ) {
198
- $ query ->where ($ expression ->field ->field (), 'LIKE ' , '% ' . $ expression ->value ->value () . '% ' );
199
- };
200
- })->get ();
201
- }
193
+ $ projectMemberModalClass = 'ProcessMaker\Package\Projects\Models\ProjectMember ' ;
194
+ $ projectMember = new $ projectMemberModalClass ;
195
+ $ user = Auth::user ();
196
+ $ ids = $ projectMember ->getProjectWhereTheUserIsMember ($ user );
197
+
198
+ $ results = empty ($ query )
199
+ ? $ this ->searchProjectsNoQuery ($ project , $ user , $ ids )
200
+ : $ this ->searchProjectsWithQuery ($ project , $ query , $ user , $ ids );
202
201
203
202
return $ results ->map (function ($ request ) {
204
203
return $ request ->only (['id ' , 'title ' ]);
205
204
});
206
205
}
207
206
207
+ private function searchProjectsNoQuery ($ project , $ user , $ ids )
208
+ {
209
+ return $ project ->where (function ($ query ) use ($ user , $ ids ) {
210
+ $ query ->owner ($ user ->id )->orWhereIn ('id ' , $ ids );
211
+ })->get ();
212
+ }
213
+
214
+ private function searchProjectsWithQuery ($ project , $ query , $ user , $ ids )
215
+ {
216
+ return $ project ->pmql ('title = " ' . $ query . '" ' , function ($ expression ) use ($ user , $ ids ) {
217
+ return function ($ query ) use ($ expression , $ user , $ ids ) {
218
+ $ query ->owner ($ user ->id )
219
+ ->orWhereIn ('id ' , $ ids )
220
+ ->where ($ expression ->field ->field (), 'LIKE ' , '% ' . $ expression ->value ->value () . '% ' );
221
+ };
222
+ })->get ();
223
+ }
224
+
208
225
private function searchProjectMembers ($ query )
209
226
{
210
227
return (object ) [
0 commit comments