Skip to content

Commit

Permalink
Merge branch 'master' into feature/multitenant-autz
Browse files Browse the repository at this point in the history
  • Loading branch information
semancik committed Sep 12, 2018
2 parents 22aee8d + b610ea6 commit 955e9a9
Show file tree
Hide file tree
Showing 68 changed files with 600 additions and 530 deletions.
2 changes: 1 addition & 1 deletion build-system/pom.xml
Expand Up @@ -75,7 +75,7 @@
<h2.version>1.4.193</h2.version>
<jdbc.postgres>42.2.2</jdbc.postgres>
<jdbc.sqlserver>6.4.0.jre8</jdbc.sqlserver>
<jdbc.mariadb>1.5.5</jdbc.mariadb>
<jdbc.mariadb>2.3.0</jdbc.mariadb>
<jdbc.mysql>6.0.6</jdbc.mysql>
<wicket.version>7.10.0</wicket.version>
<groovy.version>2.4.14</groovy.version>
Expand Down
Expand Up @@ -62,16 +62,18 @@ protected void onInitialize(){

protected Component initObjectListPanel(){
PopupObjectListPanel<O> listPanel = new PopupObjectListPanel<O>(ID_OBJECT_LIST_PANEL, (Class)getObjectType().getClassDefinition(),
null, true, getPageBase(), getPreselectedObjects()) {
true, getPageBase()) {

private static final long serialVersionUID = 1L;

@Override
protected void onUpdateCheckbox(AjaxRequestTarget target) {
getPreselectedObjects().clear();
getPreselectedObjects().addAll(getSelectedObjectsList());
protected void onUpdateCheckbox(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel) {
onSelectionPerformed(target, rowModel);
}

onSelectionPerformed(target);
@Override
protected List<O> getPreselectedObjectList(){
return getPreselectedObjects();
}

@Override
Expand Down Expand Up @@ -99,22 +101,22 @@ public boolean isVisible(){
protected abstract void initParametersPanel(Fragment parametersPanel);

protected List<O> getPreselectedObjects(){
return preSelectedObjects;
return null;
}

protected List<O> getSelectedObjectsList(){
PopupObjectListPanel objectListPanel = (PopupObjectListPanel)getObjectListPanel();
PopupObjectListPanel objectListPanel = getObjectListPanel();
if (objectListPanel == null){
return new ArrayList();
}
return objectListPanel.getSelectedObjects();
}

protected Component getObjectListPanel(){
return get(ID_OBJECT_LIST_PANEL);
protected PopupObjectListPanel getObjectListPanel(){
return (PopupObjectListPanel)get(ID_OBJECT_LIST_PANEL);
}

protected void onSelectionPerformed(AjaxRequestTarget target){}
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel){}

protected IModel<Boolean> getObjectSelectCheckBoxEnableModel(IModel<SelectableBean<O>> rowModel){
return Model.of(true);
Expand Down
Expand Up @@ -23,8 +23,8 @@
import com.evolveum.midpoint.web.component.TabbedPanel;
import com.evolveum.midpoint.web.component.dialog.Popupable;
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
Expand All @@ -34,8 +34,6 @@
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.protocol.http.ClientProperties;
import org.apache.wicket.protocol.http.WebSession;

import java.util.*;

Expand Down Expand Up @@ -123,11 +121,11 @@ protected List<ITab> createAssignmentTabs() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new FocusTypeAssignmentPopupTabPanel(panelId, ObjectTypes.ROLE){
return new FocusTypeAssignmentPopupTabPanel<RoleType>(panelId, ObjectTypes.ROLE){
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<RoleType>> rowModel){
tabLabelPanelUpdate(target);
}

Expand All @@ -152,11 +150,12 @@ public String getCount() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new FocusTypeAssignmentPopupTabPanel(panelId, ObjectTypes.ORG){
return new FocusTypeAssignmentPopupTabPanel<OrgType>(panelId, ObjectTypes.ORG){
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel){
selectedOrgsListUpdate(rowModel);
tabLabelPanelUpdate(target);
}

Expand All @@ -169,7 +168,6 @@ protected ObjectTypes getObjectType(){
protected List<OrgType> getPreselectedObjects(){
return selectedOrgsList;
}

};
}

Expand All @@ -191,7 +189,8 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onOrgTreeCheckBoxSelectionPerformed(AjaxRequestTarget target){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel){
selectedOrgsListUpdate(rowModel);
tabLabelPanelUpdate(target);
}

Expand All @@ -216,7 +215,7 @@ public String getCount() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new FocusTypeAssignmentPopupTabPanel(panelId, ObjectTypes.SERVICE){
return new FocusTypeAssignmentPopupTabPanel<ServiceType>(panelId, ObjectTypes.SERVICE){
private static final long serialVersionUID = 1L;

@Override
Expand All @@ -225,7 +224,7 @@ protected ObjectTypes getObjectType(){
}

@Override
protected void onSelectionPerformed(AjaxRequestTarget target){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<ServiceType>> rowModel){
tabLabelPanelUpdate(target);
}

Expand All @@ -250,8 +249,8 @@ public WebMarkupContainer createPanel(String panelId) {
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target){
super.onSelectionPerformed(target);
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<ResourceType>> rowModel){
super.onSelectionPerformed(target, rowModel);
tabLabelPanelUpdate(target);
}
};
Expand Down Expand Up @@ -287,6 +286,17 @@ private void tabLabelPanelUpdate(AjaxRequestTarget target){
target.add(get(ID_FORM).get(ID_ASSIGN_BUTTON));
}

private void selectedOrgsListUpdate(IModel<SelectableBean<OrgType>> rowModel){
if (rowModel == null){
return;
}
if (rowModel.getObject().isSelected()){
selectedOrgsList.add(rowModel.getObject().getValue());
} else {
selectedOrgsList.removeIf((OrgType org) -> org.getOid().equals(rowModel.getObject().getValue().getOid()));
}
}

private TabbedPanel getTabbedPanel(){
return (TabbedPanel) get(ID_FORM).get(ID_TABS_PANEL);
}
Expand All @@ -305,8 +315,8 @@ protected String load() {
}

private boolean isAssignButtonEnabled(){
TabbedPanel tabbedPanel = getTabbedPanel();
List<ITab> tabs = (List<ITab>) tabbedPanel.getTabs().getObject();
TabbedPanel<ITab> tabbedPanel = getTabbedPanel();
List<ITab> tabs = tabbedPanel.getTabs().getObject();
for (ITab tab : tabs){
WebMarkupContainer assignmentPanel = ((CountablePanelTab)tab).getPanel();
if (assignmentPanel == null){
Expand Down
Expand Up @@ -34,6 +34,7 @@
import com.evolveum.midpoint.web.component.TabbedPanel;
import com.evolveum.midpoint.web.component.dialog.Popupable;
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.wicket.Component;
Expand Down Expand Up @@ -148,11 +149,11 @@ protected List<ITab> createAssignmentTabs() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new MemberPopupTabPanel(panelId, availableRelationList){
return new MemberPopupTabPanel<UserType>(panelId, availableRelationList){
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<UserType>> rowModel){
tabLabelPanelUpdate(target);
}

Expand Down Expand Up @@ -180,11 +181,11 @@ public String getCount() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new MemberPopupTabPanel(panelId, availableRelationList){
return new MemberPopupTabPanel<RoleType>(panelId, availableRelationList){
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<RoleType>> rowModel){
tabLabelPanelUpdate(target);
}

Expand Down Expand Up @@ -213,11 +214,12 @@ public String getCount() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new MemberPopupTabPanel(panelId, availableRelationList){
return new MemberPopupTabPanel<OrgType>(panelId, availableRelationList){
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel){
selectedOrgsListUpdate(rowModel);
tabLabelPanelUpdate(target);
}

Expand Down Expand Up @@ -261,7 +263,8 @@ protected T getAbstractRoleTypeObject(){
}

@Override
protected void onOrgTreeCheckBoxSelectionPerformed(AjaxRequestTarget target){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<OrgType>> rowModel){
selectedOrgsListUpdate(rowModel);
tabLabelPanelUpdate(target);
}

Expand All @@ -285,7 +288,7 @@ public String getCount() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new MemberPopupTabPanel(panelId, availableRelationList){
return new MemberPopupTabPanel<ServiceType>(panelId, availableRelationList){
private static final long serialVersionUID = 1L;

@Override
Expand All @@ -299,7 +302,7 @@ protected ObjectTypes getObjectType(){
}

@Override
protected void onSelectionPerformed(AjaxRequestTarget target){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<ServiceType>> rowModel){
tabLabelPanelUpdate(target);
}

Expand Down Expand Up @@ -341,6 +344,17 @@ protected ObjectQuery createInOidQuery(List<ObjectType> selectedObjectsList){
return ObjectQuery.createObjectQuery(InOidFilter.createInOid(oids));
}

private void selectedOrgsListUpdate(IModel<SelectableBean<OrgType>> rowModel){
if (rowModel == null){
return;
}
if (rowModel.getObject().isSelected()){
selectedOrgsList.add(rowModel.getObject().getValue());
} else {
selectedOrgsList.removeIf((OrgType org) -> org.getOid().equals(rowModel.getObject().getValue().getOid()));
}
}

private IModel<String> getAddButtonTitleModel(){
return new LoadableModel<String>(true) {
@Override
Expand Down
Expand Up @@ -23,11 +23,13 @@
* Created by honchar
*/

import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.IModel;

import javax.xml.namespace.QName;
import java.util.List;
Expand All @@ -48,11 +50,11 @@ protected List<ITab> createAssignmentTabs() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new MultiTypesMemberPopupTabPanel(panelId, availableRelationList){
return new MultiTypesMemberPopupTabPanel<O>(panelId, availableRelationList){
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target){
protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel){
tabLabelPanelUpdate(target);
}

Expand Down
Expand Up @@ -88,7 +88,7 @@ private void initLayout() {
kindIntent.add(new VisibleBehaviour(() -> isKindIntentVisible(kindIntentLabelModel)));
add(kindIntent);

if(getModel().getObject().asPrismContainerValue().contains(ObjectType.F_DESCRIPTION)) {
if(getModel().getObject() != null && getModel().getObject().asPrismContainerValue().contains(ObjectType.F_DESCRIPTION)) {
add(new Label(ID_DESCRIPTION, new PropertyModel<String>(getModel(), ObjectType.F_DESCRIPTION.getLocalPart())));
} else {
add(new Label(ID_DESCRIPTION, Model.of("")));
Expand Down
Expand Up @@ -178,7 +178,7 @@ private ObjectListPanel<O> createObjectListPanel(ObjectTypes type, final boolean
Class typeClass = type.getClassDefinition();

PopupObjectListPanel<O> listPanel = new PopupObjectListPanel<O>(ID_TABLE, typeClass, getOptions(),
multiselect, parentPage, selectedObjectsList) {
multiselect, parentPage) {

private static final long serialVersionUID = 1L;

Expand All @@ -197,6 +197,11 @@ protected ObjectQuery addFilterToContentQuery(ObjectQuery query) {
}
return query;
}

@Override
protected List<O> getPreselectedObjectList(){
return selectedObjectsList;
}
};
listPanel.setOutputMarkupId(true);
return listPanel;
Expand Down

0 comments on commit 955e9a9

Please sign in to comment.