Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -263,8 +263,8 @@ Console automatically generates OpenAPI documentation when running in debug mode
- Ensure code is formatted correctly with `gofumpt -l -w -extra ./`
- Ensure all unit tests pass with `go test ./...`
- Ensure code has been linted with:
- Windows: `docker run --rm -v ${pwd}:/app -w /app golangci/golangci-lint:latest golangci-lint run -v`
- Unix: `docker run --rm -v .:/app -w /app golangci/golangci-lint:latest golangci-lint run -v`
- Windows: `docker run --rm -v ${pwd}:/app -w /app golangci/golangci-lint:latest golangci-lint run --config=./.golangci.yml -v`
- Unix: `docker run --rm -v .:/app -w /app golangci/golangci-lint:latest golangci-lint run --config=./.golangci.yml -v`


## Additional Resources
Expand Down
39 changes: 25 additions & 14 deletions internal/usecase/devices/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (

"github.com/google/uuid"

"github.com/device-management-toolkit/console/internal/entity"
"github.com/device-management-toolkit/console/internal/entity/dto/v1"
"github.com/device-management-toolkit/console/internal/usecase/sqldb"
"github.com/device-management-toolkit/console/pkg/consoleerrors"
Expand Down Expand Up @@ -75,27 +76,37 @@ func (uc *UseCase) GetByID(ctx context.Context, guid, tenantID string, includeSe
d2 := uc.entityToDTO(data)

if includeSecrets {
d2.Password, err = uc.safeRequirements.Decrypt(data.Password)
if err != nil {
return nil, ErrDeviceUseCase.Wrap("GetByID", "uc.safeRequirements.Decrypt Password", err)
if err := uc.decryptSecrets(d2, data); err != nil {
return nil, err
}
}

return d2, nil
}

func (uc *UseCase) decryptSecrets(d2 *dto.Device, data *entity.Device) error {
var err error

d2.Password, err = uc.safeRequirements.Decrypt(data.Password)
if err != nil {
return ErrDeviceUseCase.Wrap("decryptSecrets", "uc.safeRequirements.Decrypt Password", err)
}

if data.MPSPassword != nil {
d2.MPSPassword, err = uc.safeRequirements.Decrypt(*data.MPSPassword)
if err != nil {
return nil, ErrDeviceUseCase.Wrap("GetByID", "uc.safeRequirements.Decrypt MPSPassword", err)
}
if data.MPSPassword != nil {
d2.MPSPassword, err = uc.safeRequirements.Decrypt(*data.MPSPassword)
if err != nil {
return ErrDeviceUseCase.Wrap("decryptSecrets", "uc.safeRequirements.Decrypt MPSPassword", err)
}
}

if data.MEBXPassword != nil {
d2.MEBXPassword, err = uc.safeRequirements.Decrypt(*data.MEBXPassword)
if err != nil {
return nil, ErrDeviceUseCase.Wrap("GetByID", "uc.safeRequirements.Decrypt MEBXPassword", err)
}
if data.MEBXPassword != nil {
d2.MEBXPassword, err = uc.safeRequirements.Decrypt(*data.MEBXPassword)
if err != nil {
return ErrDeviceUseCase.Wrap("decryptSecrets", "uc.safeRequirements.Decrypt MEBXPassword", err)
}
}

return d2, nil
return nil
}

func (uc *UseCase) GetDistinctTags(ctx context.Context, tenantID string) ([]string, error) {
Expand Down
Loading