added permissions api

This commit is contained in:
ACoolName 2024-05-20 23:15:52 +03:00
parent 46675c7b2f
commit 579322dbbb

View File

@ -758,6 +758,24 @@ func (con Connection) serverAuthorized(permissions models.Permission) func(*gin.
}
}
func (con Connection) GetServerUserPermissions(ctx *gin.Context) {
claims, exists := ctx.Get("claims")
if !exists {
ctx.AbortWithStatus(500)
return
}
server_id := ctx.Param("server_id")
if server_id == "" {
ctx.AbortWithStatus(500)
return
}
var serverData models.ServerData
con.databaseConnection.Database("Backend").Collection("Servers").FindOne(context.TODO(), bson.D{{Key: "Id", Value: server_id}}).Decode(&serverData)
ctx.JSON(200, serverData.UserPermissions[claims.(*auth.AuthClaims).Username])
}
func LoadGroup(group *gin.RouterGroup, mongo_client *mongo.Client, config models.GlobalConfig) {
apiClient, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
if err != nil {
@ -775,4 +793,5 @@ func LoadGroup(group *gin.RouterGroup, mongo_client *mongo.Client, config models
group.GET("/:server_id/attach", auth.AuthorizedTo(models.RunCommand, connection.serverAuthorized(models.RunCommand)), connection.AttachServer)
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.POST("/:server_id/permissions", auth.AuthorizedTo(models.Browse, connection.serverAuthorized(models.Admin)), connection.GetServerUserPermissions)
}