diff --git a/pom.xml b/pom.xml index 4378796..5157743 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.example Widerhall - 0.2.60 + 0.2.61 diff --git a/src/main/java/de/srsoftware/widerhall/data/ListMember.java b/src/main/java/de/srsoftware/widerhall/data/ListMember.java index 5ca825c..ece661d 100644 --- a/src/main/java/de/srsoftware/widerhall/data/ListMember.java +++ b/src/main/java/de/srsoftware/widerhall/data/ListMember.java @@ -69,9 +69,9 @@ public class ListMember { } try { if (member == null) { - ListMember.create(list, moderator, ListMember.STATE_MODERATOR); + ListMember.create(list, moderator, STATE_MODERATOR); } else { - member.setState((member.state | STATE_MODERATOR) ^ STATE_AWAITING_CONFIRMATION); + member.setState(Util.unset(member.state|STATE_MODERATOR,STATE_AWAITING_CONFIRMATION)); } } catch (SQLException e) { LOG.warn("Ernennen von {} zum Moderator von {} fehlgeschlagen",moderator.email(),list.email(),e); @@ -212,7 +212,7 @@ public class ListMember { if (member == null) { ListMember.create(list, moderator, ListMember.STATE_SUBSCRIBER); } else { - member.setState(ListMember.STATE_SUBSCRIBER); + member.setState(Util.unset(member.state,STATE_MODERATOR)); } } catch (SQLException e) { LOG.warn("Ernennen von {} zum normalen Abonnenten von {} fehlgeschlagen",moderator.email(),list.email(),e); diff --git a/src/main/java/de/srsoftware/widerhall/data/User.java b/src/main/java/de/srsoftware/widerhall/data/User.java index a531b81..3c60b18 100644 --- a/src/main/java/de/srsoftware/widerhall/data/User.java +++ b/src/main/java/de/srsoftware/widerhall/data/User.java @@ -175,6 +175,7 @@ public class User { if (emails != null) query.where(EMAIL,emails); var rs = query.compile().exec(); while (rs.next()) userList.add(User.from(rs)); + Collections.sort(userList,(u1,u2)->u1.name.compareTo(u2.name)); return userList; } diff --git a/src/main/java/de/srsoftware/widerhall/web/Rest.java b/src/main/java/de/srsoftware/widerhall/web/Rest.java index a7e91fb..f7b1753 100644 --- a/src/main/java/de/srsoftware/widerhall/web/Rest.java +++ b/src/main/java/de/srsoftware/widerhall/web/Rest.java @@ -167,7 +167,7 @@ public class Rest extends HttpServlet { } break; case LIST_MODERATED: - json.put("lists", MailingList.moderatedBy(user).stream().map(MailingList::safeMap).toList()); + json.put("lists", MailingList.moderatedBy(user).stream().sorted((l1,l2)->l1.name().compareTo(l2.name())).map(MailingList::safeMap).toList()); break; case LIST_SUBSCRIBABLE: json.put("lists", MailingList.subscribable(user).stream().map(MailingList::minimalMap).toList()); @@ -348,6 +348,7 @@ public class Rest extends HttpServlet { if (!list.membersMayBeListedBy(user)) Map.of(ERROR,t("Es ist dir nicht gestattet, die Mitglieder von '{}' aufzulisten",list.email())); try { var members = list.members() + .sorted((m1,m2)->m1.user().name().compareTo(m2.user().name())) .map(ListMember::safeMap) .toList(); return Map.of(MEMBERS,members,LIST,list.minimalMap());