This is an automated email from the ASF dual-hosted git repository.
andrea-patricelli pushed a commit to branch 4_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/4_1_X by this push:
new bac305d454 [SYNCOPE-1986] fixes upgrader query to migrate user/group
owner to user/group manager (#1477)
bac305d454 is described below
commit bac305d454f874eb6290455ed93e5ee3b8ba9a14
Author: Andrea Patricelli <[email protected]>
AuthorDate: Fri Jul 31 10:56:08 2026 +0200
[SYNCOPE-1986] fixes upgrader query to migrate user/group owner to
user/group manager (#1477)
---
.../persistence/jpa/upgrade/GenerateUpgradeSQL.java | 4 ++--
.../jpa/upgrade/GenerateUpgradeSQLTest.java | 20 ++++++++++++++++++++
.../src/test/resources/syncope40.postgresql.sql | 4 ++--
3 files changed, 24 insertions(+), 4 deletions(-)
diff --git
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQL.java
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQL.java
index cc86a67c8f..6de47930d2 100644
---
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQL.java
+++
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQL.java
@@ -33,9 +33,9 @@ public class GenerateUpgradeSQL {
DROP TABLE TypeExtension_AnyTypeClass;
DROP TABLE TypeExtension;
- UPDATE SyncopeGroup SET userOwner_id=uManager_id;
+ UPDATE SyncopeGroup SET uManager_id=userOwner_id;
ALTER TABLE SyncopeGroup DROP COLUMN userOwner_id;
- UPDATE SyncopeGroup SET groupOwner_id=gManager_id;
+ UPDATE SyncopeGroup SET gManager_id=groupOwner_id;
ALTER TABLE SyncopeGroup DROP COLUMN groupOwner_id;
INSERT INTO OIDCOpEntity SELECT id,json AS jwks,'{}' AS
customScopes FROM OIDCJWKS;
diff --git
a/core/persistence-jpa-upgrader/src/test/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQLTest.java
b/core/persistence-jpa-upgrader/src/test/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQLTest.java
index 6336f3fa3a..1b928a3953 100644
---
a/core/persistence-jpa-upgrader/src/test/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQLTest.java
+++
b/core/persistence-jpa-upgrader/src/test/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQLTest.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.jpa.upgrade;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import io.zonky.test.db.postgres.embedded.EmbeddedPostgres;
@@ -27,7 +28,10 @@ import java.io.StringWriter;
import java.sql.SQLException;
import java.util.function.Supplier;
import javax.sql.DataSource;
+import org.junit.jupiter.api.MethodOrderer;
+import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestMethodOrder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -40,6 +44,7 @@ import
org.springframework.test.context.DynamicPropertyRegistry;
import org.springframework.test.context.DynamicPropertySource;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@SpringJUnitConfig(classes = PersistenceUpgraderContext.class)
class GenerateUpgradeSQLTest {
@@ -88,6 +93,7 @@ class GenerateUpgradeSQLTest {
@Autowired
private GenerateUpgradeSQL generateUpgradeSQL;
+ @Order(1)
@Test
void run() throws IOException, SQLException {
StringWriter out = new StringWriter();
@@ -100,4 +106,18 @@ class GenerateUpgradeSQLTest {
new ResourceDatabasePopulator(new
ByteArrayResource(out.toString().getBytes())),
SYNCOPE_DS);
}
+
+ @Order(2)
+ @Test
+ void issue1986() {
+ JdbcTemplate jdbcTemplate = new JdbcTemplate(SYNCOPE_DS);
+ // root group has user owner rossini
+ assertEquals("1417acbe-cbf6-4277-9372-e75e04f97000",
+ jdbcTemplate.queryForObject("SELECT uManager_id FROM
SyncopeGroup WHERE id = ?", String.class,
+ "37d15e4c-cdc1-460b-a591-8505c8133806"));
+ // child group has group owner root
+ assertEquals("37d15e4c-cdc1-460b-a591-8505c8133806",
+ jdbcTemplate.queryForObject("SELECT gManager_id FROM
SyncopeGroup WHERE id = ?", String.class,
+ "b1f7c12d-ec83-441f-a50e-1691daaedf3b"));
+ }
}
diff --git
a/core/persistence-jpa-upgrader/src/test/resources/syncope40.postgresql.sql
b/core/persistence-jpa-upgrader/src/test/resources/syncope40.postgresql.sql
index 5291c6c4c5..c908b4da82 100644
--- a/core/persistence-jpa-upgrader/src/test/resources/syncope40.postgresql.sql
+++ b/core/persistence-jpa-upgrader/src/test/resources/syncope40.postgresql.sql
@@ -4352,8 +4352,8 @@ INSERT INTO public.syncopedomain VALUES ('Two',
'{"_class":"org.apache.syncope.c
-- Data for Name: syncopegroup; Type: TABLE DATA; Schema: public; Owner: -
--
-INSERT INTO public.syncopegroup VALUES
('37d15e4c-cdc1-460b-a591-8505c8133806', NULL, '2010-10-20 10:00:00+00',
'admin', NULL, '2010-10-20 10:00:00+00', 'admin', NULL, 'root', '[{"schema":
"icon", "values": [{"stringValue": "niceIcon"}]}, {"schema": "show", "values":
[{"booleanValue": true}]}, {"schema": "rderived_sx", "values": [{"stringValue":
"sx"}]}, {"schema": "rderived_dx", "values": [{"stringValue": "dx"}]}]',
'e4c28e7a-9dbf-4ee7-9441-93812a0d4a28', NULL, NULL);
-INSERT INTO public.syncopegroup VALUES
('b1f7c12d-ec83-441f-a50e-1691daaedf3b', NULL, '2010-10-20 10:00:00+00',
'admin', NULL, '2010-10-20 10:00:00+00', 'admin', NULL, 'child', '[{"schema":
"icon", "values": [{"stringValue": "badIcon"}]}]',
'e4c28e7a-9dbf-4ee7-9441-93812a0d4a28', NULL, NULL);
+INSERT INTO public.syncopegroup VALUES
('37d15e4c-cdc1-460b-a591-8505c8133806', NULL, '2010-10-20 10:00:00+00',
'admin', NULL, '2010-10-20 10:00:00+00', 'admin', NULL, 'root', '[{"schema":
"icon", "values": [{"stringValue": "niceIcon"}]}, {"schema": "show", "values":
[{"booleanValue": true}]}, {"schema": "rderived_sx", "values": [{"stringValue":
"sx"}]}, {"schema": "rderived_dx", "values": [{"stringValue": "dx"}]}]',
'e4c28e7a-9dbf-4ee7-9441-93812a0d4a28', NULL, '1417acbe-cbf6-4277-9372- [...]
+INSERT INTO public.syncopegroup VALUES
('b1f7c12d-ec83-441f-a50e-1691daaedf3b', NULL, '2010-10-20 10:00:00+00',
'admin', NULL, '2010-10-20 10:00:00+00', 'admin', NULL, 'child', '[{"schema":
"icon", "values": [{"stringValue": "badIcon"}]}]',
'e4c28e7a-9dbf-4ee7-9441-93812a0d4a28', '37d15e4c-cdc1-460b-a591-8505c8133806',
NULL);
INSERT INTO public.syncopegroup VALUES
('29f96485-729e-4d31-88a1-6fc60e4677f3', NULL, '2010-10-20 10:00:00+00',
'admin', NULL, '2010-10-20 10:00:00+00', 'admin', NULL, 'citizen', NULL,
'e4c28e7a-9dbf-4ee7-9441-93812a0d4a28', NULL, NULL);
INSERT INTO public.syncopegroup VALUES
('8fb2d51e-c605-4e80-a72b-13ffecf1aa9a', NULL, '2010-10-20 10:00:00+00',
'admin', NULL, '2010-10-20 10:00:00+00', 'admin', NULL, 'employee',
'[{"schema": "icon", "values": [{"stringValue": "icon4"}]}]',
'e4c28e7a-9dbf-4ee7-9441-93812a0d4a28', NULL, NULL);
INSERT INTO public.syncopegroup VALUES
('a3c1a693-a6be-483f-a2b3-5cfec146f4bf', NULL, '2010-10-20 10:00:00+00',
'admin', NULL, '2010-10-20 10:00:00+00', 'admin', NULL, 'secretary', NULL,
'e4c28e7a-9dbf-4ee7-9441-93812a0d4a28', NULL, NULL);