fixed queries and added change permissions

This commit is contained in:
ACoolName 2024-05-23 02:31:47 +03:00
parent 106b7326f2
commit 01eedc6246
2 changed files with 44 additions and 5 deletions

View File

@ -21,11 +21,14 @@ type ImageData struct {
DisplayName string
}
func convertImageToImageData(imageSummary image.Summary) ImageData {
func convertImageToImageData(imageSummary image.Summary) *ImageData {
if len(imageSummary.RepoTags) == 0 {
return nil
}
imageId := imageSummary.RepoTags[0]
splitImageId := strings.Split(imageId, ":")
imageName, imageVersion := splitImageId[0], splitImageId[1]
return ImageData{
return &ImageData{
Id: imageId,
Name: imageName,
Version: imageVersion,
@ -38,9 +41,15 @@ func (con Connection) GetImages(c *gin.Context) {
c.AbortWithError(500, err)
return
}
imagesData := make([]ImageData, len(images))
for index, imageSummary := range images {
imagesData[index] = convertImageToImageData(imageSummary)
imagesData := make([]ImageData, 0, len(images))
for _, imageSummary := range images {
imageData := convertImageToImageData(imageSummary)
if imageData == nil {
continue
}
imagesData = append(imagesData, *imageData)
}
c.JSON(200, imagesData)

View File

@ -609,6 +609,7 @@ func (con Connection) UpdateServer(ctx *gin.Context) {
if err != nil {
ctx.AbortWithError(500, err)
return
}
updateOperation := bson.M{}
@ -790,6 +791,34 @@ func (con Connection) GetServerUserPermissions(ctx *gin.Context) {
ctx.JSON(200, serverData.UserPermissions[claims.(*auth.AuthClaims).Username])
}
type SetServerUserPermissionsRequest struct {
Username string
Permissions models.Permission
}
func (con Connection) SetServerUserPermissions(ctx *gin.Context) {
server_id := ctx.Param("server_id")
if server_id == "" {
ctx.AbortWithStatus(500)
return
}
var request SetServerUserPermissionsRequest
err := json.NewDecoder(ctx.Request.Body).Decode(&request)
if err != nil {
ctx.AbortWithError(500, err)
return
}
_, err = con.databaseConnection.Database("Backend").Collection("Servers").UpdateOne(context.TODO(), bson.D{{Key: "Id", Value: server_id}}, bson.D{{Key: "$set", Value: bson.D{{Key: fmt.Sprintf("UserPermissions.%s", request.Username), Value: request.Permissions}}}})
if err != nil {
ctx.AbortWithError(500, err)
return
}
ctx.JSON(200, "OK")
}
func LoadGroup(group *gin.RouterGroup, mongo_client *mongo.Client, config models.GlobalConfig) {
apiClient, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
if err != nil {
@ -808,4 +837,5 @@ func LoadGroup(group *gin.RouterGroup, mongo_client *mongo.Client, config models
group.PATCH("/:server_id", auth.AuthorizedTo(models.Admin, connection.serverAuthorized(models.Admin)), connection.UpdateServer)
group.POST("/:server_id/browse", auth.AuthorizedTo(models.Browse, connection.serverAuthorized(models.Admin)), connection.BrowseServer)
group.GET("/:server_id/permissions", auth.AuthorizedTo(models.Browse, connection.serverAuthorized(models.Admin)), connection.GetServerUserPermissions)
group.POST("/:server_id/permissions", auth.AuthorizedTo(models.Browse, connection.serverAuthorized(models.Admin)), connection.SetServerUserPermissions)
}