@@ -142,7 +142,7 @@ public JsonElement editablePackages(AppSecurityContext session) {
142142 q .setHint (QueryHints .HINT_READONLY , true );
143143 resultList = q .getResultList ();
144144 } else {
145- resultList = fetchPackagesByGuids (permittedPkgs , true );
145+ resultList = fetchPackagesByIdOrGuid (permittedPkgs );
146146 }
147147 resultList = resultList .stream ().filter (cp -> {
148148 return (cp .getVisible () == null || cp .getVisible ()) && !cp .getBuildStatus ().equals (BuildStatus .FAILED );
@@ -161,16 +161,13 @@ public JsonElement editablePackages(AppSecurityContext session) {
161161 return jsonElement ;
162162 }
163163
164- private List <ContentPackage > fetchPackagesByGuids (Set <String > packageGuids , boolean readOnly ) {
165- CriteriaBuilder cb = em .getCriteriaBuilder ();
166- CriteriaQuery <ContentPackage > criteria = cb .createQuery (ContentPackage .class );
167- Root <ContentPackage > contentPackageRoot = criteria .from (ContentPackage .class );
168- criteria .select (contentPackageRoot ).where (contentPackageRoot .get ("guid" ).in (packageGuids ));
169- TypedQuery <ContentPackage > query = em .createQuery (criteria );
170- if (readOnly ) {
171- query .setHint (QueryHints .HINT_READONLY , true );
164+ private List <ContentPackage > fetchPackagesByIdOrGuid (Set <String > packageIdsOrGuids ) {
165+ List <ContentPackage > packages = new ArrayList <>();
166+
167+ for (String packageIdOrGuid : packageIdsOrGuids ) {
168+ packages .add (findContentPackage (packageIdOrGuid ));
172169 }
173- return query . getResultList () ;
170+ return packages ;
174171 }
175172
176173 public JsonElement setPackageEditable (AppSecurityContext session , boolean editable , JsonArray packageGuids ) {
@@ -183,7 +180,7 @@ public JsonElement setPackageEditable(AppSecurityContext session, boolean editab
183180 }
184181 });
185182
186- fetchPackagesByGuids (packageGuidSet , false ).forEach (contentPackage -> contentPackage .setEditable (editable ));
183+ fetchPackagesByIdOrGuid (packageGuidSet ).forEach (contentPackage -> contentPackage .setEditable (editable ));
187184
188185 JsonObject locked = new JsonObject ();
189186 locked .addProperty ("editable" , editable );
@@ -202,7 +199,7 @@ public JsonElement setPackageVisible(AppSecurityContext session, boolean visible
202199 }
203200 });
204201
205- fetchPackagesByGuids (packageGuidSet , false ).forEach (contentPackage -> contentPackage .setVisible (visible ));
202+ fetchPackagesByIdOrGuid (packageGuidSet ).forEach (contentPackage -> contentPackage .setVisible (visible ));
206203
207204 JsonObject hidden = new JsonObject ();
208205 hidden .addProperty ("visible" , visible );
0 commit comments