Skip to content

Commit d7a13c6

Browse files
authored
fix(rbac): fix membership constraint (#2291)
Signed-off-by: Jose I. Paris <[email protected]>
1 parent ad68570 commit d7a13c6

File tree

4 files changed

+16
-7
lines changed

4 files changed

+16
-7
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
-- Drop index "membership_membership_type_mem_33e9cb590a3adfa25d916afabf657740" from table: "memberships"
2+
DROP INDEX "membership_membership_type_mem_33e9cb590a3adfa25d916afabf657740";
3+
-- Drop index "membership_membership_type_mem_8014883ac7acffee8425ce171cf6f4cf" from table: "memberships"
4+
DROP INDEX "membership_membership_type_mem_8014883ac7acffee8425ce171cf6f4cf";
5+
-- Create index "membership_membership_type_mem_69a8fe555e26fd9532f5e3fe38ba2651" to table: "memberships"
6+
CREATE UNIQUE INDEX "membership_membership_type_mem_69a8fe555e26fd9532f5e3fe38ba2651" ON "memberships" ("membership_type", "member_id", "resource_type", "resource_id", "parent_id") WHERE (parent_id IS NOT NULL);
7+
-- Create index "membership_membership_type_member_id_resource_type_resource_id" to table: "memberships"
8+
CREATE UNIQUE INDEX "membership_membership_type_member_id_resource_type_resource_id" ON "memberships" ("membership_type", "member_id", "resource_type", "resource_id") WHERE (parent_id IS NULL);

app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
h1:QHFhnD3Le8WU03zeKuQWvjRaaMKX2ONDFb64ty4phZo=
1+
h1:W2BrLHso2p2/duPEctqndT0qwM/1/93RkVMgtBvVqBM=
22
20230706165452_init-schema.sql h1:VvqbNFEQnCvUVyj2iDYVQQxDM0+sSXqocpt/5H64k8M=
33
20230710111950-cas-backend.sql h1:A8iBuSzZIEbdsv9ipBtscZQuaBp3V5/VMw7eZH6GX+g=
44
20230712094107-cas-backends-workflow-runs.sql h1:a5rzxpVGyd56nLRSsKrmCFc9sebg65RWzLghKHh5xvI=
@@ -100,3 +100,4 @@ h1:QHFhnD3Le8WU03zeKuQWvjRaaMKX2ONDFb64ty4phZo=
100100
20250715100956.sql h1:y9eOaPMpQTlcJppjaGzeuHBTNDwe6sGbxSVU8e7LL1o=
101101
20250723114128.sql h1:OZDXg9CdImiwPsi7X9TJoZ4uPnSa17oY/9HjsxG7WNk=
102102
20250723171233.sql h1:Aq4IUr4ForrwmK9jMPPtwl4V8e2plYff/IcSgIc0XFo=
103+
20250728123421.sql h1:VaxxLhVF2PXQ6Vjv4nSWHQjHLM8O9anMxgDMnCkL21I=

app/controlplane/pkg/data/ent/migrate/schema.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -361,17 +361,17 @@ var (
361361
Columns: []*schema.Column{MembershipsColumns[10], MembershipsColumns[11]},
362362
},
363363
{
364-
Name: "membership_membership_type_member_id_resource_type_resource_id_role_parent_id",
364+
Name: "membership_membership_type_member_id_resource_type_resource_id_parent_id",
365365
Unique: true,
366-
Columns: []*schema.Column{MembershipsColumns[5], MembershipsColumns[6], MembershipsColumns[7], MembershipsColumns[8], MembershipsColumns[4], MembershipsColumns[9]},
366+
Columns: []*schema.Column{MembershipsColumns[5], MembershipsColumns[6], MembershipsColumns[7], MembershipsColumns[8], MembershipsColumns[9]},
367367
Annotation: &entsql.IndexAnnotation{
368368
Where: "parent_id IS NOT NULL",
369369
},
370370
},
371371
{
372-
Name: "membership_membership_type_member_id_resource_type_resource_id_role",
372+
Name: "membership_membership_type_member_id_resource_type_resource_id",
373373
Unique: true,
374-
Columns: []*schema.Column{MembershipsColumns[5], MembershipsColumns[6], MembershipsColumns[7], MembershipsColumns[8], MembershipsColumns[4]},
374+
Columns: []*schema.Column{MembershipsColumns[5], MembershipsColumns[6], MembershipsColumns[7], MembershipsColumns[8]},
375375
Annotation: &entsql.IndexAnnotation{
376376
Where: "parent_id IS NULL",
377377
},

app/controlplane/pkg/data/ent/schema/membership.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,11 @@ func (Membership) Indexes() []ent.Index {
7777
return []ent.Index{
7878
index.Edges("organization", "user"),
7979
// only one inherited role
80-
index.Fields("membership_type", "member_id", "resource_type", "resource_id", "role", "parent_id").Unique().Annotations(
80+
index.Fields("membership_type", "member_id", "resource_type", "resource_id", "parent_id").Unique().Annotations(
8181
entsql.IndexWhere("parent_id IS NOT NULL"),
8282
),
8383
// only one explicit role
84-
index.Fields("membership_type", "member_id", "resource_type", "resource_id", "role").Unique().Annotations(
84+
index.Fields("membership_type", "member_id", "resource_type", "resource_id").Unique().Annotations(
8585
entsql.IndexWhere("parent_id IS NULL"),
8686
),
8787
}

0 commit comments

Comments
 (0)