# HG changeset patch
# User František Kučera <franta-hg@frantovo.cz>
# Date 1320683743 -3600
# Node ID 79ce65d63cce21fca65d778bbae1db1f3ce408d6
# Parent  4ddc1020a15433ca42b20db9bfced6aaa03b4234
ACL: uživatel v Article bude jako User ne jen jako String.

diff -r 4ddc1020a154 -r 79ce65d63cce src/org/sonews/daemon/command/PostCommand.java
--- a/src/org/sonews/daemon/command/PostCommand.java	Sun Nov 06 00:08:05 2011 +0100
+++ b/src/org/sonews/daemon/command/PostCommand.java	Mon Nov 07 17:35:43 2011 +0100
@@ -213,9 +213,7 @@
 
 	private void postArticle(NNTPConnection conn, Article article)
 			throws IOException {
-		if (conn.getUser() != null && conn.getUser().isAuthenticated()) {
-			article.setAuthenticatedUser(conn.getUser().getUserName());
-		}
+		article.setUser(conn.getUser());
 
 		if (article.getHeader(Headers.CONTROL)[0].length() > 0) {
 			controlMessage(conn, article);
diff -r 4ddc1020a154 -r 79ce65d63cce src/org/sonews/storage/Article.java
--- a/src/org/sonews/storage/Article.java	Sun Nov 06 00:08:05 2011 +0100
+++ b/src/org/sonews/storage/Article.java	Mon Nov 07 17:35:43 2011 +0100
@@ -31,6 +31,7 @@
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetHeaders;
+import org.sonews.acl.User;
 import org.sonews.config.Config;
 import org.sonews.util.Log;
 
@@ -42,7 +43,7 @@
  */
 public class Article extends ArticleHead {
 	
-	private String authenticatedUser;
+	private User sender;
 
 	/**
 	 * Loads the Article identified by the given ID from the JDBCDatabase.
@@ -224,17 +225,17 @@
 	}
 
 	/**
-	 * @return username of currently logged user – or null, if user is not authenticated.
+	 * @return sender – currently logged user – or null, if user is not authenticated.
 	 */
-	public String getAuthenticatedUser() {
-		return authenticatedUser;
+	public User getUser() {
+		return sender;
 	}
 	
 	/**
 	 * This method is to be called from POST Command implementation.
-	 * @param authenticatedUser current username – or null, if user is not authenticated.
+	 * @param sender current username – or null, if user is not authenticated.
 	 */
-	public void setAuthenticatedUser(String authenticatedUser) {
-		this.authenticatedUser = authenticatedUser;
+	public void setUser(User sender) {
+		this.sender = sender;
 	}
 }
diff -r 4ddc1020a154 -r 79ce65d63cce src/org/sonews/storage/impl/DrupalDatabase.java
--- a/src/org/sonews/storage/impl/DrupalDatabase.java	Sun Nov 06 00:08:05 2011 +0100
+++ b/src/org/sonews/storage/impl/DrupalDatabase.java	Mon Nov 07 17:35:43 2011 +0100
@@ -401,10 +401,8 @@
 	 */
 	@Override
 	public void addArticle(Article article) throws StorageBackendException {
-		if (article.getAuthenticatedUser() == null) {
-			log.log(Level.SEVERE, "User was not authenticated, so his article was rejected.");
-			throw new StorageBackendException("User must be authenticated to post articles");
-		} else {
+		if (article.getUser() != null && article.getUser().isAuthenticated()) {
+			
 			try {
 				DrupalMessage m = new DrupalMessage(article);
 
@@ -426,12 +424,16 @@
 						}
 					}
 
-					insertArticle(article.getAuthenticatedUser(), subject, text, parentID, groupID);
-					log.log(Level.INFO, "User ''{0}'' has posted an article", article.getAuthenticatedUser());
+					insertArticle(article.getUser().getUserName(), subject, text, parentID, groupID);
+					log.log(Level.INFO, "User ''{0}'' has posted an article", article.getUser().getUserName());
 				}
 			} catch (Exception e) {
 				throw new StorageBackendException(e);
 			}
+			
+		} else {
+			log.log(Level.SEVERE, "User was not authenticated, so his article was rejected.");
+			throw new StorageBackendException("User must be authenticated to post articles");
 		}
 	}