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
Matus M authored and Matus M committed Dec 8, 2016
2 parents 1189f1a + dd37b5f commit b03661e
Show file tree
Hide file tree
Showing 154 changed files with 1,568 additions and 697 deletions.
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 @@ -241,12 +276,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 @@ -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
Expand Up @@ -38,6 +38,7 @@
import com.evolveum.midpoint.web.page.admin.users.PageUser;
import com.evolveum.midpoint.web.page.admin.users.PageUserHistory;
import com.evolveum.midpoint.web.page.admin.users.PageXmlDataReview;
import com.evolveum.midpoint.web.session.AuditLogStorage;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventStageType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
Expand All @@ -62,6 +63,7 @@ public class ObjectHistoryTabPanel<F extends FocusType> extends AbstractObjectTa
public ObjectHistoryTabPanel(String id, Form mainForm, LoadableModel<ObjectWrapper<F>> focusWrapperModel,
PageAdminObjectDetails<F> parentPage) {
super(id, mainForm, focusWrapperModel, parentPage);
parentPage.getSessionStorage().setUserHistoryAuditLog(new AuditLogStorage());
initLayout(focusWrapperModel, parentPage);
}

Expand Down
Expand Up @@ -27,6 +27,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 @@ -14,7 +14,6 @@
# limitations under the License.
#

pageAdminFocus.basic=Basic

pageAdminFocus.message.illegalAccountState=Illegal shadow state '{0}'.
pageAdminFocus.message.illegalAccountState=Illegal assignment state '{0}'.
Expand Down
Expand Up @@ -241,6 +241,11 @@ public String getObject() {
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
cancelPerformed(target);
}

@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
cancelPerformed(target);
}
};
form.add(cancel);

Expand All @@ -254,7 +259,6 @@ protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
System.out.println("asdf");
target.add(form);
}
};
Expand Down
Expand Up @@ -65,6 +65,7 @@ private void init(ProfilingConfigurationType profilingConfiguration,

if (profilingConfiguration != null) {

profilingEnabled = checkXsdBooleanValue(profilingConfiguration.isEnabled());
requestFilter = checkXsdBooleanValue(profilingConfiguration.isRequestFilter());
performanceStatistics = checkXsdBooleanValue(profilingConfiguration.isPerformanceStatistics());
subsystemModel = checkXsdBooleanValue(profilingConfiguration.isModel());
Expand Down Expand Up @@ -122,7 +123,8 @@ public ProfilingConfigurationType getNewObject() {

ProfilingConfigurationType config = new ProfilingConfigurationType();

if (isPerformanceStatistics() || isRequestFilter() || isSubsystemModel() || isSubsystemRepository()
if (isProfilingEnabled() || isPerformanceStatistics() || isRequestFilter()
|| isSubsystemModel() || isSubsystemRepository()
|| isSubsystemProvisioning() || isSubsystemSynchronizationService() || isSubsystemUcf()
|| isSubsystemTaskManager() || isSubsystemWorkflow())
config.setEnabled(true);
Expand Down
Expand Up @@ -61,6 +61,8 @@ public class OrgTreePanel extends AbstractTreeTablePanel {

private boolean selectable;
private String treeTitleKey = "";
SessionStorage storage;


public OrgTreePanel(String id, IModel<String> rootOid, boolean selectable) {
this(id, rootOid, selectable, "");
Expand All @@ -69,26 +71,28 @@ public OrgTreePanel(String id, IModel<String> rootOid, boolean selectable) {
public OrgTreePanel(String id, IModel<String> rootOid, boolean selectable, String treeTitleKey) {
super(id, rootOid);

this.treeTitleKey = treeTitleKey;
MidPointAuthWebSession session = OrgTreePanel.this.getSession();
storage = session.getSessionStorage();

this.treeTitleKey = treeTitleKey;
this.selectable = selectable;
selected = new LoadableModel<SelectableBean<OrgType>>() {
@Override
protected SelectableBean<OrgType> load() {
TabbedPanel currentTabbedPanel = null;
MidPointAuthWebSession session = OrgTreePanel.this.getSession();
SessionStorage storage = session.getSessionStorage();
if (getTree().findParent(PageOrgTree.class) != null) {
currentTabbedPanel = getTree().findParent(PageOrgTree.class).getTabPanel().getTabbedPanel();
if (currentTabbedPanel != null) {
int tabId = currentTabbedPanel.getSelectedTab();
if (storage.getUsers().getSelectedTabId() != -1
&& tabId != storage.getUsers().getSelectedTabId()) {
storage.getUsers().setSelectedItem(null);
int storedTabId = OrgTreePanel.this.getSelectedTabId();
if (storedTabId != -1
&& tabId != storedTabId) {
OrgTreePanel.this.setSelectedItem(null);
}
}
}
if (storage.getUsers().getSelectedItem() != null) {
return storage.getUsers().getSelectedItem();
if (OrgTreePanel.this.getSelectedItem() != null) {
return OrgTreePanel.this.getSelectedItem();
} else {
return getRootFromProvider();
}
Expand Down Expand Up @@ -160,7 +164,20 @@ public void renderHead(IHeaderResponse response) {
add(treeContainer);

TableTree<SelectableBean<OrgType>, String> tree = new TableTree<SelectableBean<OrgType>, String>(
ID_TREE, columns, provider, Integer.MAX_VALUE, new TreeStateModel(this, provider)) {
ID_TREE, columns, provider, Integer.MAX_VALUE, new TreeStateModel(this, provider){
@Override
public Set<SelectableBean<OrgType>> getExpandedItems(){
return OrgTreePanel.this.getExpandedItems();
}
@Override
public SelectableBean<OrgType> getCollapsedItem(){
return OrgTreePanel.this.getCollapsedItem();
}
@Override
public void setCollapsedItem(SelectableBean<OrgType> item){
OrgTreePanel.this.setCollapsedItem(null);
}
}) {

@Override
protected Component newContentComponent(String id, IModel<SelectableBean<OrgType>> model) {
Expand All @@ -170,9 +187,7 @@ protected Component newContentComponent(String id, IModel<SelectableBean<OrgType
protected void onClick(AjaxRequestTarget target) {
super.onClick(target);

MidPointAuthWebSession session = OrgTreePanel.this.getSession();
SessionStorage storage = session.getSessionStorage();
storage.getUsers().setSelectedItem(selected.getObject());
OrgTreePanel.this.setSelectedItem(selected.getObject());

selectTreeItemPerformed(selected.getObject(), target);
}
Expand Down Expand Up @@ -203,23 +218,20 @@ public void collapse(SelectableBean<OrgType> collapsedItem) {
super.collapse(collapsedItem);
MidPointAuthWebSession session = OrgTreePanel.this.getSession();
SessionStorage storage = session.getSessionStorage();
Set<SelectableBean<OrgType>> items = storage.getUsers().getExpandedItems();
Set<SelectableBean<OrgType>> items = OrgTreePanel.this.getExpandedItems();
if (items != null && items.contains(collapsedItem)) {
items.remove(collapsedItem);
}
storage.getUsers().setExpandedItems((TreeStateSet) items);
storage.getUsers().setCollapsedItem(collapsedItem);
OrgTreePanel.this.setExpandedItems((TreeStateSet) items);
OrgTreePanel.this.setCollapsedItem(collapsedItem);
}

@Override
protected void onModelChanged() {
super.onModelChanged();

Set<SelectableBean<OrgType>> items = getModelObject();

MidPointAuthWebSession session = OrgTreePanel.this.getSession();
SessionStorage storage = session.getSessionStorage();
storage.getUsers().setExpandedItems((TreeStateSet<SelectableBean<OrgType>>) items);
OrgTreePanel.this.setExpandedItems((TreeStateSet<SelectableBean<OrgType>>) items);
}
};
tree.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
Expand All @@ -242,16 +254,14 @@ private static class TreeStateModel extends AbstractReadOnlyModel<Set<Selectable

@Override
public Set<SelectableBean<OrgType>> getObject() {
MidPointAuthWebSession session = panel.getSession();
SessionStorage storage = session.getSessionStorage();
Set<SelectableBean<OrgType>> dtos = storage.getUsers().getExpandedItems();
SelectableBean<OrgType> collapsedItem = storage.getUsers().getCollapsedItem();
Set<SelectableBean<OrgType>> dtos = TreeStateModel.this.getExpandedItems();
SelectableBean<OrgType> collapsedItem = TreeStateModel.this.getCollapsedItem();
Iterator<SelectableBean<OrgType>> iterator = provider.getRoots();

if (collapsedItem != null) {
if (set.contains(collapsedItem)) {
set.remove(collapsedItem);
storage.getUsers().setCollapsedItem(null);
TreeStateModel.this.setCollapsedItem(null);
}
}
if (dtos != null && (dtos instanceof TreeStateSet)) {
Expand All @@ -278,6 +288,24 @@ public void expandAll() {
public void collapseAll() {
set.collapseAll();
}

public Set<SelectableBean<OrgType>> getExpandedItems(){
MidPointAuthWebSession session = panel.getSession();
SessionStorage storage = session.getSessionStorage();
return storage.getUsers().getExpandedItems();
}

public SelectableBean<OrgType> getCollapsedItem(){
MidPointAuthWebSession session = panel.getSession();
SessionStorage storage = session.getSessionStorage();
return storage.getUsers().getCollapsedItem();
}

public void setCollapsedItem(SelectableBean<OrgType> item){
MidPointAuthWebSession session = panel.getSession();
SessionStorage storage = session.getSessionStorage();
storage.getUsers().setCollapsedItem(item);
}
}

private List<InlineMenuItem> createTreeMenuInternal() {
Expand Down Expand Up @@ -337,5 +365,31 @@ private void expandAllPerformed(AjaxRequestTarget target) {
target.add(tree);
}

public Set<SelectableBean<OrgType>> getExpandedItems(){
return storage.getUsers().getExpandedItems();
}

public void setExpandedItems(TreeStateSet items){
storage.getUsers().setExpandedItems(items);
}

public SelectableBean<OrgType> getCollapsedItem(){
return storage.getUsers().getCollapsedItem();
}

public void setCollapsedItem(SelectableBean<OrgType> item){
storage.getUsers().setCollapsedItem(item);
}

public void setSelectedItem(SelectableBean<OrgType> item){
storage.getUsers().setSelectedItem(item);
}

public SelectableBean<OrgType> getSelectedItem(){
return storage.getUsers().getSelectedItem();
}

public int getSelectedTabId(){
return storage.getUsers().getSelectedTabId();
}
}

0 comments on commit b03661e

Please sign in to comment.