localvault 0.9.7 → 0.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c83c59a70defa431aff5c24ddaf567b90363c38faa1498d764e41cb15130e91
4
- data.tar.gz: 23f6f02e4e17b3fa94e25cdc8266022e2dbe173444381813caed959f4bdd6d04
3
+ metadata.gz: 3e609590f2d3491aeb43afb3bf63209d46ba2e2a69823dbbe23a189f742ad0a7
4
+ data.tar.gz: 17124f6838c5187862e9a3b6faa266a16dc8bf21c9ddabe2beec85d5396fefc5
5
5
  SHA512:
6
- metadata.gz: 39f17c0a2ab68e9c4ca99d7bdfc92451548da65640fafdf02fad4dcb50dd7105d42d1861f46183a8928a1159d1e0cb24a2f0dca120f359ed384f5785c77f1375
7
- data.tar.gz: b34099c10e14a8547ef3cca0953310e36995b082e308898b01fedfc710c487628f8e1d96d9f6e65adee33d7f832d77042f52a52f3dc4697b10148b427ed23daa
6
+ metadata.gz: 2d992f96f563d6f7e4d86083cc25d26ebcfb2d226270bfcaeb6d0ad77b193149082552d88e263d8b58d6b419efdff27701ad2f697d47ebd51bf2cdf825c50ab4
7
+ data.tar.gz: 5ea129e738d979e86714dca84878f5dc333039f8ba4e1a49423909ec024c4308e1fa4b839dedd6243723b9614284909b9c1dc8e810125ba3bd44d86d53c9a34e
@@ -4,13 +4,14 @@ module LocalVault
4
4
  class CLI
5
5
  class Team < Thor
6
6
  desc "list [VAULT]", "Show who has access to a vault"
7
+ method_option :vault, type: :string, aliases: "-v"
7
8
  def list(vault_name = nil)
8
9
  unless Config.token
9
10
  $stderr.puts "Error: Not connected. Run: localvault connect --token TOKEN --handle HANDLE"
10
11
  return
11
12
  end
12
13
 
13
- vault_name ||= Config.default_vault
14
+ vault_name ||= options[:vault] || Config.default_vault
14
15
  client = ApiClient.new(token: Config.token)
15
16
  result = client.sent_shares(vault_name: vault_name)
16
17
  shares = (result["shares"] || []).reject { |s| s["status"] == "revoked" }
@@ -32,6 +33,34 @@ module LocalVault
32
33
  rescue ApiClient::ApiError => e
33
34
  $stderr.puts "Error: #{e.message}"
34
35
  end
36
+
37
+ desc "remove HANDLE", "Remove a person's access to a vault"
38
+ method_option :vault, type: :string, aliases: "-v"
39
+ def remove(handle)
40
+ unless Config.token
41
+ $stderr.puts "Error: Not connected. Run: localvault connect --token TOKEN --handle HANDLE"
42
+ return
43
+ end
44
+
45
+ handle = handle.delete_prefix("@")
46
+ vault_name = options[:vault] || Config.default_vault
47
+ client = ApiClient.new(token: Config.token)
48
+
49
+ result = client.sent_shares(vault_name: vault_name)
50
+ share = (result["shares"] || []).find do |s|
51
+ s["recipient_handle"] == handle && s["status"] != "revoked"
52
+ end
53
+
54
+ unless share
55
+ $stderr.puts "Error: No active share found for @#{handle}."
56
+ return
57
+ end
58
+
59
+ client.revoke_share(share["id"])
60
+ $stdout.puts "Removed @#{handle} from vault '#{vault_name}'."
61
+ rescue ApiClient::ApiError => e
62
+ $stderr.puts "Error: #{e.message}"
63
+ end
35
64
  end
36
65
  end
37
66
  end
@@ -72,10 +72,26 @@ module LocalVault
72
72
  def get(key)
73
73
  vault = open_vault!
74
74
  value = vault.get(key)
75
+
75
76
  if value.nil?
76
- abort_with "Key '#{key}' not found in vault '#{vault.name}'"
77
- return
77
+ # Fall back to case-insensitive substring match
78
+ all_keys = vault.list
79
+ matches = all_keys.select { |k| k.downcase.include?(key.downcase) }
80
+
81
+ if matches.size == 1
82
+ value = vault.get(matches.first)
83
+ $stdout.puts value
84
+ return
85
+ elsif matches.size > 1
86
+ $stderr.puts "Error: Multiple keys match '#{key}'. Be more specific:"
87
+ matches.sort.each { |k| $stderr.puts " #{k}" }
88
+ return
89
+ else
90
+ abort_with "Key '#{key}' not found in vault '#{vault.name}'"
91
+ return
92
+ end
78
93
  end
94
+
79
95
  $stdout.puts value
80
96
  end
81
97
 
@@ -1,3 +1,3 @@
1
1
  module LocalVault
2
- VERSION = "0.9.7"
2
+ VERSION = "0.9.9"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: localvault
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.7
4
+ version: 0.9.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nauman Tariq