admin deleteIdentity handler (#983)

This commit is contained in:
Michael Quigley 2025-06-17 17:26:09 -04:00
parent 4da71637e6
commit 301bdd643a
No known key found for this signature in database
GPG Key ID: 9B60314A9DD20A62
2 changed files with 47 additions and 0 deletions

View File

@ -58,6 +58,7 @@ func Run(inCfg *config.Config) error {
api.AdminCreateIdentityHandler = newCreateIdentityHandler()
api.AdminCreateOrganizationHandler = newCreateOrganizationHandler()
api.AdminDeleteFrontendHandler = newDeleteFrontendHandler()
api.AdminDeleteIdentityHandler = newDeleteIdentityHandler()
api.AdminDeleteOrganizationHandler = newDeleteOrganizationHandler()
api.AdminGrantsHandler = newGrantsHandler()
api.AdminInviteTokenGenerateHandler = newInviteTokenGenerateHandler()

View File

@ -0,0 +1,46 @@
package controller
import (
"context"
"time"
"github.com/go-openapi/runtime/middleware"
"github.com/openziti/edge-api/rest_management_api_client/identity"
"github.com/openziti/zrok/controller/zrokEdgeSdk"
"github.com/openziti/zrok/rest_model_zrok"
"github.com/openziti/zrok/rest_server_zrok/operations/admin"
"github.com/sirupsen/logrus"
)
type deleteIdentityHandler struct{}
func newDeleteIdentityHandler() *deleteIdentityHandler {
return &deleteIdentityHandler{}
}
func (h *deleteIdentityHandler) Handle(params admin.DeleteIdentityParams, principal *rest_model_zrok.Principal) middleware.Responder {
identityZId := params.Body.ZID
if !principal.Admin {
logrus.Errorf("invalid admin principal")
return admin.NewDeleteIdentityUnauthorized()
}
edge, err := zrokEdgeSdk.Client(cfg.Ziti)
if err != nil {
logrus.Errorf("error getting edge client: %v", err)
return admin.NewDeleteIdentityInternalServerError()
}
req := &identity.DeleteIdentityParams{
ID: identityZId,
Context: context.Background(),
}
req.SetTimeout(30 * time.Second)
if _, err := edge.Identity.DeleteIdentity(req, nil); err != nil {
logrus.Errorf("error deleting identity '%v': %v", identityZId, err)
return admin.NewDeleteSecretsAccessInternalServerError()
}
return admin.NewDeleteIdentityOK()
}