Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Dec 12, 2016
2 parents 9aa5818 + 7030fd5 commit 927286b
Show file tree
Hide file tree
Showing 206 changed files with 4,523 additions and 3,025 deletions.
2 changes: 1 addition & 1 deletion build-system/pom.xml
Expand Up @@ -605,7 +605,7 @@
<dependency>
<groupId>com.evolveum.polygon</groupId>
<artifactId>connector-ldap</artifactId>
<version>1.4.3.0-SNAPSHOT</version>
<version>1.4.3</version>
<exclusions>
<exclusion> <!-- Version in dependency of org.apache.servicemix.bundles:org.apache.servicemix.bundles.dom4j conflicts with xalan. Can be removed when connector version is bumped beyond 1.4.2.17 -->
<groupId>xml-apis</groupId>
Expand Down
Expand Up @@ -42,6 +42,7 @@

import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.sun.tools.xjc.reader.xmlschema.bindinfo.BIConversion;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.Validate;
import org.apache.commons.lang3.StringEscapeUtils;
Expand Down Expand Up @@ -767,8 +768,15 @@ public static String getDisplayNameOrName(PrismObject object) {
if (object == null) {
return null;
}
if (object.canRepresent(OrgType.class)) {
PolyString displayName = getValue(object, OrgType.F_DISPLAY_NAME, PolyString.class);
if (object.canRepresent(OrgType.class) ||
object.canRepresent(RoleType.class) ||
object.canRepresent(ServiceType.class)) {
PolyString displayName = getValue(object, AbstractRoleType.F_DISPLAY_NAME, PolyString.class);
if (displayName != null && displayName.getOrig() != null) {
return displayName.getOrig();
}
} else if (object.canRepresent(UserType.class)){
PolyString displayName = getValue(object, UserType.F_FULL_NAME, PolyString.class);
if (displayName != null && displayName.getOrig() != null) {
return displayName.getOrig();
}
Expand Down
Expand Up @@ -32,7 +32,6 @@

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.model.api.ModelExecuteOptions;
import com.evolveum.midpoint.model.api.PolicyViolationException;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismObjectDefinition;
Expand All @@ -53,6 +52,7 @@
import com.evolveum.midpoint.util.exception.ExpressionEvaluationException;
import com.evolveum.midpoint.util.exception.ObjectAlreadyExistsException;
import com.evolveum.midpoint.util.exception.ObjectNotFoundException;
import com.evolveum.midpoint.util.exception.PolicyViolationException;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.exception.SecurityViolationException;
import com.evolveum.midpoint.util.logging.LoggingUtils;
Expand Down
Expand Up @@ -37,6 +37,7 @@
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.orgs.OrgTreePanel;
import com.evolveum.midpoint.web.page.admin.users.dto.TreeStateSet;
import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus;
import com.evolveum.midpoint.web.page.self.PageAssignmentsList;
import com.evolveum.midpoint.web.page.self.dto.AssignmentViewType;
Expand All @@ -58,6 +59,7 @@
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;

/**
* Created by honchar.
Expand Down Expand Up @@ -85,7 +87,6 @@ public class AssignmentCatalogPanel<F extends AbstractRoleType> extends BasePane
private PageBase pageBase;
private IModel<String> selectedTreeItemOidModel;
private String rootOid;
private String selectedOid;
private IModel<Search> searchModel;
private IModel<AssignmentViewType> viewModel;
private ObjectDataProvider<AssignmentEditorDto, AbstractRoleType> provider;
Expand All @@ -100,7 +101,7 @@ public AssignmentCatalogPanel(String id, String rootOid, PageBase pageBase) {
this.pageBase = pageBase;
this.rootOid = rootOid;
AssignmentViewType.saveViewTypeToSession(pageBase, AssignmentViewType.ROLE_CATALOG_VIEW);
selectedOid = rootOid;
// pageBase.getSessionStorage().getRoleCatalog().setSelectedOid(rootOid);
initLayout();
}

Expand Down Expand Up @@ -202,6 +203,40 @@ protected List<InlineMenuItem> createTreeChildrenMenu() {
return new ArrayList<>();
}

@Override
public Set<SelectableBean<OrgType>> getExpandedItems(){
return pageBase.getSessionStorage().getRoleCatalog().getExpandedItems();
}

@Override
public void setExpandedItems(TreeStateSet items){
pageBase.getSessionStorage().getRoleCatalog().setExpandedItems(items);
}

@Override
public SelectableBean<OrgType> getCollapsedItem(){
return pageBase.getSessionStorage().getRoleCatalog().getCollapsedItem();
}

@Override
public void setCollapsedItem(SelectableBean<OrgType> item){
pageBase.getSessionStorage().getRoleCatalog().setCollapsedItem(item);
}

@Override
public void setSelectedItem(SelectableBean<OrgType> item){
pageBase.getSessionStorage().getRoleCatalog().setSelectedItem(item);
}

@Override
public SelectableBean<OrgType> getSelectedItem(){
return pageBase.getSessionStorage().getRoleCatalog().getSelectedItem();
}

@Override
public int getSelectedTabId(){
return pageBase.getSessionStorage().getRoleCatalog().getSelectedTabId();
}
};
treePanel.setOutputMarkupId(true);
treePanelContainer.add(new AttributeAppender("class", "col-md-3"));
Expand Down Expand Up @@ -229,8 +264,11 @@ protected List<InlineMenuItem> createTreeChildrenMenu() {
}

private void selectTreeItemPerformed(SelectableBean<OrgType> selected, AjaxRequestTarget target) {
final OrgType selectedOgr = selected.getValue();
selectedTreeItemOidModel.setObject(selectedOgr.getOid());
final OrgType selectedOrg = selected.getValue();
if (selectedOrg == null) {
return;
}
selectedTreeItemOidModel.setObject(selectedOrg.getOid());
AssignmentViewType.saveViewTypeToSession(pageBase, AssignmentViewType.ROLE_CATALOG_VIEW);
AssignmentCatalogPanel.this.addOrReplaceLayout(getCatalogItemsPanelContainer());
target.add(getCatalogItemsPanelContainer());
Expand All @@ -241,12 +279,13 @@ private void initModels(){
selectedTreeItemOidModel = new IModel<String>() {
@Override
public String getObject() {
return StringUtils.isEmpty(selectedOid) ? rootOid : selectedOid;
return StringUtils.isEmpty(pageBase.getSessionStorage().getRoleCatalog().getSelectedOid()) ?
rootOid : pageBase.getSessionStorage().getRoleCatalog().getSelectedOid();
}

@Override
public void setObject(String s) {
selectedOid = s;
pageBase.getSessionStorage().getRoleCatalog().setSelectedOid(s);
}

@Override
Expand Down
Expand Up @@ -446,7 +446,7 @@ private List<AssignmentEditorDto> applyQueryToListProvider(ObjectQuery query, Li
for (AssignmentEditorDto dto : providerList) {
for (SelectableBean<F> providerDataDto : providerDataList){
F object = providerDataDto.getValue();
if (object.getOid().equals(dto.getTargetRef().getOid())) {
if (object != null && object.getOid().equals(dto.getTargetRef().getOid())) {
displayAssignmentsList.add(dto);
break;
}
Expand Down
Expand Up @@ -66,9 +66,9 @@ public ObjectDataProvider(Component component, Class<T> type) {

public List<T> getSelectedData() {
for (Serializable s : super.getAvailableData()){
if (s instanceof SelectableBean){
if (s instanceof SelectableBean) {
SelectableBean<T> selectable = (SelectableBean<T>) s;
if (selectable.isSelected()){
if (selectable.isSelected() && selectable.getValue() != null) {
selected.add(selectable.getValue());
}
}
Expand All @@ -86,17 +86,17 @@ public Iterator<W> internalIterator(long first, long count) {
for (W available : getAvailableData()){
if (available instanceof SelectableBean){
SelectableBean<T> selectableBean = (SelectableBean<T>) available;
if (selectableBean.isSelected()){
if (selectableBean.isSelected() && selectableBean.getValue() != null) {
selected.add(selectableBean.getValue());
}
}
}

for (W available : getAvailableData()){
if (available instanceof SelectableBean){
for (W available : getAvailableData()) {
if (available instanceof SelectableBean) {
SelectableBean<T> selectableBean = (SelectableBean<T>) available;
if (!selectableBean.isSelected()){
if (selected.contains(selectableBean.getValue())){
if (!selectableBean.isSelected()) {
if (selected.contains(selectableBean.getValue())) {
selected.remove(selectableBean.getValue());
}
}
Expand Down
Expand Up @@ -85,9 +85,8 @@ public void clearSelectedObjects(){

public List<O> getSelectedData() {
preprocessSelectedDataInternal();
for (SelectableBean<O> s : super.getAvailableData()){
SelectableBean<O> selectable = (SelectableBean<O>) s;
if (selectable.isSelected()){
for (SelectableBean<O> selectable : super.getAvailableData()) {
if (selectable.isSelected() && selectable.getValue() != null) {
((Set)selected).add(selectable.getValue());
}
}
Expand All @@ -96,24 +95,22 @@ public List<O> getSelectedData() {
return allSelected;
}

private void preprocessSelectedData(){
private void preprocessSelectedData() {
preprocessSelectedDataInternal();
getAvailableData().clear();
}

private void preprocessSelectedDataInternal(){
for (SelectableBean<O> available : getAvailableData()){
SelectableBean<O> selectableBean = (SelectableBean<O>) available;
if (selectableBean.isSelected()){
((Set)selected).add(selectableBean.getValue());
private void preprocessSelectedDataInternal() {
for (SelectableBean<O> available : getAvailableData()) {
if (available.isSelected() && available.getValue() != null) {
((Set)selected).add(available.getValue());
}
}

for (SelectableBean<O> available : getAvailableData()){
SelectableBean<O> selectableBean = (SelectableBean<O>) available;
if (!selectableBean.isSelected()){
if (selected.contains(selectableBean.getValue())){
selected.remove(selectableBean.getValue());
for (SelectableBean<O> available : getAvailableData()) {
if (!available.isSelected()) {
if (selected.contains(available.getValue())) {
selected.remove(available.getValue());
}
}
}
Expand All @@ -137,7 +134,7 @@ public Iterator<SelectableBean<O>> internalIterator(long offset, long pageSize)

ObjectQuery query = getQuery();
if (query == null){
if (emptyListOnNullQuery){
if (emptyListOnNullQuery) {
return new ArrayList<SelectableBean<O>>().iterator();
}
query = new ObjectQuery();
Expand Down
Expand Up @@ -167,7 +167,7 @@ protected IModel<String> createIconModel(final IModel<SelectableBean<T>> rowMode
@Override
public String getObject() {
T object = rowModel.getObject().getValue();
return WebComponentUtil.createDefaultIcon(object.asPrismObject());
return object != null ? WebComponentUtil.createDefaultIcon(object.asPrismObject()) : null;
}
};

Expand Down Expand Up @@ -196,7 +196,7 @@ protected IModel<String> createIconModel(final IModel<SelectableBean<T>> rowMode
@Override
public String getObject() {
T user = rowModel.getObject().getValue();
return WebComponentUtil.createUserIcon(user.asPrismContainer());
return user != null ? WebComponentUtil.createUserIcon(user.asPrismContainer()) : null;
}
};
}
Expand All @@ -209,7 +209,7 @@ protected IModel<String> createTitleModel(final IModel<SelectableBean<T>> rowMod
@Override
public String getObject() {
T user = rowModel.getObject().getValue();
String iconClass = WebComponentUtil.createUserIcon(user.asPrismContainer());
String iconClass = user != null ? WebComponentUtil.createUserIcon(user.asPrismContainer()) : null;
String compareStringValue = GuiStyleConstants.CLASS_OBJECT_USER_ICON + " " + GuiStyleConstants.CLASS_ICON_STYLE;
String titleValue = "";
if (iconClass != null &&
Expand Down Expand Up @@ -261,7 +261,7 @@ protected IModel<String> createIconModel(final IModel<SelectableBean<T>> rowMode
@Override
public String getObject() {
T role = rowModel.getObject().getValue();
return WebComponentUtil.createRoleIcon(role.asPrismContainer());
return role != null ? WebComponentUtil.createRoleIcon(role.asPrismContainer()) : null;
}
};
}
Expand All @@ -280,7 +280,7 @@ protected IModel<String> createIconModel(final IModel<SelectableBean<T>> rowMode
@Override
public String getObject() {
T org = rowModel.getObject().getValue();
return WebComponentUtil.createOrgIcon(org.asPrismContainer());
return org != null ? WebComponentUtil.createOrgIcon(org.asPrismContainer()) : null;
}
};
}
Expand All @@ -307,7 +307,7 @@ protected IModel<String> createIconModel(final IModel<SelectableBean<T>> rowMode
@Override
public String getObject() {
T service = rowModel.getObject().getValue();
return WebComponentUtil.createServiceIcon(service.asPrismContainer());
return service != null ? WebComponentUtil.createServiceIcon(service.asPrismContainer()) : null;
}
};
}
Expand All @@ -331,7 +331,7 @@ protected IModel<String> createIconModel(final IModel<SelectableBean<T>> rowMode
@Override
public String getObject() {
T task = rowModel.getObject().getValue();
return WebComponentUtil.createTaskIcon(task.asPrismContainer());
return task != null ? WebComponentUtil.createTaskIcon(task.asPrismContainer()) : null;
}
};
}
Expand Down Expand Up @@ -416,8 +416,10 @@ public static <T extends ObjectType> List<IColumn<SelectableBean<T>, String>> ge
public void populateItem(Item<ICellPopulator<SelectableBean<T>>> cellItem,
String componentId, IModel<SelectableBean<T>> rowModel) {
SelectableBean<TaskType> object = (SelectableBean<TaskType>) rowModel.getObject();
PrismProperty<ShadowKindType> pKind = object.getValue().asPrismObject().findProperty(
new ItemPath(TaskType.F_EXTENSION, SchemaConstants.MODEL_EXTENSION_KIND));
PrismProperty<ShadowKindType> pKind = object.getValue() != null ?
object.getValue().asPrismObject().findProperty(
new ItemPath(TaskType.F_EXTENSION, SchemaConstants.MODEL_EXTENSION_KIND))
: null;
if (pKind != null) {
cellItem.add(new Label(componentId, WebComponentUtil
.createLocalizedModelForEnum(pKind.getRealValue(), cellItem)));
Expand All @@ -436,8 +438,10 @@ public void populateItem(Item<ICellPopulator<SelectableBean<T>>> cellItem,
public void populateItem(Item<ICellPopulator<SelectableBean<T>>> cellItem,
String componentId, IModel<SelectableBean<T>> rowModel) {
SelectableBean<TaskType> object = (SelectableBean<TaskType>) rowModel.getObject();
PrismProperty<String> pIntent = object.getValue().asPrismObject().findProperty(
new ItemPath(TaskType.F_EXTENSION, SchemaConstants.MODEL_EXTENSION_INTENT));
PrismProperty<String> pIntent = object.getValue() != null ?
object.getValue().asPrismObject().findProperty(
new ItemPath(TaskType.F_EXTENSION, SchemaConstants.MODEL_EXTENSION_INTENT))
: null;
if (pIntent != null) {
cellItem.add(new Label(componentId, pIntent.getRealValue()));
} else {
Expand All @@ -454,8 +458,10 @@ public void populateItem(Item<ICellPopulator<SelectableBean<T>>> cellItem,
public void populateItem(Item<ICellPopulator<SelectableBean<T>>> cellItem,
String componentId, IModel<SelectableBean<T>> rowModel) {
SelectableBean<TaskType> object = (SelectableBean<TaskType>) rowModel.getObject();
PrismProperty<QName> pObjectClass = object.getValue().asPrismObject().findProperty(
new ItemPath(TaskType.F_EXTENSION, SchemaConstants.OBJECTCLASS_PROPERTY_NAME));
PrismProperty<QName> pObjectClass = object.getValue() != null ?
object.getValue().asPrismObject().findProperty(
new ItemPath(TaskType.F_EXTENSION, SchemaConstants.OBJECTCLASS_PROPERTY_NAME))
: null;
if (pObjectClass != null) {
cellItem.add(new Label(componentId, pObjectClass.getRealValue().getLocalPart()));
} else {
Expand Down
Expand Up @@ -28,6 +28,7 @@
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.AceEditor;
import com.evolveum.midpoint.web.util.ExpressionUtil;
import com.evolveum.midpoint.web.util.InfoTooltipBehavior;
import com.evolveum.midpoint.web.util.WebXmlUtil;
import com.evolveum.prism.xml.ns._public.query_3.SearchFilterType;
Expand Down Expand Up @@ -110,13 +111,13 @@ protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
add(clauseTooltip);
}

private void updateClausePerformed(AjaxRequestTarget target){
private void updateClausePerformed(AjaxRequestTarget target) {
try {
updateFilterClause(getPageBase().getPrismContext());
success(getString("SearchFilterPanel.message.expressionSuccess"));
} catch (Exception e){
} catch (Exception e) {
LoggingUtils.logUnexpectedException(LOGGER, "Could not create MapXNode from provided XML filterClause.", e);
error(getString("SearchFilterPanel.message.cantSerialize"));
error(getString("SearchFilterPanel.message.cantSerialize", e.getMessage()));
}

// performFilterClauseHook(target);
Expand All @@ -127,7 +128,7 @@ private void updateFilterClause(PrismContext context) throws SchemaException {
final String clauseString = clauseStringModel.getObject();
if (StringUtils.isNotEmpty(clauseString)) {
LOGGER.trace("Filter Clause to serialize: {}", clauseString);
RootXNode filterClauseNode = (RootXNode) context.parserFor(clauseString).xml().parseToXNode();
RootXNode filterClauseNode = ExpressionUtil.parseSearchFilter(clauseString, context);
getModelObject().setFilterClauseXNode(filterClauseNode);
} else {
if (getModelObject() != null) {
Expand Down

0 comments on commit 927286b

Please sign in to comment.