Skip to content

Commit 752370d

Browse files
committed
Merge remote-tracking branch 'origin/release/7.0.0-rev10' into NAE-2400
2 parents c3b91da + 844d184 commit 752370d

3 files changed

Lines changed: 38 additions & 29 deletions

File tree

application-engine/src/main/java/com/netgrif/application/engine/workflow/service/TaskService.java

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -859,22 +859,27 @@ private List<String> getExistingActors(ActorListFieldValue actorListFieldValue)
859859
return null;
860860
}
861861
return actorListFieldValue.getActorValues().stream()
862+
.filter(this::actorExists)
862863
.map(ActorFieldValue::getId)
863-
.filter(actorId -> {
864-
AbstractUser user = userService.findById(actorId, null);
865-
if (user != null) {
866-
return true;
867-
}
868-
try {
869-
groupService.findById(actorId);
870-
return true;
871-
} catch (IllegalArgumentException ignored) {
872-
return false;
873-
}
874-
})
875864
.collect(Collectors.toList());
876865
}
877866

867+
private boolean actorExists(ActorFieldValue actorFieldValue) {
868+
if (actorFieldValue == null || actorFieldValue.getId() == null || actorFieldValue.getId().isBlank() || !ObjectId.isValid(actorFieldValue.getId())) {
869+
return false;
870+
}
871+
AbstractUser user = userService.findById(actorFieldValue.getId(), actorFieldValue.getRealmId());
872+
if (user != null) {
873+
return true;
874+
}
875+
try {
876+
groupService.findById(actorFieldValue.getId());
877+
return true;
878+
} catch (IllegalArgumentException ignored) {
879+
return false;
880+
}
881+
}
882+
878883
private Task createFromTransition(Transition transition, Case useCase) {
879884
final Task task = com.netgrif.application.engine.adapter.spring.workflow.domain.Task.with()
880885
.title(transition.getTitle())

application-engine/src/main/java/com/netgrif/application/engine/workflow/service/WorkflowService.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -255,10 +255,9 @@ public Case resolveActorRef(Case useCase, boolean canSaveUseCase) {
255255
/**
256256
* Resolves actor permissions for the useCase based on the actor list data field.
257257
*
258-
* @param useCase useCase where to resolve actor permissions
258+
* @param useCase useCase where to resolve actor permissions
259259
* @param actorFieldId field id of the actor list
260-
* @param permission permission associated with the useCase and actor list
261-
*
260+
* @param permission permission associated with the useCase and actor list
262261
* @return true if the useCase was modified, false otherwise
263262
*/
264263
private boolean resolveActorRefPermissions(Case useCase, String actorFieldId, Map<String, Boolean> permission) {
@@ -278,22 +277,27 @@ private List<String> getExistingActors(ActorListFieldValue actorListFieldValue)
278277
return null;
279278
}
280279
return actorListFieldValue.getActorValues().stream()
280+
.filter(this::actorExists)
281281
.map(ActorFieldValue::getId)
282-
.filter(actorId -> {
283-
AbstractUser user = userService.findById(actorId, null);
284-
if (user != null) {
285-
return true;
286-
}
287-
try {
288-
groupService.findById(actorId);
289-
return true;
290-
} catch (IllegalArgumentException ignored) {
291-
return false;
292-
}
293-
})
294282
.collect(Collectors.toList());
295283
}
296284

285+
private boolean actorExists(ActorFieldValue actorFieldValue) {
286+
if (actorFieldValue == null || actorFieldValue.getId() == null || actorFieldValue.getId().isBlank() || !ObjectId.isValid(actorFieldValue.getId())) {
287+
return false;
288+
}
289+
AbstractUser user = userService.findById(actorFieldValue.getId(), actorFieldValue.getRealmId());
290+
if (user != null) {
291+
return true;
292+
}
293+
try {
294+
groupService.findById(actorFieldValue.getId());
295+
return true;
296+
} catch (IllegalArgumentException ignored) {
297+
return false;
298+
}
299+
}
300+
297301
public CreateCaseEventOutcome createCase(CreateCaseParams createCaseParams) {
298302
fillAndValidateAttributes(createCaseParams);
299303
PetriNet petriNet = createCaseParams.getProcess();

nae-object-library/src/main/java/com/netgrif/application/engine/objects/workflow/domain/menu/dashboard/DashboardManagementBody.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ public ToDataSetOutcome toDataSet() {
7979
outcome.putDataSetEntry(DashboardManagementConstants.FIELD_LANGUAGE_DASHBOARD, FieldType.BOOLEAN, this.profileDashboard);
8080
outcome.putDataSetEntry(DashboardManagementConstants.FIELD_LOGOUT_DASHBOARD, FieldType.BOOLEAN, this.logoutDashboard);
8181
if (this.dashboardItems != null) {
82-
outcome.putDataSetEntryWithOptions(DashboardManagementConstants.FIELD_DASHBOARD_ITEM_LIST, FieldType.ENUMERATION_MAP, this.dashboardItems, "");
83-
outcome.putDataSetEntryWithOptions(DashboardManagementConstants.FIELD_DASHBOARD_ITEM_TO_MENU_ITEM_LIST, FieldType.ENUMERATION_MAP, this.menuItemsToDashboardItems, "");
82+
outcome.putDataSetEntryWithOptions(DashboardManagementConstants.FIELD_DASHBOARD_ITEM_LIST, FieldType.ENUMERATION_MAP, this.dashboardItems, null);
83+
outcome.putDataSetEntryWithOptions(DashboardManagementConstants.FIELD_DASHBOARD_ITEM_TO_MENU_ITEM_LIST, FieldType.ENUMERATION_MAP, this.menuItemsToDashboardItems, null);
8484
outcome.putDataSetEntry(DashboardManagementConstants.FIELD_ITEMS_ORDER, FieldType.TEXT, String.join(",", this.dashboardItems.keySet()));
8585
}
8686
return outcome;

0 commit comments

Comments
 (0)