package api import ( "backend/database" "backend/model" "fmt" "github.com/gofiber/fiber/v2" "github.com/golang-jwt/jwt/v5" ) func GetAllUsers(c *fiber.Ctx) error { user := c.Locals("user").(*jwt.Token) claims := user.Claims.(jwt.MapClaims) userid := claims["id"].(string) dbuser, e := database.GetUserById(userid) if e != nil { return c.Status( fiber.StatusInternalServerError, ).JSON( fiber.Map{ "error": e.Error(), }, ) } if !dbuser.IsSuperuser { return c.Status( fiber.StatusForbidden, ).JSON( fiber.Map{ "error": "you are not superuser", }, ) } users, e := database.GetAllUsers() if e != nil { return fmt.Errorf("Error: %v", e) } var responseUsers []model.UserResponse for i := range users { responseUsers = append( responseUsers, model.UserResponse{ ID: users[i].ID, Username: users[i].Username, Email: users[i].Email, Group: users[i].Group, IsSuperuser: users[i].IsSuperuser, }, ) } return c.JSON(responseUsers) }