fix: keep existing privileges when User.Added is processed late (#331)
authz_client / test (push) Successful in 58s
Unbound Release / Check Preconditions (push) Successful in 22s
Unbound Release / Create Tag (push) Skipped
authz_client / vulnerabilities (push) Successful in 47s
Unbound Release / Generate Changelog and Handle PR (push) Successful in 32s
Unbound Release / Create Release (push) Successful in 24s
Release / release (push) Successful in 58s
pre-commit / pre-commit (push) Successful in 2m17s
authz_client / test (push) Successful in 58s
Unbound Release / Check Preconditions (push) Successful in 22s
Unbound Release / Create Tag (push) Skipped
authz_client / vulnerabilities (push) Successful in 47s
Unbound Release / Generate Changelog and Handle PR (push) Successful in 32s
Unbound Release / Create Release (push) Successful in 24s
Release / release (push) Successful in 58s
pre-commit / pre-commit (push) Successful in 2m17s
This commit was merged in pull request #331.
This commit is contained in:
1 parent
9d1b981644
commit
01f30cfd2b
5 files changed
+62
-12
No files matched your search
@@ -123,12 +123,17 @@ func (h *PrivilegeHandler) Process(msg any) error {
|
||||
|
||||
switch ev := msg.(type) {
|
||||
case *UserAdded:
|
||||
if priv, exists := h.privileges[ev.Email]; exists {
|
||||
// Keep the privileges already recorded for the company. Each routing key has
|
||||
// its own transient queue, so a Privilege.Added published after this event can
|
||||
// be processed before it; overwriting the entry here would drop that privilege
|
||||
// until the next Fetch, which only runs at start.
|
||||
priv, exists := h.privileges[ev.Email]
|
||||
if !exists {
|
||||
priv = map[string]*CompanyPrivileges{}
|
||||
h.privileges[ev.Email] = priv
|
||||
}
|
||||
if _, exists := priv[ev.CompanyID]; !exists {
|
||||
priv[ev.CompanyID] = &CompanyPrivileges{}
|
||||
} else {
|
||||
h.privileges[ev.Email] = map[string]*CompanyPrivileges{
|
||||
ev.CompanyID: {},
|
||||
}
|
||||
}
|
||||
return nil
|
||||
case *UserRemoved:
|
||||
|
||||
Reference in new issue
Block a user