fixed queries and added change permissions
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user