Skip to content

Commit bfbeb6a

Browse files
committed
fix: couple session deletion with user deletion
1 parent 1fe0d65 commit bfbeb6a

File tree

11 files changed

+32
-55
lines changed

11 files changed

+32
-55
lines changed

server/db/providers/arangodb/session.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package arangodb
22

33
import (
44
"context"
5-
"fmt"
65
"time"
76

87
"github.com/authorizerdev/authorizer/server/db/models"
@@ -24,17 +23,3 @@ func (p *provider) AddSession(ctx context.Context, session models.Session) error
2423
}
2524
return nil
2625
}
27-
28-
// DeleteSession to delete session information from database
29-
func (p *provider) DeleteSession(ctx context.Context, userId string) error {
30-
query := fmt.Sprintf(`FOR d IN %s FILTER d.user_id == @userId REMOVE { _key: d._key } IN %s`, models.Collections.Session, models.Collections.Session)
31-
bindVars := map[string]interface{}{
32-
"userId": userId,
33-
}
34-
cursor, err := p.db.Query(ctx, query, bindVars)
35-
if err != nil {
36-
return err
37-
}
38-
defer cursor.Close()
39-
return nil
40-
}

server/db/providers/arangodb/user.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,16 @@ func (p *provider) DeleteUser(ctx context.Context, user models.User) error {
6363
return err
6464
}
6565

66+
query := fmt.Sprintf(`FOR d IN %s FILTER d.user_id == @userId REMOVE { _key: d._key } IN %s`, models.Collections.Session, models.Collections.Session)
67+
bindVars := map[string]interface{}{
68+
"userId": user.ID,
69+
}
70+
cursor, err := p.db.Query(ctx, query, bindVars)
71+
if err != nil {
72+
return err
73+
}
74+
defer cursor.Close()
75+
6676
return nil
6777
}
6878

server/db/providers/cassandradb/session.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,3 @@ func (p *provider) AddSession(ctx context.Context, session models.Session) error
2525
}
2626
return nil
2727
}
28-
29-
// DeleteSession to delete session information from database
30-
func (p *provider) DeleteSession(ctx context.Context, userId string) error {
31-
deleteSessionQuery := fmt.Sprintf("DELETE FROM %s WHERE user_id = '%s'", KeySpace+"."+models.Collections.Session, userId)
32-
err := p.db.Query(deleteSessionQuery).Exec()
33-
if err != nil {
34-
return err
35-
}
36-
return nil
37-
}

server/db/providers/cassandradb/user.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,17 @@ func (p *provider) UpdateUser(ctx context.Context, user models.User) (models.Use
131131
func (p *provider) DeleteUser(ctx context.Context, user models.User) error {
132132
query := fmt.Sprintf("DELETE FROM %s WHERE id = '%s'", KeySpace+"."+models.Collections.User, user.ID)
133133
err := p.db.Query(query).Exec()
134-
return err
134+
if err != nil {
135+
return err
136+
}
137+
138+
deleteSessionQuery := fmt.Sprintf("DELETE FROM %s WHERE user_id = '%s'", KeySpace+"."+models.Collections.Session, user.ID)
139+
err = p.db.Query(deleteSessionQuery).Exec()
140+
if err != nil {
141+
return err
142+
}
143+
144+
return nil
135145
}
136146

137147
// ListUsers to get list of users from database

server/db/providers/mongodb/session.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66

77
"github.com/authorizerdev/authorizer/server/db/models"
88
"github.com/google/uuid"
9-
"go.mongodb.org/mongo-driver/bson"
109
"go.mongodb.org/mongo-driver/mongo/options"
1110
)
1211

@@ -26,13 +25,3 @@ func (p *provider) AddSession(ctx context.Context, session models.Session) error
2625
}
2726
return nil
2827
}
29-
30-
// DeleteSession to delete session information from database
31-
func (p *provider) DeleteSession(ctx context.Context, userId string) error {
32-
sessionCollection := p.db.Collection(models.Collections.Session, options.Collection())
33-
_, err := sessionCollection.DeleteMany(ctx, bson.M{"user_id": userId}, options.Delete())
34-
if err != nil {
35-
return err
36-
}
37-
return nil
38-
}

server/db/providers/mongodb/user.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ func (p *provider) DeleteUser(ctx context.Context, user models.User) error {
5757
return err
5858
}
5959

60+
sessionCollection := p.db.Collection(models.Collections.Session, options.Collection())
61+
_, err = sessionCollection.DeleteMany(ctx, bson.M{"user_id": user.ID}, options.Delete())
62+
if err != nil {
63+
return err
64+
}
65+
6066
return nil
6167
}
6268

server/db/providers/providers.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ type Provider interface {
3434

3535
// AddSession to save session information in database
3636
AddSession(ctx context.Context, session models.Session) error
37-
// DeleteSession to delete session information from database
38-
DeleteSession(ctx context.Context, userId string) error
3937

4038
// AddEnv to save environment information in database
4139
AddEnv(ctx context.Context, env models.Env) (models.Env, error)

server/db/providers/sql/session.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,3 @@ func (p *provider) AddSession(ctx context.Context, session models.Session) error
2727
}
2828
return nil
2929
}
30-
31-
// DeleteSession to delete session information from database
32-
func (p *provider) DeleteSession(ctx context.Context, userId string) error {
33-
result := p.db.Where("user_id = ?", userId).Delete(&models.Session{})
34-
35-
if result.Error != nil {
36-
return result.Error
37-
}
38-
return nil
39-
}

server/db/providers/sql/user.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ func (p *provider) DeleteUser(ctx context.Context, user models.User) error {
6363
return result.Error
6464
}
6565

66+
result = p.db.Where("user_id = ?", user.ID).Delete(&models.Session{})
67+
if result.Error != nil {
68+
return result.Error
69+
}
70+
6671
return nil
6772
}
6873

server/resolvers/delete_user.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,6 @@ func DeleteUserResolver(ctx context.Context, params model.DeleteUserInput) (*mod
4545
return res, err
4646
}
4747

48-
err = db.Provider.DeleteSession(ctx, user.ID)
49-
if err != nil {
50-
return res, err
51-
}
52-
5348
res = &model.Response{
5449
Message: `user deleted successfully`,
5550
}

0 commit comments

Comments
 (0)