X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2Fpeople%2FPeopleEntryArea.java;h=789698bcf21f4904a5217244478be393cf432a86;hb=f1b87af2e0de38f1f49ab8fe68f9988018914811;hp=6a23c04d3c9bc0111ce7291480930fa166f56b72;hpb=e7e520aeec2aad034b86789f1bc1b14beba51060;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java b/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java index 6a23c04..789698b 100644 --- a/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java +++ b/org.argeo.app.ui/src/org/argeo/app/ui/people/PeopleEntryArea.java @@ -13,24 +13,24 @@ import org.argeo.api.cms.ux.CmsIcon; import org.argeo.api.cms.ux.CmsView; import org.argeo.app.ui.SuiteEvent; import org.argeo.app.ui.SuiteIcon; -import org.argeo.app.ui.dialogs.NewUserWizard; import org.argeo.cms.CmsUserManager; import org.argeo.cms.acr.ContentUtils; import org.argeo.cms.auth.CmsRole; import org.argeo.cms.auth.CurrentUser; import org.argeo.cms.auth.UserAdminUtils; import org.argeo.cms.jcr.acr.JcrContent; -import org.argeo.cms.jface.dialog.CmsWizardDialog; import org.argeo.cms.swt.CmsSwtTheme; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.Selected; import org.argeo.cms.swt.acr.SwtUiProvider; +import org.argeo.cms.swt.widgets.SwtGuidedFormDialog; import org.argeo.cms.swt.widgets.SwtTableView; import org.argeo.cms.swt.widgets.SwtTreeView; import org.argeo.cms.ui.CmsUiProvider; import org.argeo.cms.ux.widgets.AbstractHierarchicalPart; import org.argeo.cms.ux.widgets.Column; import org.argeo.cms.ux.widgets.DefaultTabularPart; +import org.argeo.cms.ux.widgets.GuidedForm; import org.argeo.cms.ux.widgets.HierarchicalPart; import org.argeo.osgi.useradmin.UserDirectory; import org.argeo.util.directory.HierarchyUnit; @@ -38,7 +38,6 @@ import org.argeo.util.directory.ldap.IpaUtils; import org.argeo.util.naming.LdapAttrs; import org.argeo.util.naming.LdapObjs; import org.eclipse.jface.window.Window; -import org.eclipse.jface.wizard.Wizard; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.GridData; @@ -85,11 +84,14 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider { List visible = new ArrayList<>(); if (parent != null) { for (HierarchyUnit hu : parent.getDirectHierarchyUnits(true)) { - if (CurrentUser.implies(CmsRole.userAdmin, hu.getBase()) // - ) // IPA - { - visible.add(hu); - } + // if parent was visible, it is visible + // TODO restrict more? + +// if (CurrentUser.implies(CmsRole.userAdmin, hu.getBase()) // +// ) // IPA +// { + visible.add(hu); +// } } } else { for (UserDirectory directory : cmsUserManager.getUserDirectories()) { @@ -97,8 +99,10 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider { || CurrentUser.implies(CmsRole.userAdmin, IpaUtils.IPA_ACCOUNTS_RDN + "," + directory.getBase())) // IPA { - // we do not show the base level - for (HierarchyUnit hu : directory.getDirectHierarchyUnits(true)) { + // TODO show base level + } + for (HierarchyUnit hu : directory.getDirectHierarchyUnits(true)) { + if (CurrentUser.implies(CmsRole.userAdmin, hu.getBase())) { visible.add(hu); } } @@ -110,7 +114,7 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider { @Override public String getText(HierarchyUnit model) { - return model.getHierarchyUnitName(); + return model.getHierarchyUnitLabel(CurrentUser.locale()); } @Override @@ -119,9 +123,9 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider { if (content.hasContentClass(LdapObjs.organization.qName())) return SuiteIcon.organisation; else if (content.hasContentClass(LdapObjs.posixGroup.qName())) - return SuiteIcon.group; + return SuiteIcon.users; else - return SuiteIcon.people; + return SuiteIcon.addressBook; } }; @@ -178,7 +182,7 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider { else if (role.isContentClass(LdapObjs.inetOrgPerson.qName())) return SuiteIcon.person; else if (role.isContentClass(LdapObjs.organization.qName())) - return SuiteIcon.organisation; + return SuiteIcon.organisationContact; else if (role.isContentClass(LdapObjs.groupOfNames.qName())) return SuiteIcon.group; else @@ -238,9 +242,10 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider { }); addItem.addSelectionListener((Selected) (e) -> { - // SuiteUtils.getOrCreateUserNode(adminSession, userDn); - Wizard wizard = new NewUserWizard(null); - CmsWizardDialog dialog = new CmsWizardDialog(parent.getShell(), wizard); + HierarchyUnit hierarchyUnit = usersPart.getInput(); + Content huContent = ContentUtils.hierarchyUnitToContent(contentSession, hierarchyUnit); + GuidedForm wizard = new NewUserForm(cmsUserManager, huContent); + SwtGuidedFormDialog dialog = new SwtGuidedFormDialog(parent.getShell(), wizard); // WizardDialog dialog = new WizardDialog(shell, wizard); if (dialog.open() == Window.OK) { // TODO create