diff options
| author | Harsh Shandilya <msfjarvis@gmail.com> | 2020-05-08 20:50:04 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-08 20:50:04 +0530 |
| commit | 4c461fb174428d0c96d80a634e01578e846eb44b (patch) | |
| tree | c0e7e4c3b603943baaac22334925d9410961486d /app/src/main/java/com/zeapo/pwdstore/git | |
| parent | ed3312b3032ede9786d049706e74a60c973b7b72 (diff) | |
| download | HardenedPass-4c461fb174428d0c96d80a634e01578e846eb44b.tar.gz HardenedPass-4c461fb174428d0c96d80a634e01578e846eb44b.zip | |
Introduce no-auth mode for connections (#768)
Fixes #758
Fixes #526
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git')
4 files changed, 27 insertions, 18 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.kt b/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.kt index 817d9dca..82f3d7f6 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitOperation.kt @@ -247,6 +247,9 @@ abstract class GitOperation(fileDir: File, internal val callingActivity: Activit dialog.show() } } + ConnectionMode.None -> { + execute() + } } } diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt b/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt index a10f3460..14f9bb62 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitServerConfigActivity.kt @@ -24,7 +24,7 @@ import java.io.IOException */ class GitServerConfigActivity : BaseGitActivity() { - lateinit var binding: ActivityGitCloneBinding + private lateinit var binding: ActivityGitCloneBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -36,11 +36,10 @@ class GitServerConfigActivity : BaseGitActivity() { setContentView(binding.root) supportActionBar?.setDisplayHomeAsUpEnabled(true) - val protocolIdToCheck = when (protocol) { + binding.cloneProtocolGroup.check(when (protocol) { Protocol.Ssh -> R.id.clone_protocol_ssh Protocol.Https -> R.id.clone_protocol_https - } - binding.cloneProtocolGroup.check(protocolIdToCheck) + }) binding.cloneProtocolGroup.addOnButtonCheckedListener { _, checkedId, checked -> if (checked) { when (checkedId) { @@ -51,19 +50,18 @@ class GitServerConfigActivity : BaseGitActivity() { } } - val connectionModeIdToCheck = when (connectionMode) { + binding.connectionModeGroup.check(when (connectionMode) { ConnectionMode.SshKey -> R.id.connection_mode_ssh_key ConnectionMode.Password -> R.id.connection_mode_password ConnectionMode.OpenKeychain -> R.id.connection_mode_open_keychain - } - binding.connectionModeGroup.check(connectionModeIdToCheck) - binding.connectionModeGroup.addOnButtonCheckedListener { _, checkedId, checked -> - if (checked) { - when (checkedId) { - R.id.connection_mode_ssh_key -> connectionMode = ConnectionMode.SshKey - R.id.connection_mode_open_keychain -> connectionMode = ConnectionMode.OpenKeychain - R.id.connection_mode_password -> connectionMode = ConnectionMode.Password - } + ConnectionMode.None -> R.id.connection_mode_none + }) + binding.connectionModeGroup.setOnCheckedChangeListener { group, _ -> + when (group.checkedRadioButtonId) { + R.id.connection_mode_ssh_key -> connectionMode = ConnectionMode.SshKey + R.id.connection_mode_open_keychain -> connectionMode = ConnectionMode.OpenKeychain + R.id.connection_mode_password -> connectionMode = ConnectionMode.Password + R.id.connection_mode_none -> connectionMode = ConnectionMode.None } } updateConnectionModeToggleGroup() @@ -121,15 +119,20 @@ class GitServerConfigActivity : BaseGitActivity() { private fun updateConnectionModeToggleGroup() { if (protocol == Protocol.Ssh) { + if (binding.connectionModeNone.isChecked) + binding.connectionModeGroup.check(R.id.connection_mode_ssh_key) binding.connectionModeSshKey.isEnabled = true binding.connectionModeOpenKeychain.isEnabled = true + binding.connectionModeNone.isEnabled = false } else { - // Reset connection mode to the only one possible via HTTPS: password. + // Reset connection mode to password if the current value is not valid for HTTPS // Important note: This has to happen before disabling the other toggle buttons or they // won't uncheck. - binding.connectionModeGroup.check(R.id.connection_mode_password) + if (connectionMode !in listOf(ConnectionMode.None, ConnectionMode.Password)) + binding.connectionModeGroup.check(R.id.connection_mode_password) binding.connectionModeSshKey.isEnabled = false binding.connectionModeOpenKeychain.isEnabled = false + binding.connectionModeNone.isEnabled = true } } diff --git a/app/src/main/java/com/zeapo/pwdstore/git/config/ConnectionMode.kt b/app/src/main/java/com/zeapo/pwdstore/git/config/ConnectionMode.kt index 9316e89f..8bc3fb18 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/config/ConnectionMode.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/config/ConnectionMode.kt @@ -7,7 +7,9 @@ package com.zeapo.pwdstore.git.config enum class ConnectionMode(val pref: String) { SshKey("ssh-key"), Password("username/password"), - OpenKeychain("OpenKeychain"); + OpenKeychain("OpenKeychain"), + None("None"), + ; companion object { private val map = values().associateBy(ConnectionMode::pref) diff --git a/app/src/main/java/com/zeapo/pwdstore/git/config/Protocol.kt b/app/src/main/java/com/zeapo/pwdstore/git/config/Protocol.kt index 1909fe85..eca23800 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/config/Protocol.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/config/Protocol.kt @@ -6,7 +6,8 @@ package com.zeapo.pwdstore.git.config enum class Protocol(val pref: String) { Ssh("ssh://"), - Https("https://"); + Https("https://"), + ; companion object { private val map = values().associateBy(Protocol::pref) |
