45 Commits

Author SHA1 Message Date
Unbound Release e9ebb2206c chore(release): prepare for v0.3.0 2025-09-06 15:06:27 +02:00
argoyle b6ec9feeae feat: add salary privilege to privilege management system
Add support for the salary privilege in the privilege handler. 
Implement associated logic to process and validate the 
salary privilege in the test cases. Update the data 
structures to include the new privilege and ensure 
correct functionality in the privilege processing flow.
2025-09-06 14:49:56 +02:00
Renovate a1c9ace5ec chore(deps): update golang docker tag to v1.25.1 2025-09-04 08:21:33 +02:00
Renovate 250d017f93 chore(deps): update dependency go to v1.25.1 2025-09-03 19:02:44 +00:00
Renovate f48319ffb0 fix(deps): update module github.com/stretchr/testify to v1.11.1 2025-08-27 12:08:40 +00:00
Renovate 10c3448ec3 fix(deps): update module github.com/stretchr/testify to v1.11.0 2025-08-24 17:05:55 +00:00
Renovate 3e0bb48af7 chore(deps): update golang:1.25.0 docker digest to f6b9e1a 2025-08-22 19:06:15 +00:00
Renovate c9169d5cbc chore(deps): update dependency go to v1.25.0 2025-08-14 14:03:11 +00:00
Renovate e8da7bb3e9 fix(deps): update module github.com/sparetimecoders/goamqp to v0.3.3 2025-08-14 13:08:23 +00:00
Renovate 1755ed37dd chore(deps): update golang docker tag to v1.25.0 2025-08-14 10:01:19 +02:00
Renovate d2faf4bd88 chore(deps): update pre-commit hook golangci/golangci-lint to v2.4.0 2025-08-13 21:05:49 +00:00
Renovate 96001183fb chore(deps): update golang:1.24.6 docker digest to 958bfd1 2025-08-12 23:05:07 +00:00
Renovate f652c92328 chore(deps): update pre-commit hook pre-commit/pre-commit-hooks to v6 2025-08-09 20:02:58 +00:00
Renovate 4152e9830f chore(deps): update golang docker tag to v1.24.6 2025-08-07 08:31:48 +02:00
Renovate caafda1f7c chore(deps): update dependency go to v1.24.6 2025-08-06 19:03:34 +00:00
Renovate e2041fe618 chore(deps): update pre-commit hook golangci/golangci-lint to v2.3.1 2025-08-02 22:03:57 +00:00
Renovate a05c89475f chore(deps): update golang:1.24.5 docker digest to 0a156a4 2025-07-22 05:03:23 +00:00
Renovate a028c38a4d chore(deps): update pre-commit hook golangci/golangci-lint to v2.3.0 2025-07-21 15:02:56 +00:00
Renovate 982fb0bb09 chore(deps): update pre-commit hook gitleaks/gitleaks to v8.28.0 2025-07-20 17:01:08 +00:00
Renovate ce344d29bf chore(deps): update pre-commit hook golangci/golangci-lint to v2.2.2 2025-07-11 12:59:18 +00:00
Renovate 4e29b77504 chore(deps): update golang docker tag to v1.24.5 2025-07-09 19:02:31 +00:00
Renovate d2492e98fa chore(deps): update dependency go to v1.24.5 2025-07-08 17:59:36 +00:00
Renovate 35b8148f7f chore(deps): update golang:1.24.4 docker digest to 9f820b6 2025-07-01 06:00:10 +00:00
Renovate 3a9bd8dffe chore(deps): update pre-commit hook golangci/golangci-lint to v2.2.1 2025-06-29 21:58:21 +00:00
Renovate c8b6f33464 chore(deps): update pre-commit hook golangci/golangci-lint to v2.2.0 2025-06-28 20:58:34 +00:00
Renovate ff672b7a81 chore(deps): update golang:1.24.4 docker digest to 3494bbe 2025-06-11 03:07:47 +00:00
Renovate dba9093ed4 chore(deps): update pre-commit hook gitleaks/gitleaks to v8.27.2 2025-06-09 00:59:15 +00:00
Renovate e02917ba5d chore(deps): update pre-commit hook gitleaks/gitleaks to v8.27.1 2025-06-08 02:58:02 +00:00
Renovate 05425c1d5f chore(deps): update golang docker tag to v1.24.4 2025-06-05 21:00:44 +00:00
Renovate b42a60844e chore(deps): update dependency go to v1.24.4 2025-06-05 18:58:53 +00:00
Renovate 72b66efc07 chore(deps): update pre-commit hook gitleaks/gitleaks to v8.27.0 2025-06-01 16:59:16 +00:00
Renovate fb45f1eccc chore(deps): update golang:1.24.3 docker digest to f255a7d 2025-05-22 02:01:48 +00:00
Renovate b10691a7ad chore(deps): update pre-commit hook gitleaks/gitleaks to v8.26.0 2025-05-12 21:59:51 +00:00
Renovate 0677bb1e60 chore(deps): update golang docker tag to v1.24.3 2025-05-06 21:02:20 +00:00
Renovate 3bc038ba17 chore(deps): update dependency go to v1.24.3 2025-05-06 19:00:47 +00:00
Renovate 1c870c3d4e chore(deps): update pre-commit hook golangci/golangci-lint to v2.1.6 2025-05-04 15:59:06 +00:00
argoyle 8b8bf53790 feat(ci): add defaults pipeline template for CI workflow
Add the 'Defaults.gitlab-ci.yml' pipeline template to the CI 
configuration to standardize the build environment across 
projects. This change ensures consistency and improves 
maintainability in the CI process.
2025-04-30 17:00:35 +02:00
Renovate 1f20ead820 chore(deps): update pre-commit hook gitleaks/gitleaks to v8.25.1 2025-04-30 14:00:22 +00:00
Renovate 6b567fce3c chore(deps): update pre-commit hook gitleaks/gitleaks to v8.25.0 2025-04-29 15:00:56 +00:00
Renovate 08000f5e9f chore(deps): update golang:1.24.2 docker digest to bf7899c 2025-04-29 01:09:04 +00:00
Renovate 761bd0d75b chore(deps): update pre-commit hook golangci/golangci-lint to v2.1.5 2025-04-24 19:59:47 +00:00
Renovate 2f7cf19696 chore(deps): update pre-commit hook golangci/golangci-lint to v2.1.4 2025-04-24 18:05:08 +00:00
Renovate 06a017f5a5 chore(deps): update pre-commit hook golangci/golangci-lint to v2.1.2 2025-04-15 14:01:19 +00:00
Renovate 0a5e432071 chore(deps): update pre-commit hook golangci/golangci-lint to v2.1.1 2025-04-12 19:04:36 +00:00
Renovate 957d9229b1 chore(deps): update pre-commit hook golangci/golangci-lint to v2.1.0 2025-04-12 17:58:59 +00:00
8 changed files with 45 additions and 30 deletions
+4 -2
View File
@@ -1,11 +1,13 @@
include:
- template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
- project: unboundsoftware/ci-templates
file: Defaults.gitlab-ci.yml
- project: unboundsoftware/ci-templates
file: Release.gitlab-ci.yml
- project: unboundsoftware/ci-templates
file: Pre-Commit-Go.gitlab-ci.yml
image: amd64/golang:1.24.2@sha256:aebb7dfe0e8da97fd4e22f95d2162cc6948f772fa947a00659634ece26cadb5a
image: amd64/golang:1.25.1@sha256:70de49a6a9bfd1bde2b332fde29d04a8cc65047464fa97ddb94251b05e572bc0
stages:
- deps
@@ -30,7 +32,7 @@ test:
vulnerabilities:
stage: test
image: amd64/golang:1.24.2@sha256:aebb7dfe0e8da97fd4e22f95d2162cc6948f772fa947a00659634ece26cadb5a
image: amd64/golang:1.25.1@sha256:70de49a6a9bfd1bde2b332fde29d04a8cc65047464fa97ddb94251b05e572bc0
script:
- go install golang.org/x/vuln/cmd/govulncheck@latest
- govulncheck ./...
+3 -3
View File
@@ -2,7 +2,7 @@
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
@@ -37,10 +37,10 @@ repos:
- id: go-test
- id: gofumpt
- repo: https://github.com/golangci/golangci-lint
rev: v2.0.2
rev: v2.4.0
hooks:
- id: golangci-lint-full
- repo: https://github.com/gitleaks/gitleaks
rev: v8.24.3
rev: v8.28.0
hooks:
- id: gitleaks
+10 -16
View File
@@ -1,7 +1,15 @@
# Changelog
## [0.3.0] - 2025-09-06
All notable changes to this project will be documented in this file.
### 🚀 Features
- *(ci)* Add defaults pipeline template for CI workflow
- Add salary privilege to privilege management system
### 🐛 Bug Fixes
- *(deps)* Update module github.com/sparetimecoders/goamqp to v0.3.3
- *(deps)* Update module github.com/stretchr/testify to v1.11.0
- *(deps)* Update module github.com/stretchr/testify to v1.11.1
## [0.2.0] - 2025-04-11
### 🚀 Features
@@ -18,7 +26,6 @@ All notable changes to this project will be documented in this file.
### 🚜 Refactor
- *(ci)* Remove pre-commit job and add new template
## [0.1.4] - 2024-10-05
### 🐛 Bug Fixes
@@ -38,7 +45,6 @@ All notable changes to this project will be documented in this file.
- Update golangci-lint to use full version
- Add release flow
- Remove old release job
## [0.1.3] - 2023-12-26
### 🐛 Bug Fixes
@@ -62,7 +68,6 @@ All notable changes to this project will be documented in this file.
- Use 1.21.1 in go.mod for Dependabot
- Update to go 1.21.3 and remove patch level
- Update version of Go
## [0.1.2] - 2023-06-04
### 💼 Other
@@ -74,7 +79,6 @@ All notable changes to this project will be documented in this file.
- Update pre-commit and fix golangci-lint
- Update golangci-lint
## [0.1.1] - 2023-05-11
### 🐛 Bug Fixes
@@ -102,7 +106,6 @@ All notable changes to this project will be documented in this file.
- Update Go verion for vulnerabilities scan
- Update to Go 1.20.3
- Update Go version and fix gitlabci lint
## [0.1.0] - 2022-07-20
### 🐛 Bug Fixes
@@ -125,7 +128,6 @@ All notable changes to this project will be documented in this file.
- Remove dependabot-standalone
- Change to codecov binary instead of bash uploader
- Switch to moved goamqp
## [0.0.8] - 2021-05-15
### ⚙️ Miscellaneous Tasks
@@ -137,7 +139,6 @@ All notable changes to this project will be documented in this file.
- Rename master -> main
- Group imports
- Update to latest version of goamqp
## [0.0.7] - 2020-04-12
### 🐛 Bug Fixes
@@ -145,7 +146,6 @@ All notable changes to this project will be documented in this file.
- Update to Go 1.14 to fix test errors
- Use go mod download
- Sort companies before comparing since map-iteration is not stable
## [0.0.6] - 2020-04-12
### 🐛 Bug Fixes
@@ -156,25 +156,21 @@ All notable changes to this project will be documented in this file.
- Add tests
- Modify event structure
## [0.0.5] - 2019-12-31
### 🚀 Features
- Add handling of removed privilege
## [0.0.4] - 2019-12-08
### 🚀 Features
- Add name and registration number to event
## [0.0.3] - 2019-11-22
### 🐛 Bug Fixes
- Print unexpected messages
## [0.0.2] - 2019-11-06
### 🚀 Features
@@ -184,5 +180,3 @@ All notable changes to this project will be documented in this file.
### 🐛 Bug Fixes
- Rename module
<!-- generated by git-cliff -->
+3
View File
@@ -20,6 +20,7 @@ type CompanyPrivileges struct {
Invoicing bool `json:"invoicing"`
Accounting bool `json:"accounting"`
Supplier bool `json:"supplier"`
Salary bool `json:"salary"`
}
// PrivilegeHandler processes PrivilegeAdded-events and fetches the initial set of privileges from an authz-service
@@ -139,6 +140,8 @@ func (h *PrivilegeHandler) setPrivileges(email, companyId string, privilege Priv
c.Accounting = set
case PrivilegeSupplier:
c.Supplier = set
case PrivilegeSalary:
c.Salary = set
}
} else {
priv[companyId] = &CompanyPrivileges{}
+15 -1
View File
@@ -236,6 +236,18 @@ func TestPrivilegeHandler_IsAllowed_Return_True_If_Privilege_Exists(t *testing.T
})
assert.True(t, result)
_, _ = handler.Process(&PrivilegeAdded{
Email: "jim@example.org",
CompanyID: "abc-123",
Privilege: PrivilegeSalary,
}, goamqp.Headers{})
result = handler.IsAllowed("jim@example.org", "abc-123", func(privileges CompanyPrivileges) bool {
return privileges.Salary
})
assert.True(t, result)
}
func TestPrivilegeHandler_Fetch_Error_Response(t *testing.T) {
@@ -289,7 +301,8 @@ func TestPrivilegeHandler_Fetch_Valid(t *testing.T) {
"time": true,
"invoicing": true,
"accounting": false,
"supplier": false
"supplier": false,
"salary": true
}
}
}`
@@ -313,6 +326,7 @@ func TestPrivilegeHandler_Fetch_Valid(t *testing.T) {
Invoicing: true,
Accounting: false,
Supplier: false,
Salary: true,
},
},
}
+3 -1
View File
@@ -23,6 +23,7 @@ const (
PrivilegeInvoicing = "INVOICING"
PrivilegeAccounting = "ACCOUNTING"
PrivilegeSupplier = "SUPPLIER"
PrivilegeSalary = "SALARY"
)
var AllPrivilege = []Privilege{
@@ -33,11 +34,12 @@ var AllPrivilege = []Privilege{
PrivilegeInvoicing,
PrivilegeAccounting,
PrivilegeSupplier,
PrivilegeSalary,
}
func (e Privilege) IsValid() bool {
switch e {
case PrivilegeAdmin, PrivilegeCompany, PrivilegeConsumer, PrivilegeTime, PrivilegeInvoicing, PrivilegeAccounting, PrivilegeSupplier:
case PrivilegeAdmin, PrivilegeCompany, PrivilegeConsumer, PrivilegeTime, PrivilegeInvoicing, PrivilegeAccounting, PrivilegeSupplier, PrivilegeSalary:
return true
}
return false
+3 -3
View File
@@ -2,11 +2,11 @@ module gitlab.com/unboundsoftware/shiny/authz_client
go 1.22.12
toolchain go1.24.2
toolchain go1.25.1
require (
github.com/sparetimecoders/goamqp v0.3.2
github.com/stretchr/testify v1.10.0
github.com/sparetimecoders/goamqp v0.3.3
github.com/stretchr/testify v1.11.1
)
require (
+4 -4
View File
@@ -8,10 +8,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rabbitmq/amqp091-go v1.10.0 h1:STpn5XsHlHGcecLmMFCtg7mqq0RnD+zFr4uzukfVhBw=
github.com/rabbitmq/amqp091-go v1.10.0/go.mod h1:Hy4jKW5kQART1u+JkDTF9YYOQUHXqMuhrgxOEeS7G4o=
github.com/sparetimecoders/goamqp v0.3.2 h1:XdlyUBAJS5RcURw+SnnPjPJJuofddZwQsjAf05VPXvI=
github.com/sparetimecoders/goamqp v0.3.2/go.mod h1:W9NRCpWLE+Vruv2dcRSbszNil2O826d2Nv6kAkETW5o=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/sparetimecoders/goamqp v0.3.3 h1:z/nfTPmrjeU/rIVuNOgsVLCimp3WFoNFvS3ZzXRJ6HE=
github.com/sparetimecoders/goamqp v0.3.3/go.mod h1:W9NRCpWLE+Vruv2dcRSbszNil2O826d2Nv6kAkETW5o=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=