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
|
- Add ability to view the Git commit log
|
||||||
- Allow generating ECDSA and ED25519 keys for SSH
|
- Allow generating ECDSA and ED25519 keys for SSH
|
||||||
- Add support for multiple/fallback authentication methods 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
|
### Changed
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ import com.zeapo.pwdstore.databinding.ActivityGitCloneBinding
|
||||||
import com.zeapo.pwdstore.git.config.AuthMode
|
import com.zeapo.pwdstore.git.config.AuthMode
|
||||||
import com.zeapo.pwdstore.git.config.GitSettings
|
import com.zeapo.pwdstore.git.config.GitSettings
|
||||||
import com.zeapo.pwdstore.git.config.Protocol
|
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.PasswordRepository
|
||||||
import com.zeapo.pwdstore.utils.snackbar
|
import com.zeapo.pwdstore.utils.snackbar
|
||||||
import com.zeapo.pwdstore.utils.viewBinding
|
import com.zeapo.pwdstore.utils.viewBinding
|
||||||
|
@ -87,6 +88,22 @@ class GitServerConfigActivity : BaseGitActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.saveButton.setOnClickListener {
|
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(
|
when (val updateResult = GitSettings.updateConnectionSettingsIfValid(
|
||||||
newAuthMode = newAuthMode,
|
newAuthMode = newAuthMode,
|
||||||
newUrl = binding.serverUrl.text.toString().trim(),
|
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="err_enter_store_name">Enter a store name to continue</string>
|
||||||
<string name="exception_cannot_create_directory">Cannot create new directory.</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>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue