Skip to content

Commit 7aa527d

Browse files
satellite/console: remove entitlements on project/account delete
Change-Id: I26525325feb8da0b407052584b1496c945d9e65b
1 parent d48eb36 commit 7aa527d

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

satellite/console/service.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2843,6 +2843,14 @@ func (s *Service) handleDeleteProjectStep(ctx context.Context, user *User, proje
28432843
)
28442844
}
28452845

2846+
err = s.entitlementsService.Projects().DeleteByPublicID(ctx, publicProjectID)
2847+
if err != nil {
2848+
s.log.Error("failed to delete project entitlements",
2849+
zap.String("project_public_id", publicProjectID.String()),
2850+
zap.Error(err),
2851+
)
2852+
}
2853+
28462854
// We update status to disabled instead of deleting the project
28472855
// to not lose the historical project/user usage data.
28482856
err = s.store.Projects().UpdateStatus(ctx, projectID, ProjectDisabled)
@@ -2899,6 +2907,14 @@ func (s *Service) handleDeleteAccountStep(ctx context.Context, user *User) (err
28992907
)
29002908
}
29012909

2910+
err = s.entitlementsService.Projects().DeleteByPublicID(ctx, p.PublicID)
2911+
if err != nil {
2912+
s.log.Error("failed to delete project entitlements",
2913+
zap.String("project_public_id", p.PublicID.String()),
2914+
zap.Error(err),
2915+
)
2916+
}
2917+
29022918
// We update status to disabled instead of deleting the project
29032919
// to not lose the historical project/user usage data.
29042920
err = s.store.Projects().UpdateStatus(ctx, p.ID, ProjectDisabled)

satellite/console/service_test.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2698,6 +2698,23 @@ func TestDeleteProject(t *testing.T) {
26982698
require.NoError(t, err)
26992699
require.NotNil(t, project)
27002700

2701+
scope := entitlements.ConvertPublicIDToProjectScope(project.PublicID)
2702+
feats := entitlements.ProjectFeatures{NewBucketPlacements: []storj.PlacementConstraint{storj.DefaultPlacement}}
2703+
featBytes, err := json.Marshal(feats)
2704+
require.NoError(t, err)
2705+
require.NotNil(t, featBytes)
2706+
2707+
_, err = sat.API.DB.Console().Entitlements().UpsertByScope(ctx, &entitlements.Entitlement{
2708+
Scope: scope,
2709+
Features: featBytes,
2710+
})
2711+
require.NoError(t, err)
2712+
2713+
entitlement, err := sat.API.DB.Console().Entitlements().GetByScope(ctx, scope)
2714+
require.NoError(t, err)
2715+
require.NotNil(t, entitlement)
2716+
require.NotNil(t, entitlement.Features)
2717+
27012718
_, err = sat.DB.Console().Domains().Create(ctx, console.Domain{
27022719
Subdomain: "example.test",
27032720
ProjectID: p2.ID,
@@ -2720,6 +2737,9 @@ func TestDeleteProject(t *testing.T) {
27202737
require.NoError(t, err)
27212738
require.Len(t, domains, 0)
27222739

2740+
_, err = sat.API.DB.Console().Entitlements().GetByScope(ctx, scope)
2741+
require.True(t, entitlements.ErrNotFound.Has(err))
2742+
27232743
projects, err := db.Console().Projects().GetOwnActive(ctx, user.ID)
27242744
require.NoError(t, err)
27252745
require.Zero(t, len(projects))
@@ -3624,6 +3644,23 @@ func TestDeleteAccount(t *testing.T) {
36243644
require.NoError(t, err)
36253645
require.Len(t, cards, 1)
36263646

3647+
scope := entitlements.ConvertPublicIDToProjectScope(p2.PublicID)
3648+
feats := entitlements.ProjectFeatures{NewBucketPlacements: []storj.PlacementConstraint{storj.DefaultPlacement}}
3649+
featBytes, err := json.Marshal(feats)
3650+
require.NoError(t, err)
3651+
require.NotNil(t, featBytes)
3652+
3653+
_, err = sat.API.DB.Console().Entitlements().UpsertByScope(ctx, &entitlements.Entitlement{
3654+
Scope: scope,
3655+
Features: featBytes,
3656+
})
3657+
require.NoError(t, err)
3658+
3659+
entitlement, err := sat.API.DB.Console().Entitlements().GetByScope(ctx, scope)
3660+
require.NoError(t, err)
3661+
require.NotNil(t, entitlement)
3662+
require.NotNil(t, entitlement.Features)
3663+
36273664
_, err = sat.DB.Console().Domains().Create(ctx, console.Domain{
36283665
Subdomain: "example.test",
36293666
ProjectID: p2.ID,
@@ -3649,6 +3686,9 @@ func TestDeleteAccount(t *testing.T) {
36493686
require.Empty(t, user.ActivationCode)
36503687
require.Contains(t, user.Email, "deactivated")
36513688

3689+
_, err = sat.API.DB.Console().Entitlements().GetByScope(ctx, scope)
3690+
require.True(t, entitlements.ErrNotFound.Has(err))
3691+
36523692
domains, err = sat.DB.Console().Domains().GetAllDomainNamesByProjectID(ctx, p2.ID)
36533693
require.NoError(t, err)
36543694
require.Len(t, domains, 0)

0 commit comments

Comments
 (0)