|
|
|
@ -432,30 +432,22 @@ public class MailingList implements MessageHandler, ProblemListener {
@@ -432,30 +432,22 @@ public class MailingList implements MessageHandler, ProblemListener {
|
|
|
|
|
var senderEmail = internetAddress.getAddress(); |
|
|
|
|
|
|
|
|
|
var user = User.load(senderEmail); |
|
|
|
|
if (user == null) { // no subscription
|
|
|
|
|
if (this.isOpenForGuests()) { |
|
|
|
|
forward(message,subscribers()); |
|
|
|
|
} else { |
|
|
|
|
retainMessage(message); |
|
|
|
|
sentRetentionNotification(senderEmail); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var member = ListMember.load(this, user); |
|
|
|
|
if (member == null || member.isAwaiting()) { // no subscription
|
|
|
|
|
if (this.isOpenForGuests()) { |
|
|
|
|
forward(message,subscribers()); |
|
|
|
|
} else { |
|
|
|
|
forward(message, subscribers()); |
|
|
|
|
} else if (this.isOpenForSubscribers()){ |
|
|
|
|
retainMessage(message); |
|
|
|
|
sentRetentionNotification(senderEmail); |
|
|
|
|
} else { |
|
|
|
|
// at this point, the message is from a non-member and the list
|
|
|
|
|
// is only open to moderators. → forward to moderators
|
|
|
|
|
forward(message, moderators()); |
|
|
|
|
} |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// at this point the member is at least a subscriber!
|
|
|
|
|
|
|
|
|
|
if (member.isModerator() || this.isOpenForSubscribers()) { |
|
|
|
|
forward(message,subscribers()); |
|
|
|
|
} else { |
|
|
|
|