From 5d7d6ba07e32cba6bff4ed6a1a0504ef34a28350 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 23 Feb 2008 20:25:56 +0000
Subject: [PATCH] Enforce "Read Requirements" for newsgroups - it should be
 pointed out that using read requriements, rather than *access* requirements,
 does not prevent a user from *posting* messages on that message area.

---
 exec/nntpservice.js | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/exec/nntpservice.js b/exec/nntpservice.js
index b9ffba4e91..80d2626a54 100644
--- a/exec/nntpservice.js
+++ b/exec/nntpservice.js
@@ -400,6 +400,10 @@ while(client.socket.is_connected && !quit) {
 				writeln("412 no newsgroup selected");
 				break;
 			}
+			if(!selected.can_read) {
+				writeln("412 read permission to newsgroup denied");
+				break;
+			}
 			var first, last;
 			if(cmd[1]==undefined || cmd[1].length==0)
 				first=last=current_article;
@@ -441,6 +445,10 @@ while(client.socket.is_connected && !quit) {
 				writeln("412 no newsgroup selected");
 				break;
 			}
+			if(!selected.can_read) {
+				writeln("412 read permission to newsgroup denied");
+				break;
+			}
 			writeln("221 Header follows");
 			var first, last;
 			if(cmd[2].indexOf('-')>=0)	{ /* range */
@@ -518,6 +526,10 @@ while(client.socket.is_connected && !quit) {
 				bogus_cmd_counter++;
 				break;
 			}
+			if(!selected.can_read) {
+				writeln("412 read permission to newsgroup denied");
+				break;
+			}
 			if(cmd[1]==undefined || cmd[1].length==0) {
 				writeln("420 no current article has been selected");
 				bogus_cmd_counter++;
-- 
GitLab