From 966e1d8cd9e7f0e691851bd5336fb8a1a23ec94b Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 23 Aug 2016 11:22:33 +0200
Subject: [PATCH] OO-2156: fix missing last modified of access control methods

---
 .../resource/accesscontrol/manager/ACMethodDAO.java    | 10 ++++++++--
 .../provider/paypal/manager/PaypalManagerImpl.java     |  2 ++
 .../database/mysql/alter_10_5_4_to_10_5_5.sql          |  5 ++++-
 .../database/oracle/alter_10_5_4_to_10_5_5.sql         |  3 +++
 .../database/postgresql/alter_10_5_4_to_10_5_5.sql     |  2 ++
 5 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodDAO.java b/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodDAO.java
index e58a5a34223..cb33dfb6b83 100644
--- a/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodDAO.java
+++ b/src/main/java/org/olat/resource/accesscontrol/manager/ACMethodDAO.java
@@ -333,7 +333,10 @@ public class ACMethodDAO implements GenericEventListener {
 				.createQuery(sb.toString(), AccessMethod.class)
 				.getResultList();
 		if(methods.isEmpty() && enable) {
-			dbInstance.saveObject(new TokenAccessMethod());
+			TokenAccessMethod method = new TokenAccessMethod();
+			method.setCreationDate(new Date());
+			method.setLastModified(method.getCreationDate());
+			dbInstance.saveObject(method);
 		} else {
 			for(AccessMethod method:methods) {
 				if(method.isEnabled() != enable) {
@@ -352,7 +355,10 @@ public class ACMethodDAO implements GenericEventListener {
 		TypedQuery<AccessMethod> query = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), AccessMethod.class);
 		List<AccessMethod> methods = query.getResultList();
 		if(methods.isEmpty() && enable) {
-			dbInstance.saveObject(new FreeAccessMethod());
+			FreeAccessMethod method = new FreeAccessMethod();
+			method.setCreationDate(new Date());
+			method.setLastModified(method.getCreationDate());
+			dbInstance.saveObject(method);
 		} else {
 			for(AccessMethod method:methods) {
 				if(method.isEnabled() != enable) {
diff --git a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/manager/PaypalManagerImpl.java b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/manager/PaypalManagerImpl.java
index 1798334db5a..663aec3510f 100644
--- a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/manager/PaypalManagerImpl.java
+++ b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/manager/PaypalManagerImpl.java
@@ -205,6 +205,8 @@ public class PaypalManagerImpl extends BasicManager implements PaypalManager {
 			smethod = methods.get(0);
 		} else {
 			smethod = new PaypalAccessMethod();
+			smethod.setCreationDate(new Date());
+			smethod.setLastModified(smethod.getCreationDate());
 			save(smethod);
 		}
 		for(PaypalAccessMethod method:methods) {
diff --git a/src/main/resources/database/mysql/alter_10_5_4_to_10_5_5.sql b/src/main/resources/database/mysql/alter_10_5_4_to_10_5_5.sql
index 324312127e7..7b13efc620f 100644
--- a/src/main/resources/database/mysql/alter_10_5_4_to_10_5_5.sql
+++ b/src/main/resources/database/mysql/alter_10_5_4_to_10_5_5.sql
@@ -1 +1,4 @@
-alter table o_gta_task modify g_taskname varchar(1024);
\ No newline at end of file
+alter table o_gta_task modify g_taskname varchar(1024);
+
+update o_ac_method set creationdate=now() where creationdate is null;
+update o_ac_method set lastmodified=creationdate where lastmodified is null;
\ No newline at end of file
diff --git a/src/main/resources/database/oracle/alter_10_5_4_to_10_5_5.sql b/src/main/resources/database/oracle/alter_10_5_4_to_10_5_5.sql
index e5e0a5521d6..9d89b1d2e08 100644
--- a/src/main/resources/database/oracle/alter_10_5_4_to_10_5_5.sql
+++ b/src/main/resources/database/oracle/alter_10_5_4_to_10_5_5.sql
@@ -1 +1,4 @@
 alter table o_gta_task modify g_taskname varchar2(1024 char);
+
+update o_ac_method set creationdate=systimestamp where creationdate is null;
+update o_ac_method set lastmodified=creationdate where lastmodified is null;
\ No newline at end of file
diff --git a/src/main/resources/database/postgresql/alter_10_5_4_to_10_5_5.sql b/src/main/resources/database/postgresql/alter_10_5_4_to_10_5_5.sql
index 17de2b6016e..f2f695c31dc 100644
--- a/src/main/resources/database/postgresql/alter_10_5_4_to_10_5_5.sql
+++ b/src/main/resources/database/postgresql/alter_10_5_4_to_10_5_5.sql
@@ -1,2 +1,4 @@
 alter table o_gta_task alter column g_taskname type varchar(1024);
 
+update o_ac_method set creationdate=now() where creationdate is null;
+update o_ac_method set lastmodified=creationdate where lastmodified is null;
\ No newline at end of file
-- 
GitLab