From 0d8d7e858bfefecd82fc5ad03f794cd37cb90a38 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Mon, 21 Dec 2020 17:31:33 +0100 Subject: [PATCH] #562 - don't show git password on page --- .../budgetmaster/backup/AutoBackupStrategy.java | 6 ++++-- .../{services => backup}/BackupService.java | 4 ++-- .../deadlocker8/budgetmaster/backup/BackupTask.java | 5 ++++- .../budgetmaster/backup/LocalBackupTask.java | 5 +++-- .../budgetmaster/backup/LocalGitBackupTask.java | 5 +++-- .../budgetmaster/backup/RemoteGitBackupTask.java | 12 ++++++++---- .../budgetmaster/settings/SettingsController.java | 9 +++++++-- src/main/resources/languages/base_de.properties | 2 +- src/main/resources/languages/base_en.properties | 2 +- .../resources/templates/settings/settingsMacros.ftl | 2 +- 10 files changed, 34 insertions(+), 18 deletions(-) rename src/main/java/de/deadlocker8/budgetmaster/{services => backup}/BackupService.java (96%) diff --git a/src/main/java/de/deadlocker8/budgetmaster/backup/AutoBackupStrategy.java b/src/main/java/de/deadlocker8/budgetmaster/backup/AutoBackupStrategy.java index aa3f6040b..58f56a7d2 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/backup/AutoBackupStrategy.java +++ b/src/main/java/de/deadlocker8/budgetmaster/backup/AutoBackupStrategy.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.backup; import de.deadlocker8.budgetmaster.database.DatabaseService; +import de.deadlocker8.budgetmaster.settings.SettingsService; import de.thecodelabs.utils.util.Localization; import java.lang.reflect.InvocationTargetException; @@ -37,7 +38,7 @@ public enum AutoBackupStrategy return Localization.getString(localizationKey); } - public Optional<Runnable> getBackupTask(DatabaseService databaseService) + public Optional<Runnable> getBackupTask(DatabaseService databaseService, SettingsService settingsService) { if(backupTaskType == null) { @@ -46,7 +47,8 @@ public enum AutoBackupStrategy try { - return Optional.of(backupTaskType.getConstructor(DatabaseService.class).newInstance(databaseService)); + return Optional.of(backupTaskType.getConstructor(DatabaseService.class, SettingsService.class) + .newInstance(databaseService, settingsService)); } catch(InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/BackupService.java b/src/main/java/de/deadlocker8/budgetmaster/backup/BackupService.java similarity index 96% rename from src/main/java/de/deadlocker8/budgetmaster/services/BackupService.java rename to src/main/java/de/deadlocker8/budgetmaster/backup/BackupService.java index e4a72344e..c55beff9a 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/services/BackupService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/backup/BackupService.java @@ -1,4 +1,4 @@ -package de.deadlocker8.budgetmaster.services; +package de.deadlocker8.budgetmaster.backup; import de.deadlocker8.budgetmaster.backup.AutoBackupTime; import de.deadlocker8.budgetmaster.database.DatabaseService; @@ -70,7 +70,7 @@ public class BackupService final Settings settings = settingsService.getSettings(); if(settings.isAutoBackupActive()) { - final Optional<Runnable> backupTaskOptional = settings.getAutoBackupStrategy().getBackupTask(databaseService); + final Optional<Runnable> backupTaskOptional = settings.getAutoBackupStrategy().getBackupTask(databaseService, settingsService); backupTaskOptional.ifPresent(runnable -> startBackupCron(computeCron(settings.getAutoBackupTime(), settings.getAutoBackupDays()), runnable)); } } diff --git a/src/main/java/de/deadlocker8/budgetmaster/backup/BackupTask.java b/src/main/java/de/deadlocker8/budgetmaster/backup/BackupTask.java index 78246a12d..4c3e0f439 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/backup/BackupTask.java +++ b/src/main/java/de/deadlocker8/budgetmaster/backup/BackupTask.java @@ -2,6 +2,7 @@ package de.deadlocker8.budgetmaster.backup; import de.deadlocker8.budgetmaster.Main; import de.deadlocker8.budgetmaster.database.DatabaseService; +import de.deadlocker8.budgetmaster.settings.SettingsService; import java.nio.file.Path; @@ -10,11 +11,13 @@ public abstract class BackupTask implements Runnable protected static final String DATABASE_FILE_NAME = "budgetmaster.mv.db"; private final DatabaseService databaseService; + private final SettingsService settingsService; private final Path backupFolder; - protected BackupTask(DatabaseService databaseService) + protected BackupTask(DatabaseService databaseService, SettingsService settingsService) { this.databaseService = databaseService; + this.settingsService = settingsService; final Path applicationSupportFolder = Main.getApplicationSupportFolder(); this.backupFolder = applicationSupportFolder.resolve("backups"); diff --git a/src/main/java/de/deadlocker8/budgetmaster/backup/LocalBackupTask.java b/src/main/java/de/deadlocker8/budgetmaster/backup/LocalBackupTask.java index e7d18a55e..a52c30e6a 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/backup/LocalBackupTask.java +++ b/src/main/java/de/deadlocker8/budgetmaster/backup/LocalBackupTask.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.backup; import de.deadlocker8.budgetmaster.database.DatabaseService; +import de.deadlocker8.budgetmaster.settings.SettingsService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -12,9 +13,9 @@ public class LocalBackupTask extends BackupTask private final DatabaseService databaseService; - public LocalBackupTask(DatabaseService databaseService) + public LocalBackupTask(DatabaseService databaseService, SettingsService settingsService) { - super(databaseService); + super(databaseService, settingsService); this.databaseService = databaseService; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/backup/LocalGitBackupTask.java b/src/main/java/de/deadlocker8/budgetmaster/backup/LocalGitBackupTask.java index 9ac3349c8..3ec99e5b2 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/backup/LocalGitBackupTask.java +++ b/src/main/java/de/deadlocker8/budgetmaster/backup/LocalGitBackupTask.java @@ -2,6 +2,7 @@ package de.deadlocker8.budgetmaster.backup; import de.deadlocker8.budgetmaster.Main; import de.deadlocker8.budgetmaster.database.DatabaseService; +import de.deadlocker8.budgetmaster.settings.SettingsService; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.dircache.DirCache; @@ -22,9 +23,9 @@ public class LocalGitBackupTask extends BackupTask private final Path gitFolder; - public LocalGitBackupTask(DatabaseService databaseService) + public LocalGitBackupTask(DatabaseService databaseService, SettingsService settingsService) { - super(databaseService); + super(databaseService, settingsService); this.gitFolder = Main.getApplicationSupportFolder().resolve(".git"); } diff --git a/src/main/java/de/deadlocker8/budgetmaster/backup/RemoteGitBackupTask.java b/src/main/java/de/deadlocker8/budgetmaster/backup/RemoteGitBackupTask.java index 7ee852f53..6fba340a2 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/backup/RemoteGitBackupTask.java +++ b/src/main/java/de/deadlocker8/budgetmaster/backup/RemoteGitBackupTask.java @@ -2,6 +2,8 @@ package de.deadlocker8.budgetmaster.backup; import de.deadlocker8.budgetmaster.Main; import de.deadlocker8.budgetmaster.database.DatabaseService; +import de.deadlocker8.budgetmaster.settings.Settings; +import de.deadlocker8.budgetmaster.settings.SettingsService; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.errors.GitAPIException; import org.eclipse.jgit.dircache.DirCache; @@ -26,13 +28,15 @@ public class RemoteGitBackupTask extends BackupTask private final UsernamePasswordCredentialsProvider credentialsProvider; private final String remote; - public RemoteGitBackupTask(DatabaseService databaseService) + public RemoteGitBackupTask(DatabaseService databaseService, SettingsService settingsService) { - super(databaseService); + super(databaseService, settingsService); this.gitFolder = Main.getApplicationSupportFolder().resolve(".git"); - this.credentialsProvider = new UsernamePasswordCredentialsProvider("", ""); - this.remote = "https://thecodelabs.de/deadlocker8/bm_test.git"; + final Settings settings = settingsService.getSettings(); + + this.credentialsProvider = new UsernamePasswordCredentialsProvider(settings.getAutoBackupGitUserName(), settings.getAutoBackupGitPassword()); + this.remote = settings.getAutoBackupGitUrl(); } @Override diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java index 0ccfd992d..a144a5c33 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java @@ -12,7 +12,7 @@ import de.deadlocker8.budgetmaster.database.Database; import de.deadlocker8.budgetmaster.database.DatabaseParser; import de.deadlocker8.budgetmaster.database.DatabaseService; import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatchList; -import de.deadlocker8.budgetmaster.services.BackupService; +import de.deadlocker8.budgetmaster.backup.BackupService; import de.deadlocker8.budgetmaster.services.ImportService; import de.deadlocker8.budgetmaster.update.BudgetMasterUpdateService; import de.deadlocker8.budgetmaster.utils.LanguageType; @@ -115,6 +115,11 @@ public class SettingsController extends BaseController settings.setAutoBackupStrategy(AutoBackupStrategy.NONE); } + if(settings.getAutoBackupGitPassword().equals("•••••")) + { + settings.setAutoBackupGitPassword(settingsService.getSettings().getAutoBackupGitPassword()); + } + final String cron = scheduleTaskService.computeCron(settings.getAutoBackupTime(), settings.getAutoBackupDays()); scheduleTaskService.stopBackupCron(); if(settings.getAutoBackupStrategy() == AutoBackupStrategy.NONE) @@ -128,7 +133,7 @@ public class SettingsController extends BaseController } else { - final Optional<Runnable> backupTaskOptional = settings.getAutoBackupStrategy().getBackupTask(databaseService); + final Optional<Runnable> backupTaskOptional = settings.getAutoBackupStrategy().getBackupTask(databaseService, settingsService); backupTaskOptional.ifPresent(runnable -> scheduleTaskService.startBackupCron(cron, runnable)); } diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties index 8d0c447b6..713f5e387 100644 --- a/src/main/resources/languages/base_de.properties +++ b/src/main/resources/languages/base_de.properties @@ -144,7 +144,7 @@ warning.empty.chart.name=Bitte gib einen Namen ein. warning.empty.chart.script=Bitte gib ein Script ein. warning.duplicate.template.name=Es existiert bereits eine Vorlage mit diesem Namen. warning.transaction.date=Das angegebene Datum entspricht nicht dem erlaubten Format. Erwartetes Format: DD.MM.YY, DDMMYY, DD.MM.YYYY, DDMMYYYY. -warning.empty.git.user.url=Bitte gib die URL zum git-Server ein. +warning.empty.git.url=Bitte gib die URL zum git-Server ein. warning.empty.git.user.name=Bitte gib deinen git-Nutzernamen ein. warning.empty.git.password=Bitte gib dein git-Passwort ein. diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties index 95d69f583..1f2543d5d 100644 --- a/src/main/resources/languages/base_en.properties +++ b/src/main/resources/languages/base_en.properties @@ -144,7 +144,7 @@ warning.empty.chart.name=Please insert a name. warning.empty.chart.script=Please insert a script. warning.duplicate.template.name=A template with this name is already existing. warning.transaction.date=The specified date does not correspond to the allowed format. Expected format: DD.MM.YY, DDMMYY, DD.MM.YYYY, DDMMYYYY. -warning.empty.git.user.url=Please insert the git server's URL. +warning.empty.git.url=Please insert the git server's URL. warning.empty.git.user.name=Please insert your git user name. warning.empty.git.password=Please insert your git password. diff --git a/src/main/resources/templates/settings/settingsMacros.ftl b/src/main/resources/templates/settings/settingsMacros.ftl index b12710956..762a186e0 100644 --- a/src/main/resources/templates/settings/settingsMacros.ftl +++ b/src/main/resources/templates/settings/settingsMacros.ftl @@ -220,7 +220,7 @@ <div class="input-field col s12 m12 l8 offset-l2"> <i class="material-icons prefix">vpn_key</i> - <input id="settings-backup-auto-git-password" name="autoBackupGitPassword" type="text" <@validation.validation "autoBackupGitPassword"/> value="<#if settings.isAutoBackupActive()??>${settings.getAutoBackupGitPassword()}</#if>"> + <input id="settings-backup-auto-git-password" name="autoBackupGitPassword" type="text" <@validation.validation "autoBackupGitPassword"/> value="•••••"> <label for="settings-backup-auto-git-password">${locale.getString("settings.backup.auto.git.password")}</label> </div> -- GitLab