X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fruntime%2FCmsUserManagerImpl.java;h=9a05d2b59cc2a2ab27cfb8f7a7750ff78473b524;hb=382fc65f3707295c281ef5a764c6227b48fa5919;hp=06736fbeb637bb5c0680a93f7000f4a65dd37e08;hpb=3e811ede237ddd38f1565e6980fe0e6d49991fe3;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsUserManagerImpl.java b/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsUserManagerImpl.java index 06736fbeb..9a05d2b59 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsUserManagerImpl.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsUserManagerImpl.java @@ -264,6 +264,26 @@ public class CmsUserManagerImpl implements CmsUserManager { } } + @Override + public CmsGroup createGroup(String dn) { + try { + userTransaction.begin(); + CmsGroup group = (CmsGroup) userAdmin.createRole(dn, Role.GROUP); + userTransaction.commit(); + return group; + } catch (Exception e) { + try { + userTransaction.rollback(); + } catch (Exception e1) { + log.error("Could not roll back", e1); + } + if (e instanceof RuntimeException) + throw (RuntimeException) e; + else + throw new RuntimeException("Cannot create group " + dn, e); + } + } + @Override public CmsGroup getOrCreateGroup(HierarchyUnit groups, String commonName) { try { @@ -410,7 +430,25 @@ public class CmsUserManagerImpl implements CmsUserManager { if (log.isTraceEnabled()) log.trace("Cannot rollback transaction", e2); } - throw new RuntimeException("Cannot add object classes " + role + " to group " + group, e1); + throw new RuntimeException("Cannot add member " + role + " to group " + group, e1); + } + } + + @Override + public void removeMember(CmsGroup group, Role role) { + try { + userTransaction.begin(); + group.removeMember(role); + userTransaction.commit(); + } catch (Exception e1) { + try { + if (!userTransaction.isNoTransactionStatus()) + userTransaction.rollback(); + } catch (Exception e2) { + if (log.isTraceEnabled()) + log.trace("Cannot rollback transaction", e2); + } + throw new RuntimeException("Cannot remove member " + role + " from group " + group, e1); } }