mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	Merge pull request #3122 from nichwall/backup_field_prevent_edits_with_env
Prevent backup path edits when ENV is set
This commit is contained in:
		
						commit
						3a2f786517
					
				| @ -171,7 +171,7 @@ export default { | ||||
|       this.$axios | ||||
|         .$get('/api/backups') | ||||
|         .then((data) => { | ||||
|           this.$emit('loaded', data.backupLocation) | ||||
|           this.$emit('loaded', data) | ||||
|           this.setBackups(data.backups || []) | ||||
|         }) | ||||
|         .catch((error) => { | ||||
|  | ||||
| @ -16,11 +16,11 @@ | ||||
|         </div> | ||||
|         <div v-else> | ||||
|           <form class="flex items-center w-full space-x-1" @submit.prevent="saveBackupPath"> | ||||
|             <ui-text-input v-model="newBackupLocation" :disabled="savingBackupPath" class="w-full max-w-[calc(100%-50px)] text-sm h-8" /> | ||||
|             <ui-btn small :loading="savingBackupPath" color="success" type="submit" class="h-8">{{ $strings.ButtonSave }}</ui-btn> | ||||
|             <ui-text-input v-model="newBackupLocation" :disabled="savingBackupPath || !canEditBackup" class="w-full max-w-[calc(100%-50px)] text-sm h-8" /> | ||||
|             <ui-btn v-if="canEditBackup" small :loading="savingBackupPath" color="success" type="submit" class="h-8">{{ $strings.ButtonSave }}</ui-btn> | ||||
|             <ui-btn small :disabled="savingBackupPath" type="button" class="h-8" @click="cancelEditBackupPath">{{ $strings.ButtonCancel }}</ui-btn> | ||||
|           </form> | ||||
|           <p class="text-sm text-warning/80 pt-1">{{ $strings.MessageBackupsLocationEditNote }}</p> | ||||
|           <p class="text-sm text-warning/80 pt-1">{{ canEditBackup ? $strings.MessageBackupsLocationEditNote : $strings.MessageBackupsLocationNoEditNote }}</p> | ||||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
| @ -92,6 +92,7 @@ export default { | ||||
|       newServerSettings: {}, | ||||
|       showCronBuilder: false, | ||||
|       showEditBackupPath: false, | ||||
|       backupPathEnvSet: false, | ||||
|       backupLocation: '', | ||||
|       newBackupLocation: '', | ||||
|       savingBackupPath: false | ||||
| @ -115,6 +116,10 @@ export default { | ||||
|     timeFormat() { | ||||
|       return this.serverSettings.timeFormat | ||||
|     }, | ||||
|     canEditBackup() { | ||||
|       // Prevent editing of backup path if an environment variable is set | ||||
|       return !this.backupPathEnvSet | ||||
|     }, | ||||
|     scheduleDescription() { | ||||
|       if (!this.cronExpression) return '' | ||||
|       const parsed = this.$parseCronExpression(this.cronExpression) | ||||
| @ -127,9 +132,10 @@ export default { | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     backupsLoaded(backupLocation) { | ||||
|       this.backupLocation = backupLocation | ||||
|       this.newBackupLocation = backupLocation | ||||
|     backupsLoaded(data) { | ||||
|       this.backupLocation = data.backupLocation | ||||
|       this.newBackupLocation = data.backupLocation | ||||
|       this.backupPathEnvSet = data.backupPathEnvSet | ||||
|     }, | ||||
|     cancelEditBackupPath() { | ||||
|       this.newBackupLocation = this.backupLocation | ||||
|  | ||||
| @ -605,6 +605,7 @@ | ||||
|   "MessageAppriseDescription": "To use this feature you will need to have an instance of <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> running or an api that will handle those same requests. <br />The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at <code>http://192.168.1.1:8337</code> then you would put <code>http://192.168.1.1:8337/notify</code>.", | ||||
|   "MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>do not</strong> include any files stored in your library folders.", | ||||
|   "MessageBackupsLocationEditNote": "Note: Updating the backup location will not move or modify existing backups", | ||||
|   "MessageBackupsLocationNoEditNote": "Note: The backup location is set through an environment variable and cannot be changed here.", | ||||
|   "MessageBackupsLocationPathEmpty": "Backup location path cannot be empty", | ||||
|   "MessageBatchQuickMatchDescription": "Quick Match will attempt to add missing covers and metadata for the selected items. Enable the options below to allow Quick Match to overwrite existing covers and/or metadata.", | ||||
|   "MessageBookshelfNoCollections": "You haven't made any collections yet", | ||||
|  | ||||
| @ -10,7 +10,8 @@ class BackupController { | ||||
|   getAll(req, res) { | ||||
|     res.json({ | ||||
|       backups: this.backupManager.backups.map((b) => b.toJSON()), | ||||
|       backupLocation: this.backupManager.backupPath | ||||
|       backupLocation: this.backupManager.backupPath, | ||||
|       backupPathEnvSet: this.backupManager.backupPathEnvSet | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|  | ||||
| @ -29,6 +29,10 @@ class BackupManager { | ||||
|     return global.ServerSettings.backupPath | ||||
|   } | ||||
| 
 | ||||
|   get backupPathEnvSet() { | ||||
|     return !!process.env.BACKUP_PATH | ||||
|   } | ||||
| 
 | ||||
|   get backupSchedule() { | ||||
|     return global.ServerSettings.backupSchedule | ||||
|   } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user