Skip to content

Commit 98a596f

Browse files
committed
Add goodies
1 parent 8a8fff2 commit 98a596f

File tree

5 files changed

+712
-581
lines changed

5 files changed

+712
-581
lines changed

javascript/frameworks/ui5/lib/advanced_security/javascript/frameworks/ui5/RemoteFlowSources.qll

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -117,42 +117,23 @@ class ODataServiceModel extends UI5ExternalModel {
117117
override string getSourceType() { result = "ODataServiceModel" }
118118

119119
ODataServiceModel() {
120-
exists(MethodCallNode setModelCall, CustomController controller |
121-
/*
122-
* 1. This flows from a DF node corresponding to the parent component's model
123-
* to the `this.setModel` call. e.g.
124-
*
125-
* `this.getOwnerComponent().getModel("someModelName")` as in
126-
* `this.getView().setModel(this.getOwnerComponent().getModel("someModelName"))`.
127-
*/
128-
129-
modelName = this.getArgument(0).getALocalSource().asExpr().(StringLiteral).getValue() and
120+
exists(CustomController controller |
130121
this.getCalleeName() = "getModel" and
131-
controller.getOwnerComponentRef().flowsTo(this.(MethodCallNode).getReceiver()) and
132-
this.flowsTo(setModelCall.getArgument(0)) and
133-
setModelCall = controller.getAViewReference().getAMemberCall("setModel") and
134-
/*
135-
* 2. The component's `manifest.json` declares the DataSource as being of OData type.
136-
*/
137-
122+
modelName = this.getArgument(0).getALocalSource().getStringValue() and
138123
controller.getOwnerComponent().getExternalModelDef(modelName).getDataSource() instanceof
139-
ODataDataSourceManifest
124+
ODataDataSourceManifest // A component's `manifest.json` declares the data source as being of OData type.
140125
)
141126
or
142127
/*
143-
* A constructor call to sap.ui.model.odata.v2.ODataModel or sap.ui.model.odata.v4.ODataModel.
128+
* A constructor call to `sap.ui.model.odata.v2.ODataModel` or `sap.ui.model.odata.v4.ODataModel`.
144129
*/
145130

146131
this instanceof NewNode and
147-
(
148-
exists(RequiredObject oDataModel |
149-
oDataModel.asSourceNode().flowsTo(this.getCalleeNode()) and
150-
oDataModel.getDependency() in [
151-
"sap/ui/model/odata/v2/ODataModel", "sap/ui/model/odata/v4/ODataModel"
152-
]
153-
)
154-
or
155-
this.getCalleeName() = "ODataModel"
132+
exists(RequiredObject oDataModel |
133+
oDataModel.asSourceNode().flowsTo(this.getCalleeNode()) and
134+
oDataModel.getDependency() in [
135+
"sap/ui/model/odata/v2/ODataModel", "sap/ui/model/odata/v4/ODataModel"
136+
]
156137
) and
157138
modelName = "<no name>"
158139
}

0 commit comments

Comments
 (0)