Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

11 changed files:

Changes:

  • client-core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java
    ... ... @@ -115,7 +115,8 @@ public class ObserveSwingDataSource extends ObserveServicesProviderSupport {
    115 115
         private boolean modified;
    
    116 116
         // indique si l'utilisateur connecté est le propriétaire de la base
    
    117 117
         private boolean owner;
    
    118
    -    private ObserveServiceMainFactory serviceFactory;
    
    118
    +    private boolean superUser;
    
    119
    +    private final ObserveServiceMainFactory serviceFactory;
    
    119 120
     
    
    120 121
         public ObserveSwingDataSource(ClientConfig config, ObserveServiceMainFactory serviceFactory, ObserveDataSourceConfiguration configuration) {
    
    121 122
             this.config = config;
    
    ... ... @@ -201,7 +202,9 @@ public class ObserveSwingDataSource extends ObserveServicesProviderSupport {
    201 202
                     canWriteReferential(),
    
    202 203
                     canReadData(),
    
    203 204
                     canWriteData(),
    
    204
    -                isOwner(), getVersion(),
    
    205
    +                isOwner(),
    
    206
    +                isSuperUser(),
    
    207
    +                getVersion(),
    
    205 208
                     getVersion(),
    
    206 209
                     ImmutableList.of());
    
    207 210
         }
    
    ... ... @@ -446,6 +449,14 @@ public class ObserveSwingDataSource extends ObserveServicesProviderSupport {
    446 449
             return configuration instanceof ObserveDataSourceConfigurationRest;
    
    447 450
         }
    
    448 451
     
    
    452
    +    public boolean isSuperUser() {
    
    453
    +        return superUser;
    
    454
    +    }
    
    455
    +
    
    456
    +    public void setSuperUser(boolean superUser) {
    
    457
    +        this.superUser = superUser;
    
    458
    +    }
    
    459
    +
    
    449 460
         public void addObserveSwingDataSourceListener(ObserveSwingDataSourceListener listener) {
    
    450 461
             listenerList.add(ObserveSwingDataSourceListener.class, listener);
    
    451 462
         }
    

  • client-datasource-editor-api/src/main/i18n/getters/java.getter
    ... ... @@ -187,6 +187,7 @@ observe.storage.error.rest.user.unknown
    187 187
     observe.storage.error.serverVersionMismatch
    
    188 188
     observe.storage.error.serverVersionModelMismatch
    
    189 189
     observe.storage.error.user.not.owner
    
    190
    +observe.storage.error.user.not.superUser
    
    190 191
     observe.storage.internalDump.last.modified
    
    191 192
     observe.storage.internalDump.not.exist
    
    192 193
     observe.storage.label.data.import.db
    

  • client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/StorageUIHandler.java
    ... ... @@ -486,6 +486,7 @@ public class StorageUIHandler implements UIHandler<StorageUI>, WithDecoratorServ
    486 486
     
    
    487 487
                     ObserveDataSourceInformation dataSourceInformation = currentDataSource.checkCanConnect(false);
    
    488 488
                     currentDataSource.setOwner(dataSourceInformation.isOwner());
    
    489
    +                currentDataSource.setSuperUser(dataSourceInformation.isSuperUser());
    
    489 490
                     progressModel.setExtent(1);
    
    490 491
     
    
    491 492
                     currentDataSource.migrateData(dataSourceInformation, config.getModelVersion());
    

  • client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/StorageUIModel.java
    ... ... @@ -477,6 +477,7 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    477 477
             }
    
    478 478
             if (getDataSourceInformation() != null) {
    
    479 479
                 dataSource.setOwner(getDataSourceInformation().isOwner());
    
    480
    +            dataSource.setSuperUser(getDataSourceInformation().isSuperUser());
    
    480 481
             }
    
    481 482
             return dataSource;
    
    482 483
         }
    
    ... ... @@ -1689,6 +1690,7 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    1689 1690
                             boolean createAction = ObstunaAdminAction.CREATE.equals(adminAction);
    
    1690 1691
                             dataSourceInformation = dataSource.checkCanConnect(createAction);
    
    1691 1692
                             dataSource.setOwner(dataSourceInformation.isOwner());
    
    1693
    +                        dataSource.setSuperUser(dataSourceInformation.isSuperUser());
    
    1692 1694
                             Version versionDataSource = dataSourceInformation.getVersion();
    
    1693 1695
     
    
    1694 1696
                             // en mise a jour de la base on ne test pas la version
    
    ... ... @@ -1745,6 +1747,11 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    1745 1747
                     log.error(connexionStatusError);
    
    1746 1748
                     setConnexionStatus(ConnexionStatus.FAILED);
    
    1747 1749
                     result = false;
    
    1750
    +            } else if (!dataSourceInformation.isSuperUser()) {
    
    1751
    +                connexionStatusError = t("observe.storage.error.user.not.superUser");
    
    1752
    +                log.error(connexionStatusError);
    
    1753
    +                setConnexionStatus(ConnexionStatus.FAILED);
    
    1754
    +                result = false;
    
    1748 1755
                 }
    
    1749 1756
             }
    
    1750 1757
             return result;
    

  • client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/presets/actions/TestRemote.java
    ... ... @@ -66,6 +66,7 @@ public class TestRemote extends RemoteActionSupport {
    66 66
     
    
    67 67
                 ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false);
    
    68 68
                 dataSource.setOwner(dataSourceInformation.isOwner());
    
    69
    +            dataSource.setSuperUser(dataSourceInformation.isSuperUser());
    
    69 70
     
    
    70 71
                 Version versionDataSource = dataSourceInformation.getVersion();
    
    71 72
     
    

  • client-runner/src/main/java/fr/ird/observe/client/RunObserve.java
    ... ... @@ -380,6 +380,7 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager,
    380 380
     
    
    381 381
                     ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(false);
    
    382 382
                     dataSource.setOwner(dataSourceInformation.isOwner());
    
    383
    +                dataSource.setSuperUser(dataSourceInformation.isSuperUser());
    
    383 384
                     dataSource.migrateDataIfPossible(dataSourceInformation, config.getModelVersion());
    
    384 385
     
    
    385 386
                     // la source sera utilisée dans les ui
    

  • observe-i18n/src/main/i18n/translations/observe_en_GB.properties
    ... ... @@ -2780,6 +2780,7 @@ observe.storage.error.rest.user.unknown=User "%s" is not defined on server
    2780 2780
     observe.storage.error.serverVersionMismatch=Remote server version (%s) is not compliant with the client version (%s)
    
    2781 2781
     observe.storage.error.serverVersionModelMismatch=Remote server model version (%s) is not compliant with the client model version (%s)
    
    2782 2782
     observe.storage.error.user.not.owner=User must be owner of database to perform this action\!
    
    2783
    +observe.storage.error.user.not.superUser=User must be super-user of database to perform this action\!
    
    2783 2784
     observe.storage.import.data.fromBackup=Import data from a backup of a local database (*.sql.gz)
    
    2784 2785
     observe.storage.import.data.fromRemoteStorage=Import data from a remote database
    
    2785 2786
     observe.storage.import.data.fromServerStorage=Import data from a remove server
    

  • observe-i18n/src/main/i18n/translations/observe_es_ES.properties
    ... ... @@ -2780,6 +2780,7 @@ observe.storage.error.rest.user.unknown=El usuario "%s" no es conocido del servi
    2780 2780
     observe.storage.error.serverVersionMismatch=La versión del servidor remoto (%s) no es compatible con la versión del modelo (%s)
    
    2781 2781
     observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s) \#TODO
    
    2782 2782
     observe.storage.error.user.not.owner=User must be owner of database to perform this action\! \#TODO
    
    2783
    +observe.storage.error.user.not.superUser=User must be super-user of database to perform this action\! \#TODO
    
    2783 2784
     observe.storage.import.data.fromBackup=Importar los datos de una copia de seguridad de una base local (*.sql.gz)
    
    2784 2785
     observe.storage.import.data.fromRemoteStorage=Importar los datos de una base remota
    
    2785 2786
     observe.storage.import.data.fromServerStorage=Importar los datos de un servidor remoto
    

  • observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
    ... ... @@ -2780,6 +2780,7 @@ observe.storage.error.rest.user.unknown=L'utilisateur "%s" est inconnu sur le se
    2780 2780
     observe.storage.error.serverVersionMismatch=La version du serveur distant (%s) n'est pas compatible avec la version du client (%s)
    
    2781 2781
     observe.storage.error.serverVersionModelMismatch=La version du modèle du serveur distant (%s) n'est pas compatible avec la version du modèle du client (%s)
    
    2782 2782
     observe.storage.error.user.not.owner=L'utilisateur doit être le propriétaire de la base pour effectuer cette opération \!
    
    2783
    +observe.storage.error.user.not.superUser=L'utilisateur doit être *Super utilisateur* pour effectuer cette opération \!
    
    2783 2784
     observe.storage.import.data.fromBackup=Importer les données depuis une sauvegarde de base locale (*.sql.gz)
    
    2784 2785
     observe.storage.import.data.fromRemoteStorage=Importer les données depuis une base distante
    
    2785 2786
     observe.storage.import.data.fromServerStorage=Importer les données depuis un serveur distant
    

  • pom.xml
    ... ... @@ -24,7 +24,7 @@
    24 24
       <parent>
    
    25 25
         <groupId>io.ultreia.maven</groupId>
    
    26 26
         <artifactId>pom</artifactId>
    
    27
    -    <version>2020.24</version>
    
    27
    +    <version>2020.25</version>
    
    28 28
       </parent>
    
    29 29
     
    
    30 30
       <groupId>fr.ird.observe</groupId>
    
    ... ... @@ -162,7 +162,7 @@
    162 162
         <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format>
    
    163 163
         <buildDate>${maven.build.timestamp}</buildDate>
    
    164 164
     
    
    165
    -    <lib.version.toolkit>4.29</lib.version.toolkit>
    
    165
    +    <lib.version.toolkit>4.30</lib.version.toolkit>
    
    166 166
         <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation>
    
    167 167
         <!--can't use 1.4.197 (date has changed + blob also)-->
    
    168 168
         <lib.version.h2>1.4.196</lib.version.h2>
    
    ... ... @@ -176,7 +176,7 @@
    176 176
         <!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>-->
    
    177 177
         <!--<lib.version.java4all.config>1.0.8-SNAPSHOT</lib.version.java4all.config>-->
    
    178 178
         <!--<lib.version.nuiton.topia>3.4.2-SNAPSHOT</lib.version.nuiton.topia>-->
    
    179
    -<!--    <lib.version.java4all.topia>1.19-SNAPSHOT</lib.version.java4all.topia>-->
    
    179
    +<!--    <lib.version.java4all.topia>1.20-SNAPSHOT</lib.version.java4all.topia>-->
    
    180 180
         <!--<lib.version.java4all.http>1.0.17-SNAPSHOT</lib.version.java4all.http>-->
    
    181 181
     
    
    182 182
         <!-- license header configuration -->
    

  • services-local/src/main/java/fr/ird/observe/services/local/service/DataSourceServiceLocal.java
    ... ... @@ -105,6 +105,13 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
    105 105
             return jdbcHelper.isOwner();
    
    106 106
         }
    
    107 107
     
    
    108
    +    private static boolean isSuperUser(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, JdbcPostgresHelper jdbcHelper) {
    
    109
    +        if (dataSourceConfiguration.isH2Database()) {
    
    110
    +            return true;
    
    111
    +        }
    
    112
    +        return jdbcHelper.isSuperUser();
    
    113
    +    }
    
    114
    +
    
    108 115
         @Override
    
    109 116
         public ObserveDataSourceInformation checkCanConnectOrBeEmpty(ObserveDataSourceConfiguration dataSourceConfiguration) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException {
    
    110 117
             ObserveDataSourceConfigurationTopiaSupport dataSourceConfigurationTopiaSupport = (ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration;
    
    ... ... @@ -630,6 +637,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
    630 637
     
    
    631 638
             JdbcPostgresHelper jdbcHelper = new JdbcPostgresHelper(topiaConfiguration);
    
    632 639
             boolean owner = isOwner(dataSourceConfiguration, jdbcHelper);
    
    640
    +        boolean superUser = isSuperUser(dataSourceConfiguration, jdbcHelper);
    
    633 641
     
    
    634 642
             try {
    
    635 643
                 version = TMSVersionHibernateDao.getVersion(jdbcHelper, "tms_version").map(TMSVersion::toVersion).orElse(Version.VZERO);
    
    ... ... @@ -643,7 +651,6 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
    643 651
                     writeReferential = false;
    
    644 652
                     readData = true;
    
    645 653
                     writeData = true;
    
    646
    -                owner = true;
    
    647 654
     
    
    648 655
                 } else {
    
    649 656
                     writeReferential = true;
    
    ... ... @@ -656,6 +663,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
    656 663
                         readData,
    
    657 664
                         writeData,
    
    658 665
                         owner,
    
    666
    +                    superUser,
    
    659 667
                         ObserveTopiaMigrationServiceAskUserToMigrate.getMinimumVersion(),
    
    660 668
                         null,
    
    661 669
                         null);
    
    ... ... @@ -712,6 +720,7 @@ public class DataSourceServiceLocal extends ObserveServiceLocal implements DataS
    712 720
                     readData,
    
    713 721
                     writeData,
    
    714 722
                     owner,
    
    723
    +                superUser,
    
    715 724
                     ObserveTopiaMigrationServiceAskUserToMigrate.getMinimumVersion(),
    
    716 725
                     version,
    
    717 726
                     observeMigrationConfigurationProvider.getVersionsAfter(version));