diff --git a/cadastrapp/pom.xml b/cadastrapp/pom.xml
index f891fc99..e4a2f712 100644
--- a/cadastrapp/pom.xml
+++ b/cadastrapp/pom.xml
@@ -98,6 +98,25 @@
spring-jdbc
${spring.version}
+
+
+ org.springframework.ldap
+ spring-ldap-core
+ 3.2.6
+
+
+
+ org.springframework.ldap
+ spring-ldap-test
+ 3.2.6
+ test
+
+
+ com.unboundid
+ unboundid-ldapsdk
+ 3.1.1
+ test
+
org.hibernate.orm
diff --git a/cadastrapp/src/main/java/org/georchestra/cadastrapp/configuration/LdapConfig.java b/cadastrapp/src/main/java/org/georchestra/cadastrapp/configuration/LdapConfig.java
new file mode 100644
index 00000000..d7360369
--- /dev/null
+++ b/cadastrapp/src/main/java/org/georchestra/cadastrapp/configuration/LdapConfig.java
@@ -0,0 +1,41 @@
+package org.georchestra.cadastrapp.configuration;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.core.env.Environment;
+import org.springframework.ldap.core.LdapTemplate;
+import org.springframework.ldap.core.support.LdapContextSource;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+@Configuration
+@PropertySource(
+ value = {
+ "file:${georchestra.datadir}/default.properties",
+ "file:${georchestra.datadir}/cadastrapp/cadastrapp.properties"
+ },
+ ignoreResourceNotFound = true
+)
+@EnableScheduling
+public class LdapConfig {
+ @Autowired
+ private Environment env;
+
+ @Bean
+ public LdapContextSource contextSource() {
+ LdapContextSource contextSource = new LdapContextSource();
+ // Base in Orgs because env based annotation not work in OrganismeAutorisation's Entry
+ contextSource.setBase(env.getProperty("ldapOrgsRdn")+","+env.getProperty("ldapBaseDn"));
+ contextSource.setUrl(env.getProperty("ldapScheme")+"://"+env.getProperty("ldapHost")+":"+env.getProperty("ldapPort"));
+ contextSource.setUserDn(env.getProperty("ldapAdminDn"));
+ contextSource.setPassword(env.getProperty("ldapAdminPassword"));
+
+ return contextSource;
+ }
+
+ @Bean
+ public LdapTemplate ldapTemplate() {
+ return new LdapTemplate(contextSource());
+ }
+}
diff --git a/cadastrapp/src/main/java/org/georchestra/cadastrapp/cron/LDAPGroupsAutorisationsSync.java b/cadastrapp/src/main/java/org/georchestra/cadastrapp/cron/LDAPGroupsAutorisationsSync.java
new file mode 100644
index 00000000..a6dbd2ca
--- /dev/null
+++ b/cadastrapp/src/main/java/org/georchestra/cadastrapp/cron/LDAPGroupsAutorisationsSync.java
@@ -0,0 +1,57 @@
+package org.georchestra.cadastrapp.cron;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.georchestra.cadastrapp.model.ldap.GroupeAutorisation;
+import org.georchestra.cadastrapp.model.ldap.Organisation;
+import org.georchestra.cadastrapp.repository.GroupeAutorisationRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.ldap.core.LdapTemplate;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+@Component
+public class LDAPGroupsAutorisationsSync {
+ private static final Logger LOGGER = LogManager.getLogger( LDAPGroupsAutorisationsSync.class );
+
+ @Autowired
+ Environment env;
+
+ @Autowired
+ LdapTemplate lt;
+
+ @Autowired
+ GroupeAutorisationRepository gar;
+
+ @PostConstruct
+ @Scheduled(cron = "${ldapAreas.cronExpression}")
+ public void refreshOrganisationsPermissions() {
+ if( env.containsProperty("ldapAreas.enable") && env.getProperty("ldapAreas.enable").contentEquals("true") ) {
+ List lstOrg = lt.findAll(Organisation.class);
+ List lstGA = new ArrayList<>();
+ for (Organisation o : lstOrg) {
+ if( o.getDescription() != null ) {
+ for (String insee : o.getDescription().split(",")) {
+ if( StringUtils.isNumeric(insee) )
+ lstGA.add(new GroupeAutorisation(null, o.getCn(), insee.substring(0, 2)+"0"+insee.substring(2,5), null));
+ }
+ }
+ }
+
+ int index = 1;
+ for (GroupeAutorisation ga : lstGA) {
+ ga.setId(index++);
+ }
+ gar.deleteAll();
+ gar.saveAllAndFlush(lstGA);
+ LOGGER.info("Synced "+lstGA.size()+" group's authorisations from LDAP");
+ }
+ }
+}
diff --git a/cadastrapp/src/main/java/org/georchestra/cadastrapp/model/ldap/GroupeAutorisation.java b/cadastrapp/src/main/java/org/georchestra/cadastrapp/model/ldap/GroupeAutorisation.java
new file mode 100644
index 00000000..d384e4e3
--- /dev/null
+++ b/cadastrapp/src/main/java/org/georchestra/cadastrapp/model/ldap/GroupeAutorisation.java
@@ -0,0 +1,66 @@
+package org.georchestra.cadastrapp.model.ldap;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name="groupe_autorisation")
+public class GroupeAutorisation {
+ @Id
+ Integer id;
+
+ @Column(name = "idgroup")
+ String idGroup;
+
+ @Column(name="cgocommune")
+ String cgoCommune;
+
+ @Column(name="ccodep")
+ String ccodep;
+
+ public GroupeAutorisation() {
+ super();
+ }
+
+ public GroupeAutorisation(Integer id, String idGroup, String cgoCommune, String ccodep) {
+ super();
+ this.id = id;
+ this.idGroup = idGroup;
+ this.cgoCommune = cgoCommune;
+ this.ccodep = ccodep;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getIdGroup() {
+ return idGroup;
+ }
+
+ public void setIdGroup(String idGroup) {
+ this.idGroup = idGroup;
+ }
+
+ public String getCgoCommune() {
+ return cgoCommune;
+ }
+
+ public void setCgoCommune(String cgoCommune) {
+ this.cgoCommune = cgoCommune;
+ }
+
+ public String getCcodep() {
+ return ccodep;
+ }
+
+ public void setCcodep(String ccodep) {
+ this.ccodep = ccodep;
+ }
+}
diff --git a/cadastrapp/src/main/java/org/georchestra/cadastrapp/model/ldap/Organisation.java b/cadastrapp/src/main/java/org/georchestra/cadastrapp/model/ldap/Organisation.java
new file mode 100644
index 00000000..6bdb2533
--- /dev/null
+++ b/cadastrapp/src/main/java/org/georchestra/cadastrapp/model/ldap/Organisation.java
@@ -0,0 +1,54 @@
+package org.georchestra.cadastrapp.model.ldap;
+
+import javax.naming.Name;
+
+import org.springframework.ldap.odm.annotations.Attribute;
+import org.springframework.ldap.odm.annotations.Entry;
+import org.springframework.ldap.odm.annotations.Id;
+
+@Entry(objectClasses={ "groupOfMembers" })
+public class Organisation {
+ @Id
+ private Name dn;
+
+ @Attribute(name="cn")
+ String cn;
+
+ @Attribute(name="description")
+ String description;
+
+ public Organisation() {
+ super();
+ }
+
+ public Organisation(Name dn, String cn, String description) {
+ super();
+ this.dn = dn;
+ this.cn = cn;
+ this.description = description;
+ }
+
+ public Name getDn() {
+ return dn;
+ }
+
+ public void setDn(Name dn) {
+ this.dn = dn;
+ }
+
+ public String getCn() {
+ return cn;
+ }
+
+ public void setCn(String cn) {
+ this.cn = cn;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+}
diff --git a/cadastrapp/src/main/java/org/georchestra/cadastrapp/repository/GroupeAutorisationRepository.java b/cadastrapp/src/main/java/org/georchestra/cadastrapp/repository/GroupeAutorisationRepository.java
new file mode 100644
index 00000000..ac7fed00
--- /dev/null
+++ b/cadastrapp/src/main/java/org/georchestra/cadastrapp/repository/GroupeAutorisationRepository.java
@@ -0,0 +1,8 @@
+package org.georchestra.cadastrapp.repository;
+
+import org.georchestra.cadastrapp.model.ldap.GroupeAutorisation;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface GroupeAutorisationRepository extends JpaRepository {
+
+}
diff --git a/cadastrapp/src/main/resources/cadastrapp.properties b/cadastrapp/src/main/resources/cadastrapp.properties
index 559c5f71..8b8e7345 100644
--- a/cadastrapp/src/main/resources/cadastrapp.properties
+++ b/cadastrapp/src/main/resources/cadastrapp.properties
@@ -168,5 +168,34 @@ purge.hours=24
# See http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html for example
purge.cronExpression=0 0 * * * ?
-
-
+# Enable synchronization of authorizations with the competence areas of Georchestra's organizations
+ldapAreas.enable=false
+# Cron expression to launch the synchronization job
+ldapAreas.cronExpression=0 0 * * * *
+# LDAP server domain name
+# default: see default.properties - uncomment to override
+#ldapHost=
+
+# LDAP server port
+# default: see default.properties - uncomment to override
+#ldapPort=
+
+# LDAP Scheme
+# default: see default.properties - uncomment to override
+#ldapScheme=
+
+# Base DN of the LDAP directory
+# default: see default.properties - uncomment to override
+#ldapBaseDn=
+
+# Administrator DN
+# default: see default.properties - uncomment to override
+#ldapAdminDn=
+
+# Administrator password
+# default: see default.properties - uncomment to override
+#ldapAdminPassword=
+
+# Organizations RDN
+# default: see default.properties - uncomment to override
+#ldapOrgsRdn=
diff --git a/cadastrapp/src/test/resources/test-config.xml b/cadastrapp/src/test/resources/test-config.xml
index d84a37b6..44d725ae 100644
--- a/cadastrapp/src/test/resources/test-config.xml
+++ b/cadastrapp/src/test/resources/test-config.xml
@@ -39,7 +39,15 @@
-
+
+
+
+
+
+
+
+
+
diff --git a/database/README.md b/database/README.md
index 3f720fa7..9dad87db 100644
--- a/database/README.md
+++ b/database/README.md
@@ -50,38 +50,7 @@ La base de données cible qui contiendra les données de cadastrapp devra compor
Il faudra que le [fichier de correspondance fourni à la console](https://github.com/georchestra/georchestra/tree/master/console#custom-areas) comporte les codes INSEE des communes.
-La base de données cible qui contiendra les données de cadastrapp devra :
-* Comporter l'extension **[multicorn](https://multicorn.org/)**
-* Avoir accès au serveur LDAP de l'instance geOrchestra
-
-#### Installation de multicorn (Debian)
-
-Dans Debian 10, multicorn est disponible via un paquet :
-
-`$ sudo apt install postgresql-11-python3-multicorn`
-
-Cette commande est à adapter en fonction de votre version de PostgreSQL.
-
-#### Création du Foreign Data Wrapper pour LDAP
-
-Afin de récupérer les emprises géographiques définies pour l'organisation des utilisateurs, il est necessaire de configurer une connexion de la base de données vers le LDAP de Georchestra.
-
-Commencer par installer l'extension multicorn sur la BDD précedemment créée :
-
-```
-CREATE EXTENSION multicorn;
-```
-
-Puis, créer le lien vers le serveur LDAP :
-
-```
-CREATE SERVER ldap_srv foreign data wrapper multicorn options (
- wrapper 'multicorn.ldapfdw.LdapFdw'
-);
-ALTER SERVER ldap_srv
- OWNER TO #user_cadastrapp;
-```
-> **Note:** Remplacer `#user_cadastrapp` par l'utilisateur utilisé par cadastrapp
+Il suffit ensuite de passer l'option `ldapAreas.enable` à true dans le fichier cadastrapp.properties, les zones de compétence des organisations seront alors remontées depuis le LDAP Georchestra toutes les heure par défaut. Si vous souhaitez changer la periodicité, modifier l'option `ldapAreas.cronExpression`.
## Configuration
@@ -91,7 +60,6 @@ Sous linux ou git bash sous Windows :
* le renommer en `config.sh`
* l'ouvrir et compléter les informations de connection aux bases de données
* si les données cadastre QGIS et cadastrapp sont dans la même base de données, laisser `uniqueDB=True` sinon mettre `uniqueDB=False`
-* si vous souhaitez remonter les autorisations cartographiques de puis les organisations geOrchestra (LDAP), mettre `orgsAutorisations=True` sinon laisser `orgsAutorisations=False`
## Purge + rechargement complet des données
@@ -110,99 +78,3 @@ Sous linux ou git bash sous Windows :
* exécuter le script `cadastrapp_update_data.sh`
Note : il est possible de l'utiliser en mode silencieux avec l'option `-s` ou `--silent`. Si précisé, le script n'attendra pas de validation de la part de l'utilisateur.
-
-## Mise en place d'un CRON pour rafraichir les autorisations liées aux organisations
-
-Si vous avez mis en place la gestion des autorisations geographiques depuis les groupes georchestra, le script a créé une vue materialisée contenant les codes INSEE pour chaque groupe qui ont été remontés depuis le LDAP.
-Ceci permet de ne pas surcharger ce dernier avec des requêtes à chaque sollicitation de cadastrapp.
-
-Néanmoins, pour que les changements sur les périmètres des organisations faits dans la console geOrchestra soient pris en compte, cette vue materialisée devra être rafraichie.
-
-Pour ce faire, il est conseillé de mettre en place un CRON qui permettra de la rafraichir à interval régulier.
-
-### Mise en place d'un 'cron job' dans debian
-
-Créez un fichier de script `cadastrapp_refresh_ldap_view.sh` sur le serveur contenant la base de données cadastrapp avec le contenu suivant :
-
-```
-#!/bin/sh
-PGPASSWORD=#cadastrapp_password psql -h #cadastrapp_db_host -p $cadastrapp_db_port -d $cadastrapp_db_name -U $cadastrapp_user -c 'refresh materialized view #cadastrapp_schema.org_autorisation'
-```
-> **Note:** Remplacez les variables précédées d'un `#` par la valeur appropriée
-Déplacez le fichier dans le répertoire cron correspondant à la fréquence souhaitée :
-
-* /etc/cron.hourly => toutes les heures
-* /etc/cron.daily => tous les jours
-* /etc/cron.weekly => toutes les semaines
-* /etc/cron.monthly => tous les mois
-
-Ou bien si vous souhaitez un parametrage plus poussé, référez vous à la [documentation de crontab](https://debian-facile.org/doc:systeme:crontab)
-
-Enfin pensez-bien à rendre le fichier executable :
-
-```
-chmod +x cadastrapp_refresh_ldap_view.sh
-```
-
-### Mise en place d'un 'cron job' via pg_cron
-
-Commencez par installer l'extension `cron` de postgresql :
-
-```
-sudo apt install postgresql-11-cron
-```
-
-Une fois installée, partie OS, il faudra modifier les paramètres base de données dans PostgreSQL afin de pouvoir utiliser cette extension.
-
-Le fichier “postgresql.conf” devra indiquer les éléments suivants pour permettre la création de cette extension en base :
-
-* share_preload_libraries
-* cron.database_name
-
-```
-sudo nano /etc/postgesql/11/main/postgresql.conf
-```
-
-Ajoutez à la fin du fichier :
-
-```
-shared_preload_libraries = 'pg_cron'
-cron.database_name = '#cadastrappDBName'
-```
-
-> **Note:** Remplacez `#cadastrappDBName` par le nom de la base de donnée hébergeant cadastrapp
-
-Autorisez la connexion de l'utilisateur en local via trust pour permettre l'accès à la tache CRON,
-pour cela dans le fichier `/etc/postgresql/11/main/pg_hba.conf` modifiez la ligne :
-
-```
-host #cadastrappDBName #user_cadastrapp 127.0.0.1/32 trust
-host all all 127.0.0.1/32 md5
-```
-> **Note:** Remplacez les variables précédées d'un `#` par la valeur appropriée
-Relancez postgresql :
-
-```
-sudo service postgresql restart
-```
-
-Activez l'extention dans la base de donnée hebergeant cadastrapp :
-
-```
-CREATE EXTENSION pg_cron;
-```
-
-Autorisez l'utilisation pour l'utilisateur cadastrapp :
-
-```
-GRANT USAGE ON SCHEMA cron TO #user_cadastrapp;
-GRANT INSERT ON TABLE cron.job TO #user_cadastrapp;
-GRANT USAGE ON SEQUENCE cron.jobid_seq TO #user_cadastrapp;
-```
-> **Note:** Remplacer `#user_cadastrapp` par l'utilisateur utilisé par cadastrapp
-Enfin lancez le script de definition la tache CRON :
-
-```
-./create_ldap_cronjob.sh
-```
-> **Note:** Par défaut, le script défini le rafraichissement de la vue mateiralisée toutes les heures, si cela ne vous convient pas, vous pouvez modifier cette configuration dans le fichier `sql/ldap/cronjob.sql`.
diff --git a/database/cadastrapp_load_data.sh b/database/cadastrapp_load_data.sh
index b27a28c5..f86e098e 100755
--- a/database/cadastrapp_load_data.sh
+++ b/database/cadastrapp_load_data.sh
@@ -47,33 +47,6 @@ else
exit 1
fi
-if [ "$orgsAutorisations" = True ] ; then
- invalidLdapParam=False
- if [ -z "$ldapUri" ] ; then
- echo "Paramètre ldapUri manquant !"
- invalidLdapParam=True
- fi
-
- if [ -z "$ldapPath" ] ; then
- echo "Paramètre ldapPath manquant !"
- invalidLdapParam=True
- fi
-
- if [ -z "$ldapBindDn" ] ; then
- echo "Paramètre ldapBindDn manquant !"
- invalidLdapParam=True
- fi
-
- if [ -z "$ldapBindPwd" ] ; then
- echo "Paramètre ldapBindPwd manquant !"
- invalidLdapParam=True
- fi
- if [ "$invalidLdapParam" = True ] ; then
- echo " pb de configuration : stop"
- exit 1
- fi
-fi
-
if [ "$silentMode" = False ] ; then
echo ""
read -p " Si ces infos sont exactes : appuyer sur la touche [Entrée] sinon faire ctrl + C pour arrêter."
@@ -102,10 +75,6 @@ replaceAndLaunch (){
s/#DBSchema_qgis/$qgisDBSchema/g
s/#DBUser_qgis/$qgisDBUser/g
s/#DBpasswd_qgis/$qgisDBPassword/g
- s|#ldap_uri|$ldapUri|g
- s/#ldap_path/$ldapPath/g
- s/#ldap_binddn/$ldapBindDn/g
- s/#ldap_bindpwd/$ldapBindPwd/g
}" |\
PGPASSWORD=$cadastrappDBPassword psql -h $cadastrappDBHost -p $cadastrappDBPort -d $cadastrappDBName -U $cadastrappDBUser
diff --git a/database/config_sample.sh b/database/config_sample.sh
index a0265925..c00fe482 100755
--- a/database/config_sample.sh
+++ b/database/config_sample.sh
@@ -22,13 +22,3 @@ cadastrappDBPassword=cadastrapp_mdp
# le schéma cadastrapp et le schéma cadastre_qgis sont dans la même base de données
# True / False
uniqueDB=True
-
-# Récupération des autorisations geographiques configurées pour les organisations dans la console geOrchestra
-# True / False
-orgsAutorisations=False
-
-# Obligatoires si orgsAutorisations=True
-#ldapUri=ldaps://ldap.georchestra.org
-#ldapPath=ou=orgs,dc=georchestra,dc=org
-#ldapBindDn=uid=cadastrapp,ou=users,dc=lepuyenvelay,dc=fr
-#ldapBindPwd=secret
diff --git a/database/create_ldap_cronjob.sh b/database/create_ldap_cronjob.sh
deleted file mode 100644
index 6f31dda6..00000000
--- a/database/create_ldap_cronjob.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-
-clear
-git_version=$(git rev-parse HEAD)
-
-echo "--------------------------------------------------------------"
-echo " Cadastrapp : script de création du cron job pour rafraichier la vue des organisations LDAP"
-echo "--------------------------------------------------------------"
-echo ""
-echo " version : $git_version"
-echo ""
-echo "--------------------------------------------------------------"
-echo " Lecture du fichier de configuration"
-echo "--------------------------------------------------------------"
-echo ""
-
-# lecture du fichier de configuration des connexions
-. config.sh
-
-replaceAndLaunch (){
- if [ -z "$1" ] || [ ! -e $1 ] ; then
- echo "Le fichier SQL $1 n'existe pas."
- exit 1
- else
- echo " Exécution du fichier : $1"
- fi
-
- cat $1 | sed "{
- s/#schema_cadastrapp/$cadastrappDBSchema/g
- s/#cadastrapp_db_host/$cadastrappDBHost/g
- s/#cadastrapp_db_port/$cadastrappDBPort/g
- s/#cadastrapp_db_name/$cadastrappDBName/g
- s/#user_cadastrapp/$cadastrappDBUser/g
- }" |\
- PGPASSWORD=$cadastrappDBPassword psql -h $cadastrappDBHost -p $cadastrappDBPort -d $cadastrappDBName -U $cadastrappDBUser
-}
-
-replaceAndLaunch sql/ldap/cronjob.sql
-
-echo ""
-echo "--------------------------------------------------------------"
-echo " FIN "
-echo "--------------------------------------------------------------"
diff --git a/database/create_tables.sh b/database/create_tables.sh
index 05f40be5..2a0e3e18 100644
--- a/database/create_tables.sh
+++ b/database/create_tables.sh
@@ -21,12 +21,6 @@ replaceAndLaunch sql/tables/prop_dmatto.sql
replaceAndLaunch sql/tables/prop_dmatgm.sql
replaceAndLaunch sql/tables/prop_type_filiation.sql
replaceAndLaunch sql/tables/prop_bati_detent.sql
-
-if [ "$orgsAutorisations" = True ] ; then
- replaceAndLaunch sql/ldap/organisations.sql
- replaceAndLaunch sql/ldap/groupe_autorisation.sql
-else
- replaceAndLaunch sql/tables/groupe_autorisation.sql
-fi
+replaceAndLaunch sql/tables/groupe_autorisation.sql
echo " Fait"
diff --git a/database/sql/ldap/cronjob.sql b/database/sql/ldap/cronjob.sql
deleted file mode 100644
index 8e4f1053..00000000
--- a/database/sql/ldap/cronjob.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-INSERT INTO cron.job (schedule, command, nodename, nodeport, database, username)
-VALUES ('0 * * * *', 'REFRESH MATERIALIZED VIEW #schema_cadastrapp.org_autorisation',
-'#cadastrapp_db_host', #cadastrapp_db_port, '#cadastrapp_db_name', '#user_cadastrapp');
diff --git a/database/sql/ldap/groupe_autorisation.sql b/database/sql/ldap/groupe_autorisation.sql
deleted file mode 100644
index 468176a8..00000000
--- a/database/sql/ldap/groupe_autorisation.sql
+++ /dev/null
@@ -1,47 +0,0 @@
-CREATE MATERIALIZED VIEW #schema_cadastrapp.org_autorisation AS
- SELECT
- regexp_replace(cn, '[''\[\]]', '', 'g') AS idorg,
- unnest(string_to_array(regexp_replace(description, '[''\[\]]', '', 'g'), ',')) as inseecommune,
- NULL as ccodep
- FROM
- #schema_cadastrapp.organisations;
-
-ALTER TABLE #schema_cadastrapp.org_autorisation
- OWNER TO #user_cadastrapp;
-
-CREATE TABLE #schema_cadastrapp.role_autorisation
-(
- idrole character varying(50), -- Identifiant du role LDAP devant être filtré
- cgocommune character varying(6), -- Code commune INSEE
- ccodep character varying(3), -- Code département à mettre en relation avec le code commune
- CONSTRAINT "role_autorisation_UK" UNIQUE (cgocommune , ccodep , idrole )
-)
-WITH (
- OIDS=FALSE
-);
-ALTER TABLE #schema_cadastrapp.role_autorisation
- OWNER TO #user_cadastrapp;
-
-COMMENT ON TABLE #schema_cadastrapp.role_autorisation IS 'Table de correlation entre les roles LDAP et les droits géographiques';
-
-COMMENT ON COLUMN #schema_cadastrapp.role_autorisation.idrole IS 'Identfiant du role LDAP devant être filtré';
-COMMENT ON COLUMN #schema_cadastrapp.role_autorisation.cgocommune IS 'Code commune INSEE version cadastre (6 char -> made with ccodpe + ccodir + ccocom)';
-COMMENT ON COLUMN #schema_cadastrapp.role_autorisation.ccodep IS 'Code département à mettre en relation avec le code commune';
-
-
-CREATE VIEW #schema_cadastrapp.groupe_autorisation AS
- SELECT
- idorg AS idgroup,
- LEFT(inseecommune,2)||'0'||RIGHT(inseecommune,-2) AS cgocommune,
- ccodep
- FROM
- #schema_cadastrapp.org_autorisation
- UNION
- SELECT
- idrole AS idgroup,
- cgocommune,
- ccodep
- FROM
- #schema_cadastrapp.role_autorisation;
-ALTER TABLE #schema_cadastrapp.groupe_autorisation
- OWNER TO #user_cadastrapp;
diff --git a/database/sql/ldap/organisations.sql b/database/sql/ldap/organisations.sql
deleted file mode 100644
index 7459c924..00000000
--- a/database/sql/ldap/organisations.sql
+++ /dev/null
@@ -1,12 +0,0 @@
-CREATE FOREIGN TABLE #schema_cadastrapp.organisations (
- cn character varying,
- description character varying
-) server ldap_srv options (
- uri '#ldap_uri',
- path '#ldap_path',
- scope 'sub',
- binddn '#ldap_binddn',
- bindpwd '#ldap_bindpwd',
- objectClass 'groupOfMembers'
-);
-GRANT SELECT ON TABLE #schema_cadastrapp.organisations TO #user_cadastrapp;