changeset 51:f88ed76ca757

add back noArchive
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 02 Jul 2021 00:32:31 -0600
parents 806d3297f92b
children 7df8ec497281
files src/nabble/model/UserImpl.java
diffstat 1 files changed, 24 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/nabble/model/UserImpl.java	Sun Jun 27 18:26:58 2021 -0600
+++ b/src/nabble/model/UserImpl.java	Fri Jul 02 00:32:31 2021 -0600
@@ -56,6 +56,7 @@
 	private String passwordDigest;
 	private String name;
 	private Date registered;
+	private boolean noArchive;
 	private Message signature = null;
 	private int bounces;
 
@@ -68,6 +69,7 @@
 		passwordDigest = rs.getString("password_digest");
 		name = rs.getString("name");
 		registered = DbUtils.getDate(rs,"registered");
+		noArchive = rs.getBoolean("no_archive");
 		String signatureRaw = rs.getString("signature");
 		String signatureFormatS = rs.getString("signature_format");
 		if( signatureRaw!=null && signatureFormatS!=null ) {
@@ -113,7 +115,27 @@
 	}
 
 	public boolean isDeactivated() {
-		return !isRegistered();
+		return !isRegistered() && noArchive;
+	}
+
+	private void setNoArchive(boolean noArchive) {
+		if( this.noArchive == noArchive )
+			return;
+
+		if( !db().isInTransaction() ) {
+			db().beginTransaction();
+			try {
+				UserImpl user = DbUtils.getGoodCopy(this);
+				user.setNoArchive(noArchive);
+				user.getDbRecord().update();
+				db().commitTransaction();
+				return;
+			} finally {
+				db().endTransaction();
+			}
+		}
+		this.noArchive = noArchive;
+		record.fields().put("no_archive",DbNull.fix(noArchive));
 	}
 
 	public String getEmail() {
@@ -756,6 +778,7 @@
 		db().beginTransaction();
 		try {
 			UserImpl user = DbUtils.getGoodCopy(this);
+			user.setNoArchive(true);
 			user.setRegistered(null);
 			user.setPasswordDigest(null);
 			user.record.update();