code: public CmsGroup createGroup(CmsRequestContext context, String name, String description, int flags, String parent)
      throws CmsException, CmsRoleViolationException {
  
          CmsDbContext dbc = m_dbContextFactory.getDbContext(context);
  
          CmsGroup result = null;
          try {
              checkRole(dbc, CmsRole.ACCOUNT_MANAGER.forOrgUnit(getParentOrganizationalUnit(name)));
              result = m_driverManager.createGroup(dbc, new CmsUUID(), name, description, flags, parent);
          } catch (Exception e) {
              dbc.report(null, Messages.get().container(Messages.ERR_CREATE_GROUP_1, name), e);
          } finally {
              dbc.clear();
          }
          return result;
      }
docs: Creates a new user group.<p>
  
  @param context the current request context
  @param name the name of the new group
  @param description the description for the new group
  @param flags the flags for the new group
  @param parent the name of the parent group (or <code>null</code>)
  
  @return a <code>{@link CmsGroup}</code> object representing the newly created group
  
  @throws CmsException if operation was not successful.
  @throws CmsRoleViolationException if the  role {@link CmsRole#ACCOUNT_MANAGER} is not owned by the current user