implement delete secret
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -95,7 +95,8 @@ func SecretsGetAllowed(s *Secret, userId int) ([]UserSecret, error) {
|
||||
}
|
||||
|
||||
// Query for user access
|
||||
query += `UNION
|
||||
query += `
|
||||
UNION
|
||||
SELECT users.UserId, users.GroupId, permissions.ReadOnly, permissions.SafeId, safes.SafeName, secrets.*
|
||||
FROM users
|
||||
INNER JOIN permissions ON users.UserId = permissions.UserId
|
||||
@@ -137,16 +138,20 @@ func SecretsGetAllowed(s *Secret, userId int) ([]UserSecret, error) {
|
||||
return secretResults, err
|
||||
}
|
||||
|
||||
// Decrypt the secret
|
||||
_, err = r.DecryptSecret()
|
||||
if err != nil {
|
||||
//log.Printf("GetSecret unable to decrypt stored secret '%v' : '%s'\n", r.Secret, err)
|
||||
log.Printf("SecretsGetAllowedForGroup unable to decrypt stored secret : '%s'\n", err)
|
||||
return secretResults, err
|
||||
} else {
|
||||
secretResults = append(secretResults, r)
|
||||
}
|
||||
/*
|
||||
// Decrypt the secret
|
||||
_, err = r.DecryptSecret()
|
||||
if err != nil {
|
||||
//log.Printf("GetSecret unable to decrypt stored secret '%v' : '%s'\n", r.Secret, err)
|
||||
log.Printf("SecretsGetAllowedForGroup unable to decrypt stored secret : '%s'\n", err)
|
||||
return secretResults, err
|
||||
} else {
|
||||
secretResults = append(secretResults, r)
|
||||
}
|
||||
*/
|
||||
|
||||
// Don't decrypt the secrets in the results of this query
|
||||
secretResults = append(secretResults, r)
|
||||
}
|
||||
log.Printf("SecretsGetAllowedForGroup retrieved '%d' results\n", len(secretResults))
|
||||
}
|
||||
@@ -154,6 +159,7 @@ func SecretsGetAllowed(s *Secret, userId int) ([]UserSecret, error) {
|
||||
return secretResults, nil
|
||||
}
|
||||
|
||||
/*
|
||||
func SecretsSearchAllSafes(s *Secret) ([]Secret, error) {
|
||||
var err error
|
||||
var secretResults []Secret
|
||||
@@ -217,6 +223,7 @@ func SecretsSearchAllSafes(s *Secret) ([]Secret, error) {
|
||||
|
||||
return secretResults, nil
|
||||
}
|
||||
*/
|
||||
|
||||
// SecretsGetMultipleSafes queries the specified safes for matching secrets
|
||||
func SecretsGetMultipleSafes(s *Secret, safeIds []int) ([]Secret, error) {
|
||||
@@ -415,6 +422,31 @@ func (s *Secret) UpdateSecret() (*Secret, error) {
|
||||
return s, nil
|
||||
}
|
||||
|
||||
func (s *Secret) DeleteSecret() (*Secret, error) {
|
||||
|
||||
var err error
|
||||
|
||||
log.Printf("DeleteSecret deleting record with values '%v'\n", s)
|
||||
|
||||
if s.SecretId == 0 {
|
||||
err = errors.New("unable to locate secret with empty secretId field")
|
||||
log.Printf("DeleteSecret error in pre-check : '%s'\n", err)
|
||||
return s, err
|
||||
}
|
||||
|
||||
result, err := db.NamedExec((`DELETE FROM secrets WHERE SecretId = :SecretId`), s)
|
||||
if err != nil {
|
||||
log.Printf("DeleteSecret error executing sql record : '%s'\n", err)
|
||||
return &Secret{}, err
|
||||
} else {
|
||||
affected, _ := result.RowsAffected()
|
||||
id, _ := result.LastInsertId()
|
||||
log.Printf("DeleteSecret delete returned result id '%d' affecting %d row(s).\n", id, affected)
|
||||
}
|
||||
|
||||
return s, nil
|
||||
}
|
||||
|
||||
// startCipher does the initial setup of the AES256 GCM mode cipher
|
||||
func startCipher() (cipher.AEAD, error) {
|
||||
key, err := ProvideKey()
|
||||
|
Reference in New Issue
Block a user