X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=swt%2Forg.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2Fpeople%2FPersonUiProvider.java;h=c0adcf5582373f3765d6479293d43ee85f3e8fe5;hb=3197ec58385951957c237fd6c147670cca89123c;hp=f5f2610d888d1c84a5b94a330126bd81b1721e69;hpb=8339c61fea89f948b129a24834a53c7988c42df5;p=gpl%2Fargeo-suite.git diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java index f5f2610..c0adcf5 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/people/PersonUiProvider.java @@ -8,17 +8,17 @@ import org.argeo.api.acr.Content; import org.argeo.api.acr.QNamed; import org.argeo.api.acr.ldap.LdapAttrs; import org.argeo.api.acr.ldap.LdapObjs; +import org.argeo.api.cms.directory.CmsUserManager; import org.argeo.app.api.SuiteRole; import org.argeo.app.ui.SuiteMsg; import org.argeo.app.ui.SuiteStyle; import org.argeo.app.ui.SuiteUiUtils; import org.argeo.cms.CmsMsg; -import org.argeo.cms.CmsUserManager; +import org.argeo.cms.CurrentUser; import org.argeo.cms.Localized; import org.argeo.cms.RoleNameUtils; import org.argeo.cms.SystemRole; import org.argeo.cms.auth.CmsRole; -import org.argeo.cms.auth.CurrentUser; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.Selected; import org.argeo.cms.swt.acr.SwtSection; @@ -167,11 +167,16 @@ public class PersonUiProvider implements SwtUiProvider { } } - if (systemRole.equals(CmsRole.userAdmin)) - radio.setEnabled(CurrentUser.implies(CmsRole.groupAdmin, roleContext)); - else + if (systemRole.equals(CmsRole.userAdmin)) { + if (!CurrentUser.isUserContext(roleContext) && CurrentUser.implies(CmsRole.userAdmin, roleContext)) { + // a user admin cannot modify the user admins of their own context + radio.setEnabled(true); + } else { + radio.setEnabled(false); + } + } else { radio.setEnabled(CurrentUser.implies(CmsRole.userAdmin, roleContext)); - + } new Label(parent, 0).setText(msg.lead()); }