X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=swt%2Forg.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2Fpeople%2FNewOrgForm.java;h=e39ba0a5e13901c1fd412ea42514bfbe0feedeef;hb=c27f28501458ac3be0bc85a78116d136569f148c;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..e39ba0a 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.api.cms.directory.HierarchyUnit; import org.argeo.app.ui.SuiteMsg; import org.argeo.app.ui.SuiteUiUtils; +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