diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-07-21 13:46:40 +0300 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-07-21 13:46:40 +0300 |
| commit | 5f6845c3997bd5478a1f51a8f108b71afa427a72 (patch) | |
| tree | 1a713c28657f15715f337286cc770e93d2739fd6 /internal/server/api/api.go | |
| parent | 3fcaf100334897e314a86a53576639410055989b (diff) | |
Added the ability to delete users
Diffstat (limited to 'internal/server/api/api.go')
| -rw-r--r-- | internal/server/api/api.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/internal/server/api/api.go b/internal/server/api/api.go index 35ca44c..5f11070 100644 --- a/internal/server/api/api.go +++ b/internal/server/api/api.go @@ -842,6 +842,24 @@ func SetUserData(ctx context.Context, sess *session.Session, request *packet.Set var userPtr *data.User = nil if request.User != nil { + if request.User.IsDeleted { + // Delete user + + pubKey, _, err := ed25519.GenerateKey(nil) + assert.NoError(err, "random should never fail") + err = queries.DeleteUser(ctx, data.DeleteUserParams{ + PublicKey: pubKey, + ID: sess.ID(), + }) + if err != nil { + slog.ErrorContext(ctx, "database error", "error", err) + return &ErrInternalError + } + + sess.Close() // Close connection and respond with nothing + return nil + } + name := request.User.Name if len(name) > packet.MaxUsernameBytes { return &packet.Error{Error: fmt.Sprintf( |
