Skip to content
This repository has been archived by the owner on Mar 15, 2022. It is now read-only.

Fix form submission of ldap-realm related to "search-recursive" attribute and disable tablebuttons #427

Merged
merged 1 commit into from
May 23, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ public class AuthenticationContextMatchRulesEditor implements IsWidget {
private ModelNodeForm matchRulesForm;
private VerticalPanel popupLayout = new VerticalPanel();
private DefaultWindow matchRulesWindow;
private ToolButton addButton;
private ToolButton removeButton;

// button to hide the match-rules detail window
// the cancel button is not displayed
Expand Down Expand Up @@ -194,7 +196,8 @@ public ModelNode getValue(ModelNode node) {

private ToolStrip mainTableTools() {
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand Down Expand Up @@ -259,7 +262,8 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {

removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("Match Rule", Console.MESSAGES.deleteConfirm("Match Rule " + selection.asString()),
Expand Down Expand Up @@ -294,6 +298,15 @@ private void showDetailModal(final ModelNode selection) {

public void update(Property prop) {
authContextName = prop.getName();

if (prop != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

if (prop.getValue().hasDefined(MATCH_RULES)) {
List<ModelNode> models = prop.getValue().get(MATCH_RULES).asList();
table.setRowCount(models.size(), true);
Expand All @@ -302,13 +315,15 @@ public void update(Property prop) {
dataList.clear();
dataList.addAll(models);
} else {
clearValues();
dataProvider.setList(new ArrayList<>());
}
selectionModel.clear();
}

public void clearValues() {
dataProvider.setList(new ArrayList<>());
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

protected <T> FormItem<T> formItem(List<FormItem> formItems, String name) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ public class IdentityAttributeMappingView implements IsWidget {
private SecurityContext securityContext;
private Dispatcher circuit;
private String ldapRealmName;
private ToolButton addButton;
private ToolButton removeButton;

IdentityAttributeMappingView(final Dispatcher circuit, ResourceDescription resourceDescription,
SecurityContext securityContext) {
Expand Down Expand Up @@ -136,7 +138,8 @@ public String getValue(ModelNode node) {

private ToolStrip mainTableTools() {
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand All @@ -153,6 +156,13 @@ private ToolStrip mainTableTools() {
AddResourceDialog.Callback callback = new AddResourceDialog.Callback() {
@Override
public void onAdd(ModelNode payload) {
// search-recursive is a boolean and requires filter attribute
// even if the user doesn't set search-recursive, it is set in the payload as false
// and if the user doesn't set filter also, the server will throw an error not allowing
// to write search-recursive as it requires filter
if (payload.hasDefined("search-recursive") && !payload.get("search-recursive").asBoolean()) {
payload.remove("search-recursive");
}
circuit.dispatch(new AddListAttribute(ElytronStore.LDAP_REALM_ADDRESS,
"identity-mapping.attribute-mapping",
ldapRealmName,
Expand All @@ -172,7 +182,8 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {

removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("New Attribute Mapping", Console.MESSAGES.deleteConfirm("New Attribute Mapping"
Expand All @@ -190,19 +201,31 @@ public void onCancel() {
});
tools.addToolButtonRight(addButton);
tools.addToolButtonRight(removeButton);
addButton.setEnabled(false);
removeButton.setEnabled(false);
return tools;
}


public void update(Property ldapRealmProperty) {
ldapRealmName = ldapRealmProperty.getName();

if (ldapRealmProperty != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

if (ldapRealmProperty.getValue().get("identity-mapping").hasDefined("attribute-mapping")) {
List<ModelNode> models = ldapRealmProperty.getValue().get("identity-mapping").get("attribute-mapping")
.asList();
table.setRowCount(models.size(), true);
List<ModelNode> dataList = dataProvider.getList();
dataList.clear();
dataList.addAll(models);

} else {
dataProvider.setList(new ArrayList<>());
}
Expand All @@ -211,5 +234,7 @@ public void update(Property ldapRealmProperty) {

public void clearValues() {
dataProvider.setList(new ArrayList<>());
addButton.setEnabled(false);
removeButton.setEnabled(false);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ public class JdbcRealmPrincipalsQueryView implements IsWidget {
private ResourceDescription resourceDescription;
private SecurityContext securityContext;
private String jdbcRealmName;
private ToolButton addButton;
private ToolButton removeButton;

JdbcRealmPrincipalsQueryView(final Dispatcher circuit, ResourceDescription resourceDescription,
SecurityContext securityContext) {
Expand Down Expand Up @@ -127,7 +129,8 @@ public String getValue(ModelNode node) {

private ToolStrip setupTableButtons() {
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand Down Expand Up @@ -163,7 +166,8 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {

removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("Principal Query", Console.MESSAGES.deleteConfirm("Principal Query " + selection.get("sql").asString()),
Expand All @@ -186,6 +190,15 @@ public void onCancel() {

public void update(Property prop) {
jdbcRealmName = prop.getName();

if (prop != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

List<ModelNode> aliases = prop.getValue().get("principal-query").asList();
table.setRowCount(aliases.size(), true);
List<ModelNode> dataList = dataProvider.getList();
Expand All @@ -195,6 +208,8 @@ public void update(Property prop) {

public void clearValues() {
dataProvider.setList(new ArrayList<>());
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
import org.jboss.as.console.mbui.widgets.ModelNodeFormBuilder;
import org.jboss.ballroom.client.rbac.SecurityContext;
import org.jboss.ballroom.client.widgets.forms.FormCallback;
import org.jboss.ballroom.client.widgets.forms.FormItem;
import org.jboss.ballroom.client.widgets.tables.DefaultCellTable;
import org.jboss.ballroom.client.widgets.tables.DefaultPager;
import org.jboss.ballroom.client.widgets.tools.ToolButton;
Expand Down Expand Up @@ -306,15 +305,4 @@ protected void update(final List<Property> models) {
SelectionChangeEvent.fire(selectionModel);
}

private <T> FormItem<T> findFormItem(List<FormItem> formItems, String name) {
FormItem selectedFormItem = null;
for (FormItem formItem : formItems) {
if (name.equals(formItem.getName())) {
selectedFormItem = formItem;
break;
}
}
return selectedFormItem;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ public class NewIdentityAttributesView implements IsWidget {
private ResourceDescription resourceDescription;
private SecurityContext securityContext;
private String ldapRealmName;
private ToolButton addButton;
private ToolButton removeButton;

NewIdentityAttributesView(final Dispatcher circuit, ResourceDescription resourceDescription,
SecurityContext securityContext) {
Expand Down Expand Up @@ -138,7 +140,8 @@ public String getValue(ModelNode node) {

private ToolStrip mainTableTools() {
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand Down Expand Up @@ -171,7 +174,8 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {

removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("New Identity Attribute", Console.MESSAGES.deleteConfirm("New Identity Attribute " + selection.asString()),
Expand All @@ -193,6 +197,15 @@ public void onCancel() {

public void update(Property ldapRealmProperty) {
ldapRealmName = ldapRealmProperty.getName();

if (ldapRealmProperty != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

if (ldapRealmProperty.getValue().get("identity-mapping").hasDefined("new-identity-attributes")) {
// wrap in a new list as later the list will change as a result of sort operation
List<ModelNode> models = new ArrayList<>(ldapRealmProperty.getValue().get("identity-mapping").get("new-identity-attributes").asList());
Expand All @@ -214,6 +227,8 @@ public void update(Property ldapRealmProperty) {

public void clearValues() {
dataProvider.setList(new ArrayList<>());
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ public class ConfigurableHttpServerMechanismFactoryFilterEditor implements IsWid
private ResourceDescription resourceDescription;
private SecurityContext securityContext;
private String factoryName;
private ToolButton addButton;
private ToolButton removeButton;

ConfigurableHttpServerMechanismFactoryFilterEditor(final Dispatcher circuit, ResourceDescription resourceDescription,
SecurityContext securityContext) {
Expand Down Expand Up @@ -114,7 +116,8 @@ public String getValue(ModelNode property) {

// tools
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand Down Expand Up @@ -147,7 +150,8 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {

removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("Filter", Console.MESSAGES.deleteConfirm("Filter " + selection.get("pattern-filter").asString()),
Expand All @@ -162,6 +166,10 @@ public void onCancel() {
});
}
});

addButton.setEnabled(false);
removeButton.setEnabled(false);

tools.addToolButtonRight(addButton);
tools.addToolButtonRight(removeButton);
panel.add(tools);
Expand All @@ -175,6 +183,15 @@ public void onCancel() {

public void update(Property prop) {
factoryName = prop.getName();

if (prop != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

if (prop.getValue().hasDefined("filters")) {
List<ModelNode> models = prop.getValue().get("filters").asList();
table.setRowCount(models.size(), true);
Expand All @@ -183,7 +200,7 @@ public void update(Property prop) {
dataList.clear(); // cannot call setList() as that breaks the sort handler
dataList.addAll(models);
} else {
clearValues();
dataProvider.setList(new ArrayList<>());
}

// Make sure the new values are properly sorted
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ public class ConfigurableSaslServerFactoryFilterEditor implements IsWidget {
private ResourceDescription resourceDescription;
private SecurityContext securityContext;
private String factoryName;
private ToolButton addButton;
private ToolButton removeButton;

ConfigurableSaslServerFactoryFilterEditor(final Dispatcher circuit, ResourceDescription resourceDescription,
SecurityContext securityContext) {
Expand Down Expand Up @@ -118,7 +120,7 @@ public String getValue(ModelNode property) {

// tools
ToolStrip tools = new ToolStrip();
ToolButton addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {
addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> {

ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder()
.setResourceDescription(resourceDescription)
Expand Down Expand Up @@ -170,7 +172,7 @@ public void onCancel() {
dialog.setGlassEnabled(true);
dialog.center();
});
ToolButton removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
removeButton = new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
final ModelNode selection = selectionModel.getSelectedObject();
if (selection != null) {
Feedback.confirm("Filter", Console.MESSAGES.deleteConfirm("filter "
Expand All @@ -186,6 +188,10 @@ public void onCancel() {
});
}
});

addButton.setEnabled(false);
removeButton.setEnabled(false);

tools.addToolButtonRight(addButton);
tools.addToolButtonRight(removeButton);
panel.add(tools);
Expand All @@ -210,6 +216,15 @@ private <T> FormItem<T> formItem(List<FormItem> formItems, String name) {

public void update(Property prop) {
factoryName = prop.getName();

if (prop != null) {
addButton.setEnabled(true);
removeButton.setEnabled(true);
} else {
addButton.setEnabled(false);
removeButton.setEnabled(false);
}

if (prop.getValue().hasDefined(FILTERS)) {
List<ModelNode> models = prop.getValue().get(FILTERS).asList();
table.setRowCount(models.size(), true);
Expand Down