import static org.argeo.eclipse.ui.EclipseUiUtils.isEmpty;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
import org.argeo.api.acr.Content;
+import org.argeo.api.acr.ldap.LdapAttr;
+import org.argeo.api.acr.ldap.LdapObj;
+import org.argeo.api.cms.directory.CmsGroup;
import org.argeo.api.cms.directory.CmsUserManager;
-import org.argeo.app.ui.SuiteMsg;
-import org.argeo.app.ui.SuiteUiUtils;
+import org.argeo.api.cms.directory.HierarchyUnit;
+import org.argeo.app.swt.ux.SuiteSwtUtils;
+import org.argeo.app.ux.SuiteMsg;
+import org.argeo.cms.swt.dialogs.CmsFeedback;
import org.argeo.cms.swt.widgets.SwtGuidedFormPage;
import org.argeo.cms.ux.widgets.AbstractGuidedForm;
+import org.argeo.eclipse.ui.EclipseUiUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
private Content hierarchyUnit;
private CmsUserManager cmsUserManager;
- protected Text firstNameT;
+ protected Text orgNameT;
public NewOrgForm(CmsUserManager cmsUserManager, Content hierarchyUnit) {
this.hierarchyUnit = hierarchyUnit;
setFormTitle(SuiteMsg.orgWizardWindowTitle.lead());
}
- /**
- * Called when the user click on 'Finish' in the wizard. The task is then
- * created and the corresponding session saved.
- */
@Override
public boolean performFinish() {
- return false;
+ String orgName = orgNameT.getText();
+ if (EclipseUiUtils.isEmpty(orgName)) {
+ CmsFeedback.show(SuiteMsg.allFieldsMustBeSet.lead());
+ return false;
+ } else {
+ HierarchyUnit hu = hierarchyUnit.adapt(HierarchyUnit.class);
+ String dn = "cn=" + orgName + ",ou=Groups," + hu.getBase();
+
+ CmsGroup user = cmsUserManager.createGroup(dn);
+
+ Map<String, Object> additionalProperties = new HashMap<>();
+ additionalProperties.put(LdapAttr.o.name(), orgName);
+
+ Set<String> objectClasses = new HashSet<>();
+ objectClasses.add(LdapObj.organization.name());
+ cmsUserManager.addObjectClasses(user, objectClasses, additionalProperties);
+ return true;
+ }
}
@Override
@Override
public boolean canFinish() {
- String firstName = firstNameT.getText();
+ String firstName = orgNameT.getText();
if (isEmpty(firstName)) {
return false;
} else
parent.setLayout(new GridLayout(2, false));
// FirstName
- SuiteUiUtils.createBoldLabel(parent, SuiteMsg.org);
- firstNameT = new Text(parent, SWT.BORDER);
+ SuiteSwtUtils.createBoldLabel(parent, SuiteMsg.org);
+ orgNameT = new Text(parent, SWT.BORDER);
// firstNameTxt.setMessage("a first name");
- firstNameT.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ orgNameT.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
ModifyListener ml = new ModifyListener() {
private static final long serialVersionUID = 1939491923843870844L;
}
};
- firstNameT.addModifyListener(ml);
+ orgNameT.addModifyListener(ml);
- firstNameT.setFocus();
+ orgNameT.setFocus();
}
}
}