try changing query
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-01-09 11:17:32 +11:00
parent c80ccd47bf
commit 309d9c8fa3
2 changed files with 16 additions and 17 deletions

View File

@@ -24,6 +24,12 @@ type Secret struct {
Secret string `db:"Secret"`
}
// Used for querying all secrets the user has access to
type UserSecret struct {
Group
Secret
}
const nonceSize = 12
func (s *Secret) SaveSecret() (*Secret, error) {
@@ -59,16 +65,16 @@ func SecretsGetAllowedForGroup(s *Secret, userId int) ([]UserSecret, error) {
var err error
var secretResults []UserSecret
args := []interface{}{}
query := `SELECT users.UserId, users.GroupId, permissions.ReadOnly, permissions.SafeId, safes.SafeName,
queryArgs := []interface{}{}
query := `SELECT permissions.ReadOnly, permissions.SafeId, safes.SafeName,
secrets.SecretId, secrets.SafeId, secrets.DeviceName, secrets.DeviceCategory, secrets.UserName AS SecretUser, secrets.Secret
FROM users
INNER JOIN groups ON users.GroupId = groups.GroupId
FROM groups
INNER JOIN users ON users.GroupId = groups.GroupId
INNER JOIN permissions ON groups.GroupId = permissions.GroupId
INNER JOIN safes on permissions.SafeId = safes.SafeId
INNER JOIN secrets on secrets.SafeId = safes.SafeId
WHERE users.UserId = ?`
args = append(args, userId)
queryArgs = append(queryArgs, userId)
// Make sure at least one parameter was specified
if s.DeviceName == "" && s.DeviceCategory == "" && s.UserName == "" {
@@ -80,22 +86,22 @@ func SecretsGetAllowedForGroup(s *Secret, userId int) ([]UserSecret, error) {
// Add any other arguments to the query if they were specified
if s.DeviceName != "" {
query += " AND DeviceName LIKE ? "
args = append(args, s.DeviceName)
queryArgs = append(queryArgs, s.DeviceName)
}
if s.DeviceCategory != "" {
query += " AND DeviceCategory LIKE ? "
args = append(args, s.DeviceCategory)
queryArgs = append(queryArgs, s.DeviceCategory)
}
if s.UserName != "" {
query += " AND UserName LIKE ? "
args = append(args, s.UserName)
queryArgs = append(queryArgs, s.UserName)
}
// Execute the query
log.Printf("SecretsGetAllowedForGroup query string : '%s'\n%+v\n", query, args)
rows, err := db.Queryx(query, args...)
log.Printf("SecretsGetAllowedForGroup query string : '%s'\n%+v\n", query, queryArgs)
rows, err := db.Queryx(query, queryArgs...)
if err != nil {
log.Printf("SecretsGetAllowedForGroup error executing sql record : '%s'\n", err)

View File

@@ -43,13 +43,6 @@ type UserSafe struct {
GroupId int `db:"GroupId"`
}
// Used for querying all secrets the user has access to
type UserSecret struct {
User
Group
Secret
}
func (u *User) SaveUser() (*User, error) {
var err error