Skip to content

Commit 470cc84

Browse files
authored
Merge pull request #1 from davcosentino/fix/username-slash
Fix username slash issue
2 parents da93839 + c92d578 commit 470cc84

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

pass/pass.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,12 @@ func (p Pass) Add(creds *credentials.Credentials) error {
8787

8888
encoded := base64.URLEncoding.EncodeToString([]byte(creds.ServerURL))
8989

90-
_, err := p.runPass(creds.Secret, "insert", "-f", "-m", path.Join(PASS_FOLDER, encoded, creds.Username))
90+
username := creds.Username
91+
if strings.Contains(username, "/") {
92+
username = base64.URLEncoding.EncodeToString([]byte(creds.Username))
93+
}
94+
95+
_, err := p.runPass(creds.Secret, "insert", "-f", "-m", path.Join(PASS_FOLDER, encoded, username))
9196
return err
9297
}
9398

@@ -160,8 +165,13 @@ func (p Pass) Get(serverURL string) (string, string, error) {
160165
}
161166

162167
actual := strings.TrimSuffix(usernames[0].Name(), ".gpg")
168+
username := actual
169+
decodedUsername, err := base64.URLEncoding.DecodeString(actual)
170+
if err == nil {
171+
username = string(decodedUsername)
172+
}
163173
secret, err := p.runPass("", "show", path.Join(PASS_FOLDER, encoded, actual))
164-
return actual, secret, err
174+
return username, secret, err
165175
}
166176

167177
// List returns the stored URLs and corresponding usernames for a given credentials label
@@ -193,6 +203,10 @@ func (p Pass) List() (map[string]string, error) {
193203
}
194204

195205
resp[string(serverURL)] = strings.TrimSuffix(usernames[0].Name(), ".gpg")
206+
decodedUsername, err := base64.URLEncoding.DecodeString(strings.TrimSuffix(usernames[0].Name(), ".gpg"))
207+
if err == nil {
208+
resp[string(serverURL)] = string(decodedUsername)
209+
}
196210
}
197211

198212
return resp, nil

0 commit comments

Comments
 (0)