aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-03 09:15:32 +0100
committerDanilo M. <danix@danix.xyz>2026-11-03 09:15:32 +0100
commitcb10a78f9de660be32c16f08404137334541d4c0 (patch)
treea1d2c4cd42e9414ed4f2da3b662d33b4f6043d1f /app/src/main/java
parent7bdcb041de95c8d8d8d14f1dbd34a3380b326871 (diff)
downloadHardenedPass-cb10a78f9de660be32c16f08404137334541d4c0.tar.gz
HardenedPass-cb10a78f9de660be32c16f08404137334541d4c0.zip
fix(app): pick editor recipients and folder from resolved paths
- Look up the .gpg-id from the normalized target's folder, so a prefilled folder such as a/../b cannot pick a/'s recipients. - Derive the edited entry's folder from its canonical parent, so a store path spelled differently does not show as ../../data/...; the file name still comes from the link. - Drop the REPO_PATH shortcut extra nothing reads any more. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/app/passwordstore/data/password/PasswordItem.kt2
-rw-r--r--app/src/main/java/app/passwordstore/ui/editor/EditorDestination.kt3
-rw-r--r--app/src/main/java/app/passwordstore/ui/main/MainActivity.kt6
3 files changed, 5 insertions, 6 deletions
diff --git a/app/src/main/java/app/passwordstore/data/password/PasswordItem.kt b/app/src/main/java/app/passwordstore/data/password/PasswordItem.kt
index 82798a05..765e886d 100644
--- a/app/src/main/java/app/passwordstore/data/password/PasswordItem.kt
+++ b/app/src/main/java/app/passwordstore/data/password/PasswordItem.kt
@@ -6,7 +6,6 @@ package app.passwordstore.data.password
import android.content.Context
import android.content.Intent
-import app.passwordstore.data.repo.PasswordRepository
import app.passwordstore.ui.crypto.BasePGPActivity
import app.passwordstore.ui.main.LaunchActivity
import java.io.File
@@ -44,7 +43,6 @@ data class PasswordItem(
val intent = Intent(context, LaunchActivity::class.java)
intent.putExtra("NAME", toString())
intent.putExtra("FILE_PATH", file.absolutePath)
- intent.putExtra("REPO_PATH", PasswordRepository.getRepositoryDirectory().absolutePath)
intent.action = LaunchActivity.ACTION_DECRYPT_PASS
return intent
}
diff --git a/app/src/main/java/app/passwordstore/ui/editor/EditorDestination.kt b/app/src/main/java/app/passwordstore/ui/editor/EditorDestination.kt
index 2d1e12f7..6d9f9c9f 100644
--- a/app/src/main/java/app/passwordstore/ui/editor/EditorDestination.kt
+++ b/app/src/main/java/app/passwordstore/ui/editor/EditorDestination.kt
@@ -120,7 +120,8 @@ fun EditorDestination(
}
if (problem != null) return say(problem)
// Recipients from the nearest .gpg-id, as pass does; null: an invalid ID, already reported.
- val ids = activity.getPGPIdentifiers(current.dir) ?: return
+ val ids =
+ activity.getPGPIdentifiers(target.parentFile?.relativeTo(root)?.path.orEmpty()) ?: return
activity.lifecycleScope.launch {
val result = viewModel.save(ids, target, original, activity, copy)
if (result is SaveResult.Failed) failure = activity.getString(result.message, result.arg)
diff --git a/app/src/main/java/app/passwordstore/ui/main/MainActivity.kt b/app/src/main/java/app/passwordstore/ui/main/MainActivity.kt
index da708148..58ef4381 100644
--- a/app/src/main/java/app/passwordstore/ui/main/MainActivity.kt
+++ b/app/src/main/java/app/passwordstore/ui/main/MainActivity.kt
@@ -122,9 +122,9 @@ class MainActivity : BaseGitActivity() {
},
onEdit = {
if (nav.currentBackStackEntry?.id == entry.id) {
- // Not canonical: a symlinked entry keeps its own folder and name.
- val root = PasswordRepository.getRepositoryDirectory()
- val dir = file.parentFile?.relativeTo(root)?.path.orEmpty()
+ // Canonical folder, link's own name: a symlinked entry keeps its name.
+ val root = PasswordRepository.getRepositoryDirectory().canonicalFile
+ val dir = file.parentFile?.canonicalFile?.relativeTo(root)?.path.orEmpty()
nav.navigate(EditRoute(dir, file.nameWithoutExtension))
}
},