Weiterleitung von Gast-Mails an Moderatoren bei moderierten Listen implementiert. Behebt Issue #1
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -322,6 +322,7 @@ public class ListMember {
|
|||||||
* @throws SQLException
|
* @throws SQLException
|
||||||
*/
|
*/
|
||||||
public static ListMember load(MailingList list,User user) throws SQLException {
|
public static ListMember load(MailingList list,User user) throws SQLException {
|
||||||
|
if (list == null || user == null) return null;
|
||||||
var rs = Database
|
var rs = Database
|
||||||
.open()
|
.open()
|
||||||
.select(TABLE_NAME)
|
.select(TABLE_NAME)
|
||||||
|
|||||||
@@ -432,30 +432,22 @@ public class MailingList implements MessageHandler, ProblemListener {
|
|||||||
var senderEmail = internetAddress.getAddress();
|
var senderEmail = internetAddress.getAddress();
|
||||||
|
|
||||||
var user = User.load(senderEmail);
|
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);
|
var member = ListMember.load(this, user);
|
||||||
if (member == null || member.isAwaiting()) { // no subscription
|
if (member == null || member.isAwaiting()) { // no subscription
|
||||||
if (this.isOpenForGuests()) {
|
if (this.isOpenForGuests()) {
|
||||||
forward(message,subscribers());
|
forward(message, subscribers());
|
||||||
} else {
|
} else if (this.isOpenForSubscribers()){
|
||||||
retainMessage(message);
|
retainMessage(message);
|
||||||
sentRetentionNotification(senderEmail);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// at this point the member is at least a subscriber!
|
// at this point the member is at least a subscriber!
|
||||||
|
|
||||||
if (member.isModerator() || this.isOpenForSubscribers()) {
|
if (member.isModerator() || this.isOpenForSubscribers()) {
|
||||||
forward(message,subscribers());
|
forward(message,subscribers());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user