Skip to content

Commit a26bdda

Browse files
author
Alvaro Muñoz
committed
Add QLdocs for gqlgen.qll
1 parent c5c6766 commit a26bdda

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

go/ql/lib/semmle/go/frameworks/Gqlgen.qll

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import go
44

55
/** Provides models of commonly used functions and types in the gqlgen packages. */
66
module Gqlgen {
7-
class GqlgenGeneratedFile extends File {
7+
/** An autogenerated file containing gqlgen code. */
8+
private class GqlgenGeneratedFile extends File {
89
GqlgenGeneratedFile() {
910
exists(DataFlow::CallNode call |
1011
call.getReceiver().getType().hasQualifiedName("github.com/99designs/gqlgen/graphql", _) and
@@ -13,29 +14,31 @@ module Gqlgen {
1314
}
1415
}
1516

16-
class ResolverInterface extends Type {
17+
/** A resolver interface. */
18+
private class ResolverInterface extends Type {
1719
ResolverInterface() {
1820
this.getQualifiedName().matches("%Resolver") and
1921
this.getEntity().getDeclaration().getFile() instanceof GqlgenGeneratedFile
2022
}
2123
}
2224

23-
class ResolverInterfaceMethod extends Method {
24-
ResolverInterfaceMethod() {
25-
this.getReceiver().getType() instanceof ResolverInterface
26-
}
25+
/** A resolver implementation. */
26+
private class ResolverInterfaceMethod extends Method {
27+
ResolverInterfaceMethod() { this.getReceiver().getType() instanceof ResolverInterface }
2728
}
2829

29-
class ResolverImplementationMethod extends Method {
30+
/** A resolver method which is exposed as a Graphql endpoint */
31+
private class ResolverImplementationMethod extends Method {
3032
ResolverImplementationMethod() { this.implements(any(ResolverInterfaceMethod r)) }
31-
33+
3234
Parameter getAnUntrustedParameter() {
3335
result.getFunction() = this.getFuncDecl() and
3436
not result.getType().hasQualifiedName("context", "Context") and
3537
result.getIndex() > 0
3638
}
3739
}
3840

41+
/** A parameter of a resolver method which receives untrusted input. */
3942
class ResolverParameter extends UntrustedFlowSource::Range instanceof DataFlow::ParameterNode {
4043
ResolverParameter() {
4144
this.asParameter() = any(ResolverImplementationMethod h).getAnUntrustedParameter()

0 commit comments

Comments
 (0)