Files
identity-service/src/internal/server/access_handler.go

28 lines
997 B
Go

package server
import (
dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto"
domain "git.ego.freeddns.org/egommerce/identity-service/domain/repository"
"git.ego.freeddns.org/egommerce/identity-service/internal/service"
"git.ego.freeddns.org/egommerce/identity-service/internal/ui"
"github.com/gofiber/fiber/v2"
)
func (s *Server) AccessHandlerFn(c *fiber.Ctx) error {
userRepo := domain.NewUserRepository(s.GetDatabase())
roleRepo := domain.NewRoleRepository(s.GetDatabase())
urlRepo := domain.NewURLAccessRepository(s.GetDatabase())
authSrv := service.NewAuthService(userRepo, s.GetCache())
guardSrv := service.NewGuardService(authSrv, userRepo, roleRepo, urlRepo)
url, srvName := c.Query("q"), c.Query("srv")
header := new(dto.AuthorizationHeaderDTO)
c.ReqHeaderParser(header)
if err := ui.NewAccessActionUI(guardSrv).Execute(header, url, srvName); err != nil {
return s.Error(c, fiber.StatusNotFound, err.Error())
}
return c.SendStatus(fiber.StatusNoContent)
}