Skip to content

Commit

Permalink
possible fix for MID-4102
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Aug 7, 2017
1 parent f5b8e73 commit d3caa21
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 15 deletions.
Expand Up @@ -1711,11 +1711,11 @@ private MainMenuItem createServicesItems() {
return item;
}

public PrismObject<UserType> loadUserSelf(PageBase page) {
public PrismObject<UserType> loadUserSelf() {
Task task = createSimpleTask(OPERATION_LOAD_USER);
OperationResult result = task.getResult();
PrismObject<UserType> user = WebModelServiceUtils.loadObject(UserType.class,
WebModelServiceUtils.getLoggedInUserOid(), page, task, result);
WebModelServiceUtils.getLoggedInUserOid(), PageBase.this, task, result);
result.computeStatus();

showResult(result, null, false);
Expand Down Expand Up @@ -1871,7 +1871,7 @@ public void redirectBackToBreadcrumb(Breadcrumb breadcrumb) {
}

protected void setTimeZone(PageBase page){
PrismObject<UserType> user = loadUserSelf(page);
PrismObject<UserType> user = loadUserSelf();
String timeZone = null;
MidPointPrincipal principal = SecurityUtils.getPrincipalUser();
if (user != null && user.asObjectable().getTimezone() != null){
Expand Down
Expand Up @@ -340,7 +340,7 @@ public Search load() {
return search;
}
};
selfUser = pageBase.loadUserSelf(pageBase);
selfUser = pageBase.loadUserSelf();
}

private void initUserSelectionPanel(WebMarkupContainer headerPanel){
Expand Down Expand Up @@ -616,7 +616,7 @@ private boolean isAlreadyAssigned(PrismObject<AbstractRoleType> obj, AssignmentE

private PrismObject<UserType> getTargetUser(){
if (getRoleCatalogStorage().isSelfRequest()){
return selfUser == null ? pageBase.loadUserSelf(pageBase) : selfUser;
return selfUser == null ? pageBase.loadUserSelf() : selfUser;
}
return getRoleCatalogStorage().getTargetUserList().get(0);
}
Expand Down
Expand Up @@ -51,10 +51,14 @@
import com.evolveum.midpoint.web.component.input.DropDownChoicePanel;
import com.evolveum.midpoint.web.component.prism.InputPanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.PageAdminFocus;
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.web.page.admin.configuration.component.ChooseTypePanel;
import com.evolveum.midpoint.web.page.admin.dto.ObjectViewDto;
import com.evolveum.midpoint.web.page.admin.users.component.AssignmentsPreviewDto;
import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus;
import com.evolveum.midpoint.web.page.self.PageAssignmentDetails;
import com.evolveum.midpoint.web.page.self.PageAssignmentsList;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.ItemPathType;

Expand Down Expand Up @@ -1144,12 +1148,20 @@ private ItemSecurityDecisions loadSecurityDecisions(){
if (pageBase == null || getModelObject().getTargetRef() == null){
return null;
}
PrismObject<UserType> user = null;
List<PrismObject<UserType>> targetUserList = pageBase.getSessionStorage().getRoleCatalog().getTargetUserList();
if (targetUserList == null || targetUserList.size() == 0){
user = pageBase.loadUserSelf(pageBase);
} else {
user = targetUserList.get(0);
PrismObject<? extends FocusType> operationObject = null;
if (pageBase instanceof PageAdminFocus){
operationObject = ((PageAdminFocus)pageBase).getObjectWrapper().getObject();
} else if ((pageBase instanceof PageAssignmentDetails || pageBase instanceof PageAssignmentsList) //shopping cart assignment details panels
&& !pageBase.getSessionStorage().getRoleCatalog().isMultiUserRequest()){
List<PrismObject<UserType>> targetUserList = pageBase.getSessionStorage().getRoleCatalog().getTargetUserList();
if (targetUserList == null || targetUserList.size() == 0){
operationObject = pageBase.loadUserSelf();
} else {
operationObject = targetUserList.get(0);
}
}
if (operationObject == null){
return null;
}
String targetObjectOid = getModelObject().getTargetRef().getOid();

Expand All @@ -1160,7 +1172,7 @@ private ItemSecurityDecisions loadSecurityDecisions(){
ItemSecurityDecisions decisions = null;
try{
decisions =
pageBase.getModelInteractionService().getAllowedRequestAssignmentItems(user, targetRefObject);
pageBase.getModelInteractionService().getAllowedRequestAssignmentItems(operationObject, targetRefObject);

} catch (SchemaException|SecurityViolationException ex){
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't load security decisions for assignment items.", ex);
Expand Down
Expand Up @@ -81,7 +81,7 @@ public class PageDashboard extends PageAdminHome {
private final Model<PrismObject<UserType>> principalModel = new Model<PrismObject<UserType>>();

public PageDashboard() {
principalModel.setObject(loadUserSelf(PageDashboard.this));
principalModel.setObject(loadUserSelf());
setTimeZone(PageDashboard.this);
initLayout();
}
Expand Down
Expand Up @@ -498,7 +498,7 @@ private ObjectQuery getTaskQuery(){
List<PrismObject<UserType>> userList = getSessionStorage().getRoleCatalog().getTargetUserList();
if (getSessionStorage().getRoleCatalog().isSelfRequest()){
userList = new ArrayList<>();
userList.add(loadUserSelf(PageAssignmentsList.this));
userList.add(loadUserSelf());
}
Set<String> oids = new HashSet<>();
for (PrismObject<UserType> user : userList){
Expand Down Expand Up @@ -559,7 +559,7 @@ private TextArea getDescriptionComponent(){
private PrismObject<UserType> getTargetUser() throws SchemaException {
List<PrismObject<UserType>> usersList = getSessionStorage().getRoleCatalog().getTargetUserList();
PrismObject<UserType> user = getSessionStorage().getRoleCatalog().isSelfRequest() ?
loadUserSelf(PageAssignmentsList.this) : usersList.get(0);
loadUserSelf() : usersList.get(0);
getPrismContext().adopt(user);
return user;
}
Expand Down

0 comments on commit d3caa21

Please sign in to comment.