Add check for potential issues with SSH URL
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
5d5a068591
commit
e8e0cc791f
3 changed files with 22 additions and 0 deletions
|
@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file.
|
|||
- Add ability to view the Git commit log
|
||||
- Allow generating ECDSA and ED25519 keys for SSH
|
||||
- Add support for multiple/fallback authentication methods for SSH
|
||||
- Add warning when the custom SSH port in a URL could potentially be ignored
|
||||
|
||||
### Changed
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ import com.zeapo.pwdstore.databinding.ActivityGitCloneBinding
|
|||
import com.zeapo.pwdstore.git.config.AuthMode
|
||||
import com.zeapo.pwdstore.git.config.GitSettings
|
||||
import com.zeapo.pwdstore.git.config.Protocol
|
||||
import com.zeapo.pwdstore.ui.dialogs.BasicBottomSheet
|
||||
import com.zeapo.pwdstore.utils.PasswordRepository
|
||||
import com.zeapo.pwdstore.utils.snackbar
|
||||
import com.zeapo.pwdstore.utils.viewBinding
|
||||
|
@ -87,6 +88,22 @@ class GitServerConfigActivity : BaseGitActivity() {
|
|||
}
|
||||
|
||||
binding.saveButton.setOnClickListener {
|
||||
val newUrl = binding.serverUrl.text.toString().trim()
|
||||
// If url is of type john_doe@example.org:12435/path/to/repo, then not adding `ssh://`
|
||||
// in the beginning will cause the port to be seen as part of the path. Let users know
|
||||
// about it and offer a quickfix.
|
||||
if (newUrl.contains(":[0-9]{1,5}/".toRegex()) && !newUrl.startsWith("ssh://")) {
|
||||
BasicBottomSheet.Builder(this)
|
||||
.setTitleRes(R.string.ssh_scheme_needed_title)
|
||||
.setMessageRes(R.string.ssh_scheme_needed_message)
|
||||
.setPositiveButtonClickListener {
|
||||
@Suppress("SetTextI18n")
|
||||
binding.serverUrl.setText("ssh://$newUrl")
|
||||
}
|
||||
.build()
|
||||
.show(supportFragmentManager, "SSH_SCHEME_WARNING")
|
||||
return@setOnClickListener
|
||||
}
|
||||
when (val updateResult = GitSettings.updateConnectionSettingsIfValid(
|
||||
newAuthMode = newAuthMode,
|
||||
newUrl = binding.serverUrl.text.toString().trim(),
|
||||
|
|
|
@ -436,4 +436,8 @@
|
|||
<string name="err_enter_store_name">Enter a store name to continue</string>
|
||||
<string name="exception_cannot_create_directory">Cannot create new directory.</string>
|
||||
|
||||
<!-- SSH port validation -->
|
||||
<string name="ssh_scheme_needed_title">Potentially incorrect URL</string>
|
||||
<string name="ssh_scheme_needed_message">It appears that your URL contains a custom port, but does not specify the ssh:// scheme.\nThis can cause the port to be considered a part of your path. Press OK here to fix the URL.</string>
|
||||
|
||||
</resources>
|
||||
|
|
Loading…
Reference in a new issue