microscopic-answer-24504
01/31/2024, 4:10 PMsteep-lamp-91158
steep-lamp-91158
red-machine-69654
02/01/2024, 9:47 AMsteep-lamp-91158
red-machine-69654
02/01/2024, 9:54 AMsteep-lamp-91158
red-machine-69654
02/06/2024, 5:34 PMred-machine-69654
02/06/2024, 5:35 PMsteep-lamp-91158
func getCurrentUserID(req *http.Request) (string, err) {
user, err := getWhoAmI(req)
if impersonated := req.Headers.Get("Impersonated-User-Id"); impersonated != "" {
if isAllowedToImpersonate(user, impersonated) {
return impersonated, nil
}
}
return user.id, nil
}
For reusability, it would obviously be best to do this in a gateway, depending on your setup.steep-lamp-91158
steep-lamp-91158
red-machine-69654
02/06/2024, 6:24 PMred-machine-69654
02/06/2024, 6:24 PMred-machine-69654
02/06/2024, 6:28 PM