X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=swt%2Forg.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2Fpeople%2FNewOrgForm.java;h=2b7dc60cdfdc634653adba8ed26a752106dc3012;hb=3757251d0be9b74dda727c51df355be9d7cbb3bf;hp=a9800e696bae1d1d64079fafb0222174fd82e1de;hpb=bb0d8f19da5caff8bad3986e17cdff4cb5dcd236;p=gpl%2Fargeo-suite.git diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/NewOrgForm.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/NewOrgForm.java index a9800e6..2b7dc60 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/NewOrgForm.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/NewOrgForm.java @@ -2,12 +2,23 @@ package org.argeo.app.ui.people; 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; @@ -39,13 +50,26 @@ public class NewOrgForm extends AbstractGuidedForm { 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 additionalProperties = new HashMap<>(); + additionalProperties.put(LdapAttr.o.name(), orgName); + + Set objectClasses = new HashSet<>(); + objectClasses.add(LdapObj.organization.name()); + cmsUserManager.addObjectClasses(user, objectClasses, additionalProperties); + return true; + } } @Override @@ -73,7 +97,7 @@ public class NewOrgForm extends AbstractGuidedForm { parent.setLayout(new GridLayout(2, false)); // FirstName - SuiteUiUtils.createBoldLabel(parent, SuiteMsg.org); + SuiteSwtUtils.createBoldLabel(parent, SuiteMsg.org); orgNameT = new Text(parent, SWT.BORDER); // firstNameTxt.setMessage("a first name"); orgNameT.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));