28 lines
997 B
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)
|
|
}
|