You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2018/12/03 12:01:25 UTC
[syncope] branch 2_0_X updated: [SYNCOPE-1405] Managing views.xml
depending on the actual DBMS
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 2_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/2_0_X by this push:
new e291d60 [SYNCOPE-1405] Managing views.xml depending on the actual DBMS
e291d60 is described below
commit e291d602925959e81cb821916bfa9a29030f515c
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Mon Dec 3 13:00:28 2018 +0100
[SYNCOPE-1405] Managing views.xml depending on the actual DBMS
---
docker/core/src/main/resources/Dockerfile | 1 +
docker/core/src/main/resources/startup.sh | 6 +-
docker/core/src/main/resources/views.xml.mariadb | 268 +++++++++++++++++++++
docker/core/src/main/resources/views.xml.mssql | 268 +++++++++++++++++++++
docker/core/src/main/resources/views.xml.mysql | 268 +++++++++++++++++++++
.../core/src/main/resources/views.xml.postgresql | 268 +++++++++++++++++++++
6 files changed, 1077 insertions(+), 2 deletions(-)
diff --git a/docker/core/src/main/resources/Dockerfile b/docker/core/src/main/resources/Dockerfile
index ae5f045..656019f 100644
--- a/docker/core/src/main/resources/Dockerfile
+++ b/docker/core/src/main/resources/Dockerfile
@@ -25,6 +25,7 @@ COPY *.jar /tmp/
COPY *.deb /tmp/
COPY provisioning.properties.* /etc/apache-syncope/
+COPY views.xml.* /etc/apache-syncope/
COPY *.properties /etc/apache-syncope/
COPY Master.properties.* /etc/apache-syncope/domains/
diff --git a/docker/core/src/main/resources/startup.sh b/docker/core/src/main/resources/startup.sh
index 4d70229..8c11ad9 100755
--- a/docker/core/src/main/resources/startup.sh
+++ b/docker/core/src/main/resources/startup.sh
@@ -18,11 +18,13 @@
# under the License.
cd /etc/apache-syncope
-rm provisioning.properties
+rm -f provisioning.properties
ln -s provisioning.properties.$DBMS provisioning.properties
+rm -f views.xml
+ln -s views.xml.$DBMS views.xml
cd domains
-rm Master.properties
+rm -f Master.properties
ln -s Master.properties.$DBMS Master.properties
/etc/init.d/tomcat8 start
diff --git a/docker/core/src/main/resources/views.xml.mariadb b/docker/core/src/main/resources/views.xml.mariadb
new file mode 100644
index 0000000..e8e9a21
--- /dev/null
+++ b/docker/core/src/main/resources/views.xml.mariadb
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+
+ <entry key="UDynGroupMembers">
+ CREATE TABLE UDynGroupMembers(
+ any_id CHAR(36),
+ group_id CHAR(36),
+ UNIQUE(any_id, group_id))
+ </entry>
+ <entry key="ADynGroupMembers">
+ CREATE TABLE ADynGroupMembers(
+ anyType_id VARCHAR(255),
+ any_id CHAR(36),
+ group_id CHAR(36),
+ UNIQUE(anyType_id, any_id, group_id))
+ </entry>
+ <entry key="DynRoleMembers">
+ CREATE TABLE DynRoleMembers(
+ any_id CHAR(36),
+ role_id VARCHAR(255),
+ UNIQUE(any_id, role_id))
+ </entry>
+ <entry key="DynRealmMembers">
+ CREATE TABLE DynRealmMembers(
+ any_id CHAR(36),
+ dynRealm_id VARCHAR(255),
+ UNIQUE(any_id, dynRealm_id))
+ </entry>
+
+ <!-- user -->
+ <entry key="user_search">
+ CREATE VIEW user_search AS
+
+ SELECT u.id as any_id, u.* FROM SyncopeUser u
+ </entry>
+ <entry key="user_search_unique_attr">
+ CREATE VIEW user_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM UPlainAttrUniqueValue uav, UPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="user_search_attr">
+ CREATE VIEW user_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM UPlainAttrValue uav, UPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="user_search_null_attr">
+ CREATE VIEW user_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL AS booleanvalue,
+ NULL AS datevalue,
+ NULL AS doublevalue,
+ NULL AS longvalue,
+ NULL AS stringvalue
+ FROM SyncopeUser u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN UPlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="user_search_urelationship">
+ CREATE VIEW user_search_urelationship AS
+
+ SELECT m.user_id AS any_id, m.anyObject_id AS right_any_id, m.type_id AS type
+ FROM URelationship m
+ </entry>
+ <entry key="user_search_umembership">
+ CREATE VIEW user_search_umembership AS
+
+ SELECT m.user_id AS any_id, g.id AS group_id, g.name AS group_name
+ FROM UMembership m, SyncopeGroup g
+ WHERE m.group_id = g.id
+ </entry>
+ <entry key="user_search_role">
+ CREATE VIEW user_search_role AS
+
+ SELECT ss.user_id AS any_id, ss.role_id AS role_id
+ FROM SyncopeUser_SyncopeRole ss
+ </entry>
+ <entry key="user_search_priv">
+ CREATE VIEW user_search_priv AS
+
+ SELECT ss.user_id AS any_id, sp.privilege_id AS privilege_id
+ FROM SyncopeUser_SyncopeRole ss, SyncopeRole_Privilege sp
+ WHERE ss.role_id = sp.role_id
+ </entry>
+ <entry key="user_search_dynpriv">
+ CREATE VIEW user_search_dynpriv AS
+
+ SELECT any_id, privilege_id
+ FROM DynRoleMembers drm, SyncopeRole_Privilege rp
+ WHERE drm.role_id = rp.role_id
+ </entry>
+ <entry key="user_search_resource">
+ CREATE VIEW user_search_resource AS
+
+ SELECT st.user_id AS any_id, st.resource_id AS resource_id
+ FROM SyncopeUser_ExternalResource st
+ </entry>
+ <entry key="user_search_group_res">
+ CREATE VIEW user_search_group_res AS
+
+ SELECT m.user_id AS any_id, st.resource_id AS resource_id
+ FROM UMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
+ WHERE m.group_id = r.id AND st.group_id = r.id
+ </entry>
+
+ <!-- anyObject -->
+ <entry key="anyObject_search">
+ CREATE VIEW anyObject_search AS
+
+ SELECT a.id as any_id, a.* FROM AnyObject a
+ </entry>
+ <entry key="anyObject_search_unique_attr">
+ CREATE VIEW anyObject_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM APlainAttrUniqueValue uav, APlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="anyObject_search_attr">
+ CREATE VIEW anyObject_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM APlainAttrValue uav, APlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="anyObject_search_null_attr">
+ CREATE VIEW anyObject_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL AS booleanvalue,
+ NULL AS datevalue,
+ NULL AS doublevalue,
+ NULL AS longvalue,
+ NULL AS stringvalue
+ FROM AnyObject u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN APlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="anyObject_search_arelationship">
+ CREATE VIEW anyObject_search_arelationship AS
+
+ SELECT m.left_anyObject_id AS any_id, m.right_anyObject_id AS right_any_id, m.type_id AS type
+ FROM ARelationship m
+ </entry>
+ <entry key="anyObject_search_amembership">
+ CREATE VIEW anyObject_search_amembership AS
+
+ SELECT m.anyObject_id AS any_id, g.id AS group_id, g.name AS group_name
+ FROM AMembership m, SyncopeGroup g
+ WHERE m.group_id = g.id
+ </entry>
+ <entry key="anyObject_search_resource">
+ CREATE VIEW anyObject_search_resource AS
+
+ SELECT st.anyObject_id AS any_id, st.resource_id AS resource_id
+ FROM AnyObject_ExternalResource st
+ </entry>
+ <entry key="anyObject_search_group_res">
+ CREATE VIEW anyObject_search_group_res AS
+
+ SELECT m.anyObject_id AS any_id, st.resource_id AS resource_id
+ FROM AMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
+ WHERE m.group_id = r.id AND st.group_id = r.id
+ </entry>
+
+ <!-- group -->
+ <entry key="group_search">
+ CREATE VIEW group_search AS
+
+ SELECT r.id as any_id, r.* FROM SyncopeGroup r
+ </entry>
+ <entry key="group_search_unique_attr">
+ CREATE VIEW group_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM GPlainAttrUniqueValue uav, GPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="group_search_attr">
+ CREATE VIEW group_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM GPlainAttrValue uav, GPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="group_search_null_attr">
+ CREATE VIEW group_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL AS booleanvalue,
+ NULL AS datevalue,
+ NULL AS doublevalue,
+ NULL AS longvalue,
+ NULL AS stringvalue
+ FROM SyncopeGroup u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN GPlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="group_search_resource">
+ CREATE VIEW group_search_resource AS
+
+ SELECT st.group_id AS any_id, st.resource_id AS resource_id
+ FROM SyncopeGroup_ExternalResource st
+ </entry>
+
+</properties>
\ No newline at end of file
diff --git a/docker/core/src/main/resources/views.xml.mssql b/docker/core/src/main/resources/views.xml.mssql
new file mode 100644
index 0000000..ab6be98
--- /dev/null
+++ b/docker/core/src/main/resources/views.xml.mssql
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+
+ <entry key="UDynGroupMembers">
+ CREATE TABLE UDynGroupMembers(
+ any_id CHAR(36),
+ group_id CHAR(36),
+ UNIQUE(any_id, group_id))
+ </entry>
+ <entry key="ADynGroupMembers">
+ CREATE TABLE ADynGroupMembers(
+ anyType_id VARCHAR(255),
+ any_id CHAR(36),
+ group_id CHAR(36),
+ UNIQUE(anyType_id, any_id, group_id))
+ </entry>
+ <entry key="DynRoleMembers">
+ CREATE TABLE DynRoleMembers(
+ any_id CHAR(36),
+ role_id VARCHAR(255),
+ UNIQUE(any_id, role_id))
+ </entry>
+ <entry key="DynRealmMembers">
+ CREATE TABLE DynRealmMembers(
+ any_id CHAR(36),
+ dynRealm_id VARCHAR(255),
+ UNIQUE(any_id, dynRealm_id))
+ </entry>
+
+ <!-- user -->
+ <entry key="user_search">
+ CREATE VIEW user_search AS
+
+ SELECT u.id as any_id, u.* FROM SyncopeUser u
+ </entry>
+ <entry key="user_search_unique_attr">
+ CREATE VIEW user_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM UPlainAttrUniqueValue uav, UPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="user_search_attr">
+ CREATE VIEW user_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM UPlainAttrValue uav, UPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="user_search_null_attr">
+ CREATE VIEW user_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL AS booleanvalue,
+ CAST (NULL AS DATETIME2) datevalue,
+ CAST (NULL AS FLOAT) doublevalue,
+ CAST (NULL AS BIGINT) longvalue,
+ CAST (NULL AS VARCHAR(255)) AS stringvalue
+ FROM SyncopeUser u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN UPlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="user_search_urelationship">
+ CREATE VIEW user_search_urelationship AS
+
+ SELECT m.user_id AS any_id, m.anyObject_id AS right_any_id, m.type_id AS type
+ FROM URelationship m
+ </entry>
+ <entry key="user_search_umembership">
+ CREATE VIEW user_search_umembership AS
+
+ SELECT m.user_id AS any_id, g.id AS group_id, g.name AS group_name
+ FROM UMembership m, SyncopeGroup g
+ WHERE m.group_id = g.id
+ </entry>
+ <entry key="user_search_role">
+ CREATE VIEW user_search_role AS
+
+ SELECT ss.user_id AS any_id, ss.role_id AS role_id
+ FROM SyncopeUser_SyncopeRole ss
+ </entry>
+ <entry key="user_search_priv">
+ CREATE VIEW user_search_priv AS
+
+ SELECT ss.user_id AS any_id, sp.privilege_id AS privilege_id
+ FROM SyncopeUser_SyncopeRole ss, SyncopeRole_Privilege sp
+ WHERE ss.role_id = sp.role_id
+ </entry>
+ <entry key="user_search_dynpriv">
+ CREATE VIEW user_search_dynpriv AS
+
+ SELECT any_id, privilege_id
+ FROM DynRoleMembers drm, SyncopeRole_Privilege rp
+ WHERE drm.role_id = rp.role_id
+ </entry>
+ <entry key="user_search_resource">
+ CREATE VIEW user_search_resource AS
+
+ SELECT st.user_id AS any_id, st.resource_id AS resource_id
+ FROM SyncopeUser_ExternalResource st
+ </entry>
+ <entry key="user_search_group_res">
+ CREATE VIEW user_search_group_res AS
+
+ SELECT m.user_id AS any_id, st.resource_id AS resource_id
+ FROM UMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
+ WHERE m.group_id = r.id AND st.group_id = r.id
+ </entry>
+
+ <!-- anyObject -->
+ <entry key="anyObject_search">
+ CREATE VIEW anyObject_search AS
+
+ SELECT a.id as any_id, a.* FROM AnyObject a
+ </entry>
+ <entry key="anyObject_search_unique_attr">
+ CREATE VIEW anyObject_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM APlainAttrUniqueValue uav, APlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="anyObject_search_attr">
+ CREATE VIEW anyObject_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM APlainAttrValue uav, APlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="anyObject_search_null_attr">
+ CREATE VIEW anyObject_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL AS booleanvalue,
+ CAST (NULL AS DATETIME2) datevalue,
+ CAST (NULL AS FLOAT) doublevalue,
+ CAST (NULL AS BIGINT) longvalue,
+ CAST (NULL AS VARCHAR(255)) AS stringvalue
+ FROM AnyObject u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN APlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="anyObject_search_arelationship">
+ CREATE VIEW anyObject_search_arelationship AS
+
+ SELECT m.left_anyObject_id AS any_id, m.right_anyObject_id AS right_any_id, m.type_id AS type
+ FROM ARelationship m
+ </entry>
+ <entry key="anyObject_search_amembership">
+ CREATE VIEW anyObject_search_amembership AS
+
+ SELECT m.anyObject_id AS any_id, g.id AS group_id, g.name AS group_name
+ FROM AMembership m, SyncopeGroup g
+ WHERE m.group_id = g.id
+ </entry>
+ <entry key="anyObject_search_resource">
+ CREATE VIEW anyObject_search_resource AS
+
+ SELECT st.anyObject_id AS any_id, st.resource_id AS resource_id
+ FROM AnyObject_ExternalResource st
+ </entry>
+ <entry key="anyObject_search_group_res">
+ CREATE VIEW anyObject_search_group_res AS
+
+ SELECT m.anyObject_id AS any_id, st.resource_id AS resource_id
+ FROM AMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
+ WHERE m.group_id = r.id AND st.group_id = r.id
+ </entry>
+
+ <!-- group -->
+ <entry key="group_search">
+ CREATE VIEW group_search AS
+
+ SELECT r.id as any_id, r.* FROM SyncopeGroup r
+ </entry>
+ <entry key="group_search_unique_attr">
+ CREATE VIEW group_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM GPlainAttrUniqueValue uav, GPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="group_search_attr">
+ CREATE VIEW group_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM GPlainAttrValue uav, GPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="group_search_null_attr">
+ CREATE VIEW group_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL AS booleanvalue,
+ CAST (NULL AS DATETIME2) datevalue,
+ CAST (NULL AS FLOAT) doublevalue,
+ CAST (NULL AS BIGINT) longvalue,
+ CAST (NULL AS VARCHAR(255)) AS stringvalue
+ FROM SyncopeGroup u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN GPlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="group_search_resource">
+ CREATE VIEW group_search_resource AS
+
+ SELECT st.group_id AS any_id, st.resource_id AS resource_id
+ FROM SyncopeGroup_ExternalResource st
+ </entry>
+
+</properties>
diff --git a/docker/core/src/main/resources/views.xml.mysql b/docker/core/src/main/resources/views.xml.mysql
new file mode 100644
index 0000000..e8e9a21
--- /dev/null
+++ b/docker/core/src/main/resources/views.xml.mysql
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+
+ <entry key="UDynGroupMembers">
+ CREATE TABLE UDynGroupMembers(
+ any_id CHAR(36),
+ group_id CHAR(36),
+ UNIQUE(any_id, group_id))
+ </entry>
+ <entry key="ADynGroupMembers">
+ CREATE TABLE ADynGroupMembers(
+ anyType_id VARCHAR(255),
+ any_id CHAR(36),
+ group_id CHAR(36),
+ UNIQUE(anyType_id, any_id, group_id))
+ </entry>
+ <entry key="DynRoleMembers">
+ CREATE TABLE DynRoleMembers(
+ any_id CHAR(36),
+ role_id VARCHAR(255),
+ UNIQUE(any_id, role_id))
+ </entry>
+ <entry key="DynRealmMembers">
+ CREATE TABLE DynRealmMembers(
+ any_id CHAR(36),
+ dynRealm_id VARCHAR(255),
+ UNIQUE(any_id, dynRealm_id))
+ </entry>
+
+ <!-- user -->
+ <entry key="user_search">
+ CREATE VIEW user_search AS
+
+ SELECT u.id as any_id, u.* FROM SyncopeUser u
+ </entry>
+ <entry key="user_search_unique_attr">
+ CREATE VIEW user_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM UPlainAttrUniqueValue uav, UPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="user_search_attr">
+ CREATE VIEW user_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM UPlainAttrValue uav, UPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="user_search_null_attr">
+ CREATE VIEW user_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL AS booleanvalue,
+ NULL AS datevalue,
+ NULL AS doublevalue,
+ NULL AS longvalue,
+ NULL AS stringvalue
+ FROM SyncopeUser u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN UPlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="user_search_urelationship">
+ CREATE VIEW user_search_urelationship AS
+
+ SELECT m.user_id AS any_id, m.anyObject_id AS right_any_id, m.type_id AS type
+ FROM URelationship m
+ </entry>
+ <entry key="user_search_umembership">
+ CREATE VIEW user_search_umembership AS
+
+ SELECT m.user_id AS any_id, g.id AS group_id, g.name AS group_name
+ FROM UMembership m, SyncopeGroup g
+ WHERE m.group_id = g.id
+ </entry>
+ <entry key="user_search_role">
+ CREATE VIEW user_search_role AS
+
+ SELECT ss.user_id AS any_id, ss.role_id AS role_id
+ FROM SyncopeUser_SyncopeRole ss
+ </entry>
+ <entry key="user_search_priv">
+ CREATE VIEW user_search_priv AS
+
+ SELECT ss.user_id AS any_id, sp.privilege_id AS privilege_id
+ FROM SyncopeUser_SyncopeRole ss, SyncopeRole_Privilege sp
+ WHERE ss.role_id = sp.role_id
+ </entry>
+ <entry key="user_search_dynpriv">
+ CREATE VIEW user_search_dynpriv AS
+
+ SELECT any_id, privilege_id
+ FROM DynRoleMembers drm, SyncopeRole_Privilege rp
+ WHERE drm.role_id = rp.role_id
+ </entry>
+ <entry key="user_search_resource">
+ CREATE VIEW user_search_resource AS
+
+ SELECT st.user_id AS any_id, st.resource_id AS resource_id
+ FROM SyncopeUser_ExternalResource st
+ </entry>
+ <entry key="user_search_group_res">
+ CREATE VIEW user_search_group_res AS
+
+ SELECT m.user_id AS any_id, st.resource_id AS resource_id
+ FROM UMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
+ WHERE m.group_id = r.id AND st.group_id = r.id
+ </entry>
+
+ <!-- anyObject -->
+ <entry key="anyObject_search">
+ CREATE VIEW anyObject_search AS
+
+ SELECT a.id as any_id, a.* FROM AnyObject a
+ </entry>
+ <entry key="anyObject_search_unique_attr">
+ CREATE VIEW anyObject_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM APlainAttrUniqueValue uav, APlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="anyObject_search_attr">
+ CREATE VIEW anyObject_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM APlainAttrValue uav, APlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="anyObject_search_null_attr">
+ CREATE VIEW anyObject_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL AS booleanvalue,
+ NULL AS datevalue,
+ NULL AS doublevalue,
+ NULL AS longvalue,
+ NULL AS stringvalue
+ FROM AnyObject u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN APlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="anyObject_search_arelationship">
+ CREATE VIEW anyObject_search_arelationship AS
+
+ SELECT m.left_anyObject_id AS any_id, m.right_anyObject_id AS right_any_id, m.type_id AS type
+ FROM ARelationship m
+ </entry>
+ <entry key="anyObject_search_amembership">
+ CREATE VIEW anyObject_search_amembership AS
+
+ SELECT m.anyObject_id AS any_id, g.id AS group_id, g.name AS group_name
+ FROM AMembership m, SyncopeGroup g
+ WHERE m.group_id = g.id
+ </entry>
+ <entry key="anyObject_search_resource">
+ CREATE VIEW anyObject_search_resource AS
+
+ SELECT st.anyObject_id AS any_id, st.resource_id AS resource_id
+ FROM AnyObject_ExternalResource st
+ </entry>
+ <entry key="anyObject_search_group_res">
+ CREATE VIEW anyObject_search_group_res AS
+
+ SELECT m.anyObject_id AS any_id, st.resource_id AS resource_id
+ FROM AMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
+ WHERE m.group_id = r.id AND st.group_id = r.id
+ </entry>
+
+ <!-- group -->
+ <entry key="group_search">
+ CREATE VIEW group_search AS
+
+ SELECT r.id as any_id, r.* FROM SyncopeGroup r
+ </entry>
+ <entry key="group_search_unique_attr">
+ CREATE VIEW group_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM GPlainAttrUniqueValue uav, GPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="group_search_attr">
+ CREATE VIEW group_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM GPlainAttrValue uav, GPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="group_search_null_attr">
+ CREATE VIEW group_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL AS booleanvalue,
+ NULL AS datevalue,
+ NULL AS doublevalue,
+ NULL AS longvalue,
+ NULL AS stringvalue
+ FROM SyncopeGroup u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN GPlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="group_search_resource">
+ CREATE VIEW group_search_resource AS
+
+ SELECT st.group_id AS any_id, st.resource_id AS resource_id
+ FROM SyncopeGroup_ExternalResource st
+ </entry>
+
+</properties>
\ No newline at end of file
diff --git a/docker/core/src/main/resources/views.xml.postgresql b/docker/core/src/main/resources/views.xml.postgresql
new file mode 100644
index 0000000..b6664c0
--- /dev/null
+++ b/docker/core/src/main/resources/views.xml.postgresql
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+
+ <entry key="UDynGroupMembers">
+ CREATE TABLE UDynGroupMembers(
+ any_id CHAR(36),
+ group_id CHAR(36),
+ UNIQUE(any_id, group_id))
+ </entry>
+ <entry key="ADynGroupMembers">
+ CREATE TABLE ADynGroupMembers(
+ anyType_id VARCHAR(255),
+ any_id CHAR(36),
+ group_id CHAR(36),
+ UNIQUE(anyType_id, any_id, group_id))
+ </entry>
+ <entry key="DynRoleMembers">
+ CREATE TABLE DynRoleMembers(
+ any_id CHAR(36),
+ role_id VARCHAR(255),
+ UNIQUE(any_id, role_id))
+ </entry>
+ <entry key="DynRealmMembers">
+ CREATE TABLE DynRealmMembers(
+ any_id CHAR(36),
+ dynRealm_id VARCHAR(255),
+ UNIQUE(any_id, dynRealm_id))
+ </entry>
+
+ <!-- user -->
+ <entry key="user_search">
+ CREATE VIEW user_search AS
+
+ SELECT u.id as any_id, u.* FROM SyncopeUser u
+ </entry>
+ <entry key="user_search_unique_attr">
+ CREATE VIEW user_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM UPlainAttrUniqueValue uav, UPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="user_search_attr">
+ CREATE VIEW user_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM UPlainAttrValue uav, UPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="user_search_null_attr">
+ CREATE VIEW user_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL::int4 AS booleanvalue,
+ NULL::timestamp AS datevalue,
+ NULL::float8 AS doublevalue,
+ NULL::int8 AS longvalue,
+ NULL AS stringvalue
+ FROM SyncopeUser u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN UPlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="user_search_urelationship">
+ CREATE VIEW user_search_urelationship AS
+
+ SELECT m.user_id AS any_id, m.anyObject_id AS right_any_id, m.type_id AS type
+ FROM URelationship m
+ </entry>
+ <entry key="user_search_umembership">
+ CREATE VIEW user_search_umembership AS
+
+ SELECT m.user_id AS any_id, g.id AS group_id, g.name AS group_name
+ FROM UMembership m, SyncopeGroup g
+ WHERE m.group_id = g.id
+ </entry>
+ <entry key="user_search_role">
+ CREATE VIEW user_search_role AS
+
+ SELECT ss.user_id AS any_id, ss.role_id AS role_id
+ FROM SyncopeUser_SyncopeRole ss
+ </entry>
+ <entry key="user_search_priv">
+ CREATE VIEW user_search_priv AS
+
+ SELECT ss.user_id AS any_id, sp.privilege_id AS privilege_id
+ FROM SyncopeUser_SyncopeRole ss, SyncopeRole_Privilege sp
+ WHERE ss.role_id = sp.role_id
+ </entry>
+ <entry key="user_search_dynpriv">
+ CREATE VIEW user_search_dynpriv AS
+
+ SELECT any_id, privilege_id
+ FROM DynRoleMembers drm, SyncopeRole_Privilege rp
+ WHERE drm.role_id = rp.role_id
+ </entry>
+ <entry key="user_search_resource">
+ CREATE VIEW user_search_resource AS
+
+ SELECT st.user_id AS any_id, st.resource_id AS resource_id
+ FROM SyncopeUser_ExternalResource st
+ </entry>
+ <entry key="user_search_group_res">
+ CREATE VIEW user_search_group_res AS
+
+ SELECT m.user_id AS any_id, st.resource_id AS resource_id
+ FROM UMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
+ WHERE m.group_id = r.id AND st.group_id = r.id
+ </entry>
+
+ <!-- anyObject -->
+ <entry key="anyObject_search">
+ CREATE VIEW anyObject_search AS
+
+ SELECT a.id as any_id, a.* FROM AnyObject a
+ </entry>
+ <entry key="anyObject_search_unique_attr">
+ CREATE VIEW anyObject_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM APlainAttrUniqueValue uav, APlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="anyObject_search_attr">
+ CREATE VIEW anyObject_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM APlainAttrValue uav, APlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="anyObject_search_null_attr">
+ CREATE VIEW anyObject_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL::int4 AS booleanvalue,
+ NULL::timestamp AS datevalue,
+ NULL::float8 AS doublevalue,
+ NULL::int8 AS longvalue,
+ NULL AS stringvalue
+ FROM AnyObject u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN APlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="anyObject_search_arelationship">
+ CREATE VIEW anyObject_search_arelationship AS
+
+ SELECT m.left_anyObject_id AS any_id, m.right_anyObject_id AS right_any_id, m.type_id AS type
+ FROM ARelationship m
+ </entry>
+ <entry key="anyObject_search_amembership">
+ CREATE VIEW anyObject_search_amembership AS
+
+ SELECT m.anyObject_id AS any_id, g.id AS group_id, g.name AS group_name
+ FROM AMembership m, SyncopeGroup g
+ WHERE m.group_id = g.id
+ </entry>
+ <entry key="anyObject_search_resource">
+ CREATE VIEW anyObject_search_resource AS
+
+ SELECT st.anyObject_id AS any_id, st.resource_id AS resource_id
+ FROM AnyObject_ExternalResource st
+ </entry>
+ <entry key="anyObject_search_group_res">
+ CREATE VIEW anyObject_search_group_res AS
+
+ SELECT m.anyObject_id AS any_id, st.resource_id AS resource_id
+ FROM AMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
+ WHERE m.group_id = r.id AND st.group_id = r.id
+ </entry>
+
+ <!-- group -->
+ <entry key="group_search">
+ CREATE VIEW group_search AS
+
+ SELECT r.id as any_id, r.* FROM SyncopeGroup r
+ </entry>
+ <entry key="group_search_unique_attr">
+ CREATE VIEW group_search_unique_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM GPlainAttrUniqueValue uav, GPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="group_search_attr">
+ CREATE VIEW group_search_attr AS
+
+ SELECT ua.owner_id AS any_id,
+ ua.schema_id AS schema_id,
+ uav.booleanvalue AS booleanvalue,
+ uav.datevalue AS datevalue,
+ uav.doublevalue AS doublevalue,
+ uav.longvalue AS longvalue,
+ uav.stringvalue AS stringvalue
+ FROM GPlainAttrValue uav, GPlainAttr ua
+ WHERE uav.attribute_id = ua.id
+ </entry>
+ <entry key="group_search_null_attr">
+ CREATE VIEW group_search_null_attr AS
+
+ SELECT u.id AS any_id,
+ PlainSchema.id AS schema_id,
+ NULL::int4 AS booleanvalue,
+ NULL::timestamp AS datevalue,
+ NULL::float8 AS doublevalue,
+ NULL::int8 AS longvalue,
+ NULL AS stringvalue
+ FROM SyncopeGroup u CROSS JOIN PlainSchema
+ LEFT OUTER JOIN GPlainAttr ua ON (PlainSchema.id = ua.schema_id AND ua.owner_id = u.id)
+ WHERE ua.id IS NULL
+ </entry>
+ <entry key="group_search_resource">
+ CREATE VIEW group_search_resource AS
+
+ SELECT st.group_id AS any_id, st.resource_id AS resource_id
+ FROM SyncopeGroup_ExternalResource st
+ </entry>
+
+</properties>