Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Dec 6, 2016
2 parents 1b8cf79 + 2938936 commit ee20ac4
Show file tree
Hide file tree
Showing 12 changed files with 144 additions and 39 deletions.
Expand Up @@ -338,9 +338,12 @@ private void searchPerformed(ObjectQuery query, AjaxRequestTarget target) {
}

protected ObjectQuery createContentQuery(ObjectQuery searchQuery) {
ObjectQuery memberQuery;
ObjectQuery memberQuery = null;
if (AssignmentViewType.ROLE_CATALOG_VIEW.equals(AssignmentViewType.getViewTypeFromSession(pageBase))){
memberQuery = createMemberQuery(selectedTreeItemOidModel.getObject());
String oid = selectedTreeItemOidModel.getObject();
if (StringUtils.isNotEmpty(oid)) {
memberQuery = createMemberQuery(oid);
}
} else {
memberQuery = createMemberQuery(getViewTypeClass(AssignmentViewType.getViewTypeFromSession(pageBase)));
}
Expand Down
Expand Up @@ -21,24 +21,32 @@
import com.evolveum.midpoint.gui.api.util.FocusTabVisibleBehavior;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.Model;

import com.evolveum.midpoint.gui.api.component.MainObjectListPanel;
import com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab;
import com.evolveum.midpoint.gui.api.component.tabs.PanelTab;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.web.component.assignment.AssignmentEditorDto;
import com.evolveum.midpoint.web.component.assignment.AssignmentTablePanel;
import com.evolveum.midpoint.web.component.prism.ContainerStatus;
import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
import com.evolveum.midpoint.web.page.admin.PageAdminFocus;
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.web.page.admin.roles.RoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.dto.FocusSubwrapperDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;

/**
* @author semancik
*
*/
public class AbstractRoleMainPanel<R extends AbstractRoleType> extends FocusMainPanel<R> {
public abstract class AbstractRoleMainPanel<R extends AbstractRoleType> extends FocusMainPanel<R> {
private static final long serialVersionUID = 1L;

private LoadableModel<List<AssignmentEditorDto>> inducementsModel;
Expand Down Expand Up @@ -84,6 +92,24 @@ public String getCount() {
}
});

tabs.add(new PanelTab(parentPage.createStringResource("pageRole.members"), authorization) {

private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
return createMemberPanel(panelId);
}

@Override
public boolean isVisible() {
return getObjectWrapper().getStatus() != ContainerStatus.ADDING;
}
});

return tabs;
}

public abstract AbstractRoleMemberPanel<R> createMemberPanel(String panelId);

}
Expand Up @@ -32,6 +32,7 @@
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.web.page.admin.roles.RoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.roles.RolePolicyPanel;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.dto.FocusSubwrapperDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;
Expand Down Expand Up @@ -70,23 +71,28 @@ public WebMarkupContainer createPanel(String panelId) {
authorization = new FocusTabVisibleBehavior(unwrapModel(),
ComponentConstants.UI_FOCUS_TAB_MEMBERS_URL);

tabs.add(new PanelTab(parentPage.createStringResource("pageRole.members"), authorization) {

private static final long serialVersionUID = 1L;

@Override
public WebMarkupContainer createPanel(String panelId) {
return new RoleMemberPanel(panelId, new Model<RoleType>(getObject().asObjectable()), getDetailsPage());
}

@Override
public boolean isVisible() {
return getObjectWrapper().getStatus() != ContainerStatus.ADDING;
}
});
// tabs.add(new PanelTab(parentPage.createStringResource("pageRole.members"), authorization) {
//
// private static final long serialVersionUID = 1L;
//
// @Override
// public WebMarkupContainer createPanel(String panelId) {
// return new RoleMemberPanel(panelId, new Model<RoleType>(getObject().asObjectable()), getDetailsPage());
// }
//
// @Override
// public boolean isVisible() {
// return getObjectWrapper().getStatus() != ContainerStatus.ADDING;
// }
// });

return tabs;
}

@Override
public AbstractRoleMemberPanel<RoleType> createMemberPanel(String panelId) {
return new RoleMemberPanel(panelId, new Model<RoleType>(getObject().asObjectable()), getDetailsPage());
}



Expand Down
Expand Up @@ -62,15 +62,18 @@
import com.evolveum.midpoint.web.component.data.column.CheckBoxPanel;
import com.evolveum.midpoint.web.component.input.ObjectTypeChoiceRenderer;
import com.evolveum.midpoint.web.component.input.QNameChoiceRenderer;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.session.UserProfileStorage.TableId;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;

public class RoleMemberPanel extends AbstractRoleMemberPanel<RoleType> {
public class RoleMemberPanel<T extends AbstractRoleType> extends AbstractRoleMemberPanel<T> {

private static final long serialVersionUID = 1L;

Expand All @@ -81,10 +84,14 @@ public class RoleMemberPanel extends AbstractRoleMemberPanel<RoleType> {
private static String ID_PROJECT = "project";
private static String ID_INDIRECT_MEMBERS = "indirectMembers";

public RoleMemberPanel(String id, IModel<RoleType> model, PageBase pageBase) {
public RoleMemberPanel(String id, IModel<T> model, PageBase pageBase) {
super(id, TableId.ROLE_MEMEBER_PANEL, model, pageBase);

}

protected boolean isRole() {
return true;
}

private PrismContext getPrismContext() {
return getPageBase().getPrismContext();
Expand Down Expand Up @@ -218,15 +225,29 @@ protected void initSearch(Form form) {
DropDownChoice<QName> typeSelect = createDropDown(ID_OBJECT_TYPE, Model.of(FocusType.COMPLEX_TYPE),
allowedTypes, new QNameChoiceRenderer());
add(typeSelect);


DropDownChoice<OrgType> tenant = createDropDown(ID_TENANT, new Model(),
createTenantList(), new ObjectTypeChoiceRenderer<OrgType>());
add(tenant);

tenant.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return isRole();
}
});

DropDownChoice<OrgType> project = createDropDown(ID_PROJECT, new Model(),
createProjectList(), new ObjectTypeChoiceRenderer<OrgType>());
add(project);

project.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return isRole();
}
});

CheckBoxPanel includeIndirectMembers = new CheckBoxPanel(ID_INDIRECT_MEMBERS, new Model<Boolean>(false)) {
private static final long serialVersionUID = 1L;

Expand All @@ -236,6 +257,13 @@ public void onUpdate(AjaxRequestTarget target) {
};
add(includeIndirectMembers);

includeIndirectMembers.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return isRole();
}
});


}

Expand Down
@@ -1,5 +1,6 @@
package com.evolveum.midpoint.web.page.admin.services;

import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;

import com.evolveum.midpoint.prism.PrismObject;
Expand All @@ -13,6 +14,8 @@
import com.evolveum.midpoint.web.component.objectdetails.AbstractRoleMainPanel;
import com.evolveum.midpoint.web.component.progress.ProgressReportingAwarePage;
import com.evolveum.midpoint.web.page.admin.PageAdminAbstractRole;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.component.ServiceMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.component.ServiceSummaryPanel;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType;
Expand All @@ -22,7 +25,7 @@
@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_UI_SERVICE_URL, label = "PageService.auth.role.label", description = "PageService.auth.role.description") })
public class PageService extends PageAdminAbstractRole<ServiceType> implements ProgressReportingAwarePage{

private static final Trace LOGGER = TraceManager.getTrace(PageService.class);
private static final long serialVersionUID = 1L;

public PageService() {
initialize(null);
Expand Down Expand Up @@ -59,7 +62,14 @@ protected FocusSummaryPanel<ServiceType> createSummaryPanel() {

@Override
protected AbstractObjectMainPanel<ServiceType> createMainPanel(String id) {
return new AbstractRoleMainPanel<ServiceType>(id, getObjectModel(), getAssignmentsModel(), getProjectionModel(), getInducementsModel(), this);
return new AbstractRoleMainPanel<ServiceType>(id, getObjectModel(), getAssignmentsModel(), getProjectionModel(), getInducementsModel(), this) {
private static final long serialVersionUID = 1L;

@Override
public AbstractRoleMemberPanel<ServiceType> createMemberPanel(String panelId) {
return new ServiceMemberPanel(panelId, Model.of(getObject().asObjectable()), PageService.this);
}
};
}

}
Expand Up @@ -15,6 +15,7 @@
*/
package com.evolveum.midpoint.web.page.admin.users;

import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;

import com.evolveum.midpoint.prism.PrismObject;
Expand All @@ -28,6 +29,8 @@
import com.evolveum.midpoint.web.component.objectdetails.AbstractRoleMainPanel;
import com.evolveum.midpoint.web.component.progress.ProgressReportingAwarePage;
import com.evolveum.midpoint.web.page.admin.PageAdminAbstractRole;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.component.OrgMemberPanel;
import com.evolveum.midpoint.web.page.admin.users.component.OrgSummaryPanel;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
Expand Down Expand Up @@ -77,6 +80,13 @@ protected FocusSummaryPanel<OrgType> createSummaryPanel() {

@Override
protected AbstractObjectMainPanel<OrgType> createMainPanel(String id) {
return new AbstractRoleMainPanel<OrgType>(id, getObjectModel(), getAssignmentsModel(), getProjectionModel(), getInducementsModel(), this);
return new AbstractRoleMainPanel<OrgType>(id, getObjectModel(), getAssignmentsModel(), getProjectionModel(), getInducementsModel(), this) {

@Override
public AbstractRoleMemberPanel<OrgType> createMemberPanel(String panelId) {
return new OrgMemberPanel(panelId, Model.of(getObject().asObjectable()), PageOrgUnit.this);
}
};
}

}
Expand Up @@ -120,6 +120,7 @@ protected List<AssignmentEditorDto> load() {
}
}
};
privilegesList = getUserPrivilegesList();
}

@Override
Expand Down Expand Up @@ -197,7 +198,6 @@ public WebMarkupContainer createPanel(String panelId) {

@Override
public void populateItem(ListItem<AssignmentEditorDto> item) {
privilegesList = getItemPrivilegesList(item.getModelObject());
DelegationEditorPanel editor = new DelegationEditorPanel(ID_ROW, item.getModel(), false,
privilegesList, PageUser.this);
item.add(editor);
Expand All @@ -220,8 +220,8 @@ protected List<InlineMenuItem> createAssignmentMenu() {

@Override
public void onClick(AjaxRequestTarget target) {
if (getUserPrivilegesList() == null ||
getUserPrivilegesList().size() == 0){
if (privilegesList == null ||
privilegesList.size() == 0){
warn(getString("AssignmentTablePanel.modal.message.noDelegationWarning"));
target.add(getPageBase().getFeedbackPanel());
return;
Expand Down Expand Up @@ -281,7 +281,6 @@ protected String getAssignmentsDeleteMessage(int size){
@Override
protected void addSelectedAssignablePerformed(AjaxRequestTarget target, List<ObjectType> newAssignments,
String popupId) {
privilegesList = getUserPrivilegesList();
ModalWindow window = (ModalWindow) get(popupId);
if (window != null) {
window.close(target);
Expand All @@ -298,7 +297,6 @@ protected void addSelectedAssignablePerformed(AjaxRequestTarget target, List<Obj
AssignmentEditorDto dto = AssignmentEditorDto.createDtoAddFromSelectedObject(
PageUser.this.getObjectWrapper().getObject().asObjectable(),
SchemaConstants.ORG_DEPUTY, getPageBase(), (UserType) object);
dto.setPrivilegeLimitationList(privilegesList);
delegationsModel.getObject().add(dto);
} catch (Exception e) {
error(getString("AssignmentTablePanel.message.couldntAssignObject", object.getName(),
Expand Down Expand Up @@ -410,11 +408,6 @@ private List<AssignmentEditorDto> loadDelegatedByMeAssignments() {
return list;
}

private List<AssignmentsPreviewDto> getItemPrivilegesList(AssignmentEditorDto assignment){
return assignment.getPrivilegeLimitationList() == null ? new ArrayList<>() :
assignment.getPrivilegeLimitationList();
}

private List<AssignmentsPreviewDto> getUserPrivilegesList(){
List<AssignmentsPreviewDto> list = new ArrayList<>();
OperationResult result = new OperationResult(OPERATION_LOAD_ASSIGNMENT_PEVIEW_DTO_LIST);
Expand Down
Expand Up @@ -469,5 +469,10 @@ protected String getTaskName(String operation, QueryScope scope, boolean manager
protected String getTaskName(String operation, QueryScope scope) {
return getTaskName(operation, scope, false);
}

// public <F extends ObjectType> MainObjectListPanel<F> getMemberTable() {
// return (MainObjectListPanel<F>) get(
// createComponentPath(ID_FORM, ID_CONTAINER_MEMBER, ID_MEMBER_TABLE));
// }

}
Expand Up @@ -126,11 +126,7 @@ public void onClick(AjaxRequestTarget target) {
selectedDtos.add(dto);
}
}
if (selectedDtos.isEmpty()){
// target.add(AssignmentPreviewDialog.this.fee);
} else {
AssignmentPreviewDialog.this.addButtonClicked(target, selectedDtos);
}
}
};

Expand Down
Expand Up @@ -440,8 +440,8 @@ protected void refreshTable(AjaxRequestTarget target) {
ObjectTypes type = typeChoice.getModelObject();
target.add(get(createComponentPath(ID_FORM, ID_SEARCH_SCOPE)));
getMemberTable().clearCache();
getMemberTable().refreshTable((Class<ObjectType>) WebComponentUtil
.qnameToClass(getPageBase().getPrismContext(), type.getTypeQName()), target);
getMemberTable().refreshTable(WebComponentUtil
.qnameToClass(getPageBase().getPrismContext(), type.getTypeQName(), ObjectType.class), target);
}

private MainObjectListPanel<ObjectType> getMemberTable() {
Expand Down
@@ -0,0 +1,25 @@
package com.evolveum.midpoint.web.page.admin.users.component;

import org.apache.wicket.model.IModel;

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.web.page.admin.roles.RoleMemberPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType;

public class ServiceMemberPanel extends RoleMemberPanel<ServiceType>{


private static final long serialVersionUID = 1L;


public ServiceMemberPanel(String id, IModel<ServiceType> model, PageBase pageBase) {
super(id, model, pageBase);
}

@Override
protected boolean isRole() {
return false;
}


}

0 comments on commit ee20ac4

Please sign in to comment.