Fix path handling for file provider database setup

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2023-01-26 23:10:43 +01:00
parent e7e985f355
commit f01b6a545f
No known key found for this signature in database
GPG key ID: C839200C384636B0

View file

@ -22,8 +22,8 @@ class NextcloudFilesDatabaseManager : NSObject {
return NextcloudFilesDatabaseManager();
}()
let relativeDatabaseFolderPath: String = "Database/"
let databaseFilename: String = "fileproviderextdatabase.realm"
let relativeDatabaseFolderPath = "Database/"
let databaseFilename = "fileproviderextdatabase.realm"
let relativeDatabaseFilePath: String
var databasePath: URL?
@ -37,16 +37,18 @@ class NextcloudFilesDatabaseManager : NSObject {
return
}
self.databasePath = fileProviderDataDirUrl.appendingPathExtension(self.relativeDatabaseFilePath)
self.databasePath = fileProviderDataDirUrl.appendingPathComponent(self.relativeDatabaseFilePath)
// Disable file protection for directory DB
// https://docs.mongodb.com/realm/sdk/ios/examples/configure-and-open-a-realm/#std-label-ios-open-a-local-realm
let folderPath = fileProviderDataDirUrl.appendingPathComponent(self.relativeDatabaseFolderPath).path
let dbFolder = fileProviderDataDirUrl.appendingPathComponent(self.relativeDatabaseFolderPath)
let dbFolderPath = dbFolder.path
do {
try FileManager.default.setAttributes([FileAttributeKey.protectionKey: FileProtectionType.completeUntilFirstUserAuthentication], ofItemAtPath: folderPath)
} catch {
NSLog("Could not set permission level for File Provider database folder")
}
try FileManager.default.createDirectory(at: dbFolder, withIntermediateDirectories: true)
try FileManager.default.setAttributes([FileAttributeKey.protectionKey: FileProtectionType.completeUntilFirstUserAuthentication], ofItemAtPath: dbFolderPath)
} catch let error {
NSLog("Could not set permission level for File Provider database folder, received error: %@", error.localizedDescription)
}
let config = Realm.Configuration(
fileURL: self.databasePath,