package service import ( "cybertron/pkg/mjolnirClient" "fmt" "github.com/gin-gonic/gin" "net/http" ) type AuthService struct { mjolnirClient *mjolnirClient.MjolnirClient } func NewAuthService(mjolnirClient *mjolnirClient.MjolnirClient) *AuthService { return &AuthService{ mjolnirClient: mjolnirClient, } } type UserRoles string func (authService *AuthService) CheckValidUser(c *gin.Context, sessionToken, userEmail string) (bool, error) { sessionResponse, err := authService.mjolnirClient.GetSessionResponse(sessionToken) if err != nil || sessionResponse.StatusCode == http.StatusUnauthorized { return false, err } if sessionResponse.EmailId != userEmail { return false, fmt.Errorf("user email: %v does not match the email linked to the session token", userEmail) } c.Set("permissions", sessionResponse.Permissions) return true, nil }