diff --git a/servers/servers.go b/servers/servers.go index 5ebcd89..581a2fa 100644 --- a/servers/servers.go +++ b/servers/servers.go @@ -214,13 +214,14 @@ func (con Connection) CreateServer(ctx *gin.Context) { return } con.databaseConnection.Database("Backend").Collection("Servers").InsertOne(context.TODO(), models.ServerData{ - Id: volumeResponse.Name, - OwnerId: claims.(*auth.AuthClaims).Username, - Image: imageSummary.RepoTags[0], - VolumeId: volumeResponse.Name, - DefaultPorts: request.DefaultPorts, - DefaultCommand: request.DefaultCommand, - Nickname: request.Nickname, + Id: volumeResponse.Name, + OwnerId: claims.(*auth.AuthClaims).Username, + Image: imageSummary.RepoTags[0], + VolumeId: volumeResponse.Name, + DefaultPorts: request.DefaultPorts, + DefaultCommand: request.DefaultCommand, + Nickname: request.Nickname, + UserPermissions: make(map[string]models.Permission), }) ctx.JSON(200, volumeResponse.Name) diff --git a/users/users.go b/users/users.go index 8621927..03d97ca 100644 --- a/users/users.go +++ b/users/users.go @@ -98,10 +98,26 @@ func (con Connection) SetUserPermissions(c *gin.Context) { c.JSON(200, "OK") } +func (con Connection) DeleteUser(c *gin.Context) { + username := c.Param("user_id") + + _, err := con.connection.Database("Backend").Collection("Users").DeleteOne( + context.TODO(), + bson.D{{Key: "Username", Value: username}}, + ) + if err != nil { + c.AbortWithError(500, err) + return + } + + c.JSON(200, "OK") +} + func LoadGroup(group *gin.RouterGroup, client *mongo.Client, config models.GlobalConfig) { connection := Connection{connection: client} group.GET("/", auth.AuthorizedTo(0), connection.GetUsers) group.GET("/@me", auth.AuthorizedTo(0), connection.GetUser) group.POST("/", auth.AuthorizedTo(models.Admin), connection.InviteUser) + group.DELETE("/:user_id", auth.AuthorizedTo(models.Admin), connection.DeleteUser) group.PATCH("/:user_id/permissions", auth.AuthorizedTo(models.Admin), connection.SetUserPermissions) }