Skip to content

Commit

Permalink
Fix(GraphQL): Change variable name generation for interface auth rules (
Browse files Browse the repository at this point in the history
#7559)

* Change variable name generation for interface auth rules

* Add empty line at end of file
  • Loading branch information
vmrajas committed Mar 15, 2021
1 parent cba5c5f commit baa164d
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 71 deletions.
20 changes: 10 additions & 10 deletions graphql/resolve/auth_delete_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -671,28 +671,28 @@
"Author.posts": [
{"uid": "uid(x)"}
],
"uid": "uid(Author_5)"
"uid": "uid(Author_7)"
}]
dgquery: |-
query {
x as deletePost(func: uid(PostRoot)) {
uid
Author_5 as Post.author
Author_7 as Post.author
}
PostRoot as var(func: uid(Post_1)) @filter(((uid(Question_Auth2) AND uid(Question_Auth3)) OR uid(Answer_Auth4)))
PostRoot as var(func: uid(Post_1)) @filter(((uid(Question_Auth3) AND uid(Question_Auth4)) OR uid(Answer_Auth6)))
Post_1 as var(func: uid(0x1, 0x2)) @filter(type(Post))
Question_1 as var(func: type(Question))
Question_Auth2 as var(func: uid(Question_1)) @filter(eq(Question.answered, true)) @cascade {
Question_2 as var(func: type(Question))
Question_Auth3 as var(func: uid(Question_2)) @filter(eq(Question.answered, true)) @cascade {
Question.id : uid
}
Question_Auth3 as var(func: uid(Question_1)) @cascade {
Question_Auth4 as var(func: uid(Question_2)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "user1")) {
Author.name : Author.name
}
}
Answer_1 as var(func: type(Answer))
Answer_Auth4 as var(func: uid(Answer_1)) @cascade {
Answer_5 as var(func: type(Answer))
Answer_Auth6 as var(func: uid(Answer_5)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "user1")) {
Author.name : Author.name
Expand Down Expand Up @@ -745,9 +745,9 @@
x as deleteA(func: uid(ARoot)) {
uid
}
ARoot as var(func: uid(A_1)) @filter((uid(B_1)))
ARoot as var(func: uid(A_1)) @filter((uid(B_2)))
A_1 as var(func: uid(0x1, 0x2)) @filter(type(A))
B_1 as var(func: type(B))
B_2 as var(func: type(B))
}
- name: "Delete Type Having Graph Traversal Auth Rules on Interface."
Expand Down
84 changes: 42 additions & 42 deletions graphql/resolve/auth_query_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1457,27 +1457,27 @@
Post.text : Post.text
dgraph.uid : uid
}
PostRoot as var(func: uid(Post_1)) @filter(((uid(Question_Auth2) AND uid(Question_Auth3)) OR uid(FbPost_Auth4) OR uid(Answer_Auth5)))
PostRoot as var(func: uid(Post_1)) @filter(((uid(Question_Auth3) AND uid(Question_Auth4)) OR uid(FbPost_Auth6) OR uid(Answer_Auth8)))
Post_1 as var(func: type(Post))
Question_1 as var(func: type(Question))
Question_Auth2 as var(func: uid(Question_1)) @filter(eq(Question.answered, true)) @cascade {
Question_2 as var(func: type(Question))
Question_Auth3 as var(func: uid(Question_2)) @filter(eq(Question.answered, true)) @cascade {
Question.id : uid
}
Question_Auth3 as var(func: uid(Question_1)) @cascade {
Question_Auth4 as var(func: uid(Question_2)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "Random")) {
Author.name : Author.name
}
}
FbPost_1 as var(func: type(FbPost))
FbPost_Auth4 as var(func: uid(FbPost_1)) @cascade {
FbPost_5 as var(func: type(FbPost))
FbPost_Auth6 as var(func: uid(FbPost_5)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "Random")) {
Author.name : Author.name
}
}
Answer_1 as var(func: type(Answer))
Answer_Auth5 as var(func: uid(Answer_1)) @cascade {
Answer_7 as var(func: type(Answer))
Answer_Auth8 as var(func: uid(Answer_7)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "Random")) {
Author.name : Author.name
Expand All @@ -1503,27 +1503,27 @@
Post.text : Post.text
dgraph.uid : uid
}
PostRoot as var(func: uid(Post_1), orderdesc: Post.text, first: 10, offset: 5) @filter(((uid(Question_Auth2) AND uid(Question_Auth3)) OR uid(FbPost_Auth4) OR uid(Answer_Auth5)))
PostRoot as var(func: uid(Post_1), orderdesc: Post.text, first: 10, offset: 5) @filter(((uid(Question_Auth3) AND uid(Question_Auth4)) OR uid(FbPost_Auth6) OR uid(Answer_Auth8)))
Post_1 as var(func: type(Post)) @filter(eq(Post.text, "A Post"))
Question_1 as var(func: type(Question))
Question_Auth2 as var(func: uid(Question_1)) @filter(eq(Question.answered, true)) @cascade {
Question_2 as var(func: type(Question))
Question_Auth3 as var(func: uid(Question_2)) @filter(eq(Question.answered, true)) @cascade {
Question.id : uid
}
Question_Auth3 as var(func: uid(Question_1)) @cascade {
Question_Auth4 as var(func: uid(Question_2)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "Random")) {
Author.name : Author.name
}
}
FbPost_1 as var(func: type(FbPost))
FbPost_Auth4 as var(func: uid(FbPost_1)) @cascade {
FbPost_5 as var(func: type(FbPost))
FbPost_Auth6 as var(func: uid(FbPost_5)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "Random")) {
Author.name : Author.name
}
}
Answer_1 as var(func: type(Answer))
Answer_Auth5 as var(func: uid(Answer_1)) @cascade {
Answer_7 as var(func: type(Answer))
Answer_Auth8 as var(func: uid(Answer_7)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "Random")) {
Author.name : Author.name
Expand Down Expand Up @@ -1563,20 +1563,20 @@
Post.text : Post.text
dgraph.uid : uid
}
PostRoot as var(func: uid(Post_1)) @filter(((uid(Question_Auth2) AND uid(Question_Auth3)) OR uid(Answer_Auth4)))
PostRoot as var(func: uid(Post_1)) @filter(((uid(Question_Auth3) AND uid(Question_Auth4)) OR uid(Answer_Auth6)))
Post_1 as var(func: type(Post))
Question_1 as var(func: type(Question))
Question_Auth2 as var(func: uid(Question_1)) @filter(eq(Question.answered, true)) @cascade {
Question_2 as var(func: type(Question))
Question_Auth3 as var(func: uid(Question_2)) @filter(eq(Question.answered, true)) @cascade {
Question.id : uid
}
Question_Auth3 as var(func: uid(Question_1)) @cascade {
Question_Auth4 as var(func: uid(Question_2)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "Random")) {
Author.name : Author.name
}
}
Answer_1 as var(func: type(Answer))
Answer_Auth4 as var(func: uid(Answer_1)) @cascade {
Answer_5 as var(func: type(Answer))
Answer_Auth6 as var(func: uid(Answer_5)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "Random")) {
Author.name : Author.name
Expand All @@ -1601,20 +1601,20 @@
Post.text : Post.text
dgraph.uid : uid
}
PostRoot as var(func: uid(Post_1)) @filter(((uid(Question_Auth2) AND uid(Question_Auth3)) OR uid(Answer_Auth4)))
PostRoot as var(func: uid(Post_1)) @filter(((uid(Question_Auth3) AND uid(Question_Auth4)) OR uid(Answer_Auth6)))
Post_1 as var(func: uid(0x1))
Question_1 as var(func: type(Question))
Question_Auth2 as var(func: uid(Question_1)) @filter(eq(Question.answered, true)) @cascade {
Question_2 as var(func: type(Question))
Question_Auth3 as var(func: uid(Question_2)) @filter(eq(Question.answered, true)) @cascade {
Question.id : uid
}
Question_Auth3 as var(func: uid(Question_1)) @cascade {
Question_Auth4 as var(func: uid(Question_2)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "Random")) {
Author.name : Author.name
}
}
Answer_1 as var(func: type(Answer))
Answer_Auth4 as var(func: uid(Answer_1)) @cascade {
Answer_5 as var(func: type(Answer))
Answer_Auth6 as var(func: uid(Answer_5)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "Random")) {
Author.name : Author.name
Expand Down Expand Up @@ -1651,11 +1651,11 @@
A.fieldA : A.fieldA
dgraph.uid : uid
}
ARoot as var(func: uid(A_1)) @filter((uid(B_1) OR uid(C_Auth2)))
ARoot as var(func: uid(A_1)) @filter((uid(B_2) OR uid(C_Auth4)))
A_1 as var(func: type(A))
B_1 as var(func: type(B))
C_1 as var(func: type(C))
C_Auth2 as var(func: uid(C_1)) @filter(eq(C.fieldC, true)) @cascade {
B_2 as var(func: type(B))
C_3 as var(func: type(C))
C_Auth4 as var(func: uid(C_3)) @filter(eq(C.fieldC, true)) @cascade {
C.id : uid
}
}
Expand All @@ -1675,9 +1675,9 @@
A.fieldA : A.fieldA
dgraph.uid : uid
}
ARoot as var(func: uid(A_1)) @filter((uid(B_1)))
ARoot as var(func: uid(A_1)) @filter((uid(B_2)))
A_1 as var(func: type(A))
B_1 as var(func: type(B))
B_2 as var(func: type(B))
}
-
Expand Down Expand Up @@ -1853,20 +1853,20 @@
Post.text : Post.text
dgraph.uid : uid
}
PostRoot as var(func: uid(Post_1)) @filter((uid(Question_Auth2) OR uid(FbPost_Auth3) OR uid(Answer_1)))
PostRoot as var(func: uid(Post_1)) @filter((uid(Question_Auth3) OR uid(FbPost_Auth5) OR uid(Answer_6)))
Post_1 as var(func: uid(0x123))
Question_1 as var(func: type(Question))
Question_Auth2 as var(func: uid(Question_1)) @filter(eq(Question.answered, true)) @cascade {
Question_2 as var(func: type(Question))
Question_Auth3 as var(func: uid(Question_2)) @filter(eq(Question.answered, true)) @cascade {
Question.id : uid
Question.text : Post.text
}
FbPost_1 as var(func: type(FbPost))
FbPost_Auth3 as var(func: uid(FbPost_1)) @cascade {
FbPost_4 as var(func: type(FbPost))
FbPost_Auth5 as var(func: uid(FbPost_4)) @cascade {
FbPost.author : Post.author @filter(eq(Author.name, "ADMIN")) {
Author.name : Author.name
}
}
Answer_1 as var(func: type(Answer))
Answer_6 as var(func: type(Answer))
checkPwd(func: uid(PostRoot)) @filter(type(Post)) {
pwd as checkpwd(Post.pwd, "something")
}
Expand Down Expand Up @@ -1994,9 +1994,9 @@
Vehicle.owner : Vehicle.owner
dgraph.uid : uid
}
VehicleRoot as var(func: uid(Vehicle_1)) @filter((uid(Car_1)))
VehicleRoot as var(func: uid(Vehicle_1)) @filter((uid(Car_2)))
Vehicle_1 as var(func: type(Vehicle))
Car_1 as var(func: type(Car))
Car_2 as var(func: type(Car))
}
-
Expand Down
34 changes: 17 additions & 17 deletions graphql/resolve/auth_update_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -837,27 +837,27 @@
x as updatePost(func: uid(PostRoot)) {
uid
}
PostRoot as var(func: uid(Post_1)) @filter(((uid(Question_Auth2) AND uid(Question_Auth3)) OR uid(FbPost_Auth4) OR uid(Answer_Auth5)))
PostRoot as var(func: uid(Post_1)) @filter(((uid(Question_Auth3) AND uid(Question_Auth4)) OR uid(FbPost_Auth6) OR uid(Answer_Auth8)))
Post_1 as var(func: uid(0x123, 0x456)) @filter(type(Post))
Question_1 as var(func: type(Question))
Question_Auth2 as var(func: uid(Question_1)) @filter(eq(Question.answered, true)) @cascade {
Question_2 as var(func: type(Question))
Question_Auth3 as var(func: uid(Question_2)) @filter(eq(Question.answered, true)) @cascade {
Question.id : uid
}
Question_Auth3 as var(func: uid(Question_1)) @cascade {
Question_Auth4 as var(func: uid(Question_2)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "user1")) {
Author.name : Author.name
}
}
FbPost_1 as var(func: type(FbPost))
FbPost_Auth4 as var(func: uid(FbPost_1)) @cascade {
FbPost_5 as var(func: type(FbPost))
FbPost_Auth6 as var(func: uid(FbPost_5)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "user1")) {
Author.name : Author.name
}
}
Answer_1 as var(func: type(Answer))
Answer_Auth5 as var(func: uid(Answer_1)) @cascade {
Answer_7 as var(func: type(Answer))
Answer_Auth8 as var(func: uid(Answer_7)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "user1")) {
Author.name : Author.name
Expand Down Expand Up @@ -892,17 +892,17 @@
x as updatePost(func: uid(PostRoot)) {
uid
}
PostRoot as var(func: uid(Post_1)) @filter((uid(FbPost_Auth2) OR uid(Answer_Auth3)))
PostRoot as var(func: uid(Post_1)) @filter((uid(FbPost_Auth3) OR uid(Answer_Auth5)))
Post_1 as var(func: uid(0x123, 0x456)) @filter(type(Post))
FbPost_1 as var(func: type(FbPost))
FbPost_Auth2 as var(func: uid(FbPost_1)) @cascade {
FbPost_2 as var(func: type(FbPost))
FbPost_Auth3 as var(func: uid(FbPost_2)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "user1")) {
Author.name : Author.name
}
}
Answer_1 as var(func: type(Answer))
Answer_Auth3 as var(func: uid(Answer_1)) @cascade {
Answer_4 as var(func: type(Answer))
Answer_Auth5 as var(func: uid(Answer_4)) @cascade {
dgraph.type
Post.author : Post.author @filter(eq(Author.name, "user1")) {
Author.name : Author.name
Expand Down Expand Up @@ -964,8 +964,8 @@
x as updateA(func: uid(ARoot)) {
uid
}
ARoot as var(func: uid(A_1)) @filter((uid(B_1) OR uid(C_1)))
ARoot as var(func: uid(A_1)) @filter((uid(B_2) OR uid(C_3)))
A_1 as var(func: uid(0x123, 0x456)) @filter(type(A))
B_1 as var(func: type(B))
C_1 as var(func: type(C))
}
B_2 as var(func: type(B))
C_3 as var(func: type(C))
}
4 changes: 2 additions & 2 deletions graphql/resolve/query_rewriter.go
Original file line number Diff line number Diff line change
Expand Up @@ -728,8 +728,8 @@ func (authRw *authRewriter) addAuthQueries(
continue
}

// Form Query Like Todo1 as var(func: type(Todo))
queryVar := object.Name() + "_1"
// Form Query Like Todo_1 as var(func: type(Todo))
queryVar := authRw.varGen.Next(object, "", "", authRw.isWritingAuth)
varQry := &gql.GraphQuery{
Attr: "var",
Var: queryVar,
Expand Down

0 comments on commit baa164d

Please sign in to comment.