Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 0da0d23

Browse files
author
barnabartha
committed
SORMAS-Foundation#2890 - disable area field in case current user jurisdiction level is region or below
1 parent 5f5d37e commit 0da0d23

3 files changed

Lines changed: 14 additions & 20 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/user/UserDto.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ public class UserDto extends EntityDto {
7272

7373
private Set<UserRole> userRoles;
7474

75-
private AreaReferenceDto area;
7675
private RegionReferenceDto region;
7776
private DistrictReferenceDto district;
7877
// community of community informant
@@ -180,14 +179,6 @@ public void setAssociatedOfficer(UserReferenceDto associatedOfficer) {
180179
this.associatedOfficer = associatedOfficer;
181180
}
182181

183-
public AreaReferenceDto getArea() {
184-
return area;
185-
}
186-
187-
public void setArea(AreaReferenceDto area) {
188-
this.area = area;
189-
}
190-
191182
public RegionReferenceDto getRegion() {
192183
return region;
193184
}

sormas-ui/src/main/java/de/symeda/sormas/ui/campaign/campaigndata/CampaignFormDataEditForm.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,6 @@
2222
import java.util.Objects;
2323
import java.util.stream.Collectors;
2424

25-
import static de.symeda.sormas.ui.utils.LayoutUtil.fluidRowLocs;
26-
import static de.symeda.sormas.ui.utils.LayoutUtil.loc;
27-
28-
import java.util.Objects;
29-
3025
import com.vaadin.ui.GridLayout;
3126
import com.vaadin.v7.data.Validator;
3227
import com.vaadin.v7.data.util.converter.Converter;
@@ -101,6 +96,9 @@ protected void addFields() {
10196
addInfrastructureListeners(cbRegion, cbDistrict, cbCommunity);
10297
cbRegion.addItems(FacadeProvider.getRegionFacade().getAllActiveAsReference());
10398

99+
final UserDto currentUser = UserProvider.getCurrent().getUser();
100+
final RegionReferenceDto currentUserRegion = currentUser.getRegion();
101+
104102
if (FacadeProvider.getFeatureConfigurationFacade().isFeatureEnabled(FeatureType.INFRASTRUCTURE_TYPE_AREA)) {
105103
ComboBox cbArea = addCustomField(CampaignFormDataEditForm.AREA, AreaReferenceDto.class, ComboBox.class);
106104
cbArea.setCaption(I18nProperties.getCaption(Captions.CampaignFormData_area));
@@ -117,7 +115,7 @@ protected void addFields() {
117115
.stream()
118116
.sorted(Comparator.comparing(RegionReferenceDto::getCaption))
119117
.collect(Collectors.toList()));
120-
} else if(Objects.isNull(area)){
118+
} else if (Objects.isNull(area)) {
121119
cbRegion.addItems(FacadeProvider.getRegionFacade().getAllActiveAsReference());
122120
} else {
123121
cbRegion.setValue(null);
@@ -136,12 +134,17 @@ protected void addFields() {
136134
cbArea.setValue(FacadeProvider.getRegionFacade().getRegionByUuid(region.getUuid()).getArea());
137135
}
138136
});
137+
if (currentUserRegion != null) {
138+
final AreaReferenceDto area = FacadeProvider.getRegionFacade().getRegionByUuid(currentUserRegion.getUuid()).getArea();
139+
cbArea.setValue(area);
140+
if (currentUserRegion != null) {
141+
cbArea.setEnabled(false);
142+
}
143+
}
139144
}
140145

141-
final UserDto currentUser = UserProvider.getCurrent().getUser();
142-
143-
if (currentUser.getRegion() != null) {
144-
cbRegion.setValue(currentUser.getRegion());
146+
if (currentUserRegion != null) {
147+
cbRegion.setValue(currentUserRegion);
145148
cbRegion.setEnabled(false);
146149
}
147150
if (currentUser.getDistrict() != null) {

sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/campaigns/CampaignDashboardFilterLayout.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ private void createCampaignFilter() {
7171

7272
@SuppressWarnings("deprecation")
7373
private void createJurisdictionFilters() {
74-
final AreaReferenceDto userArea = UserProvider.getCurrent().getUser().getArea();
7574
final RegionReferenceDto userRegion = UserProvider.getCurrent().getUser().getRegion();
75+
final AreaReferenceDto userArea = FacadeProvider.getRegionFacade().getRegionByUuid(userRegion.getUuid()).getArea();
7676
final DistrictReferenceDto userDistrict = UserProvider.getCurrent().getUser().getDistrict();
7777

7878
dashboardDataProvider.setArea(userArea);

0 commit comments

Comments
 (0)