Skip to content

Commit 3d66fd1

Browse files
authored
Merge pull request #311 from smartdevicelink/develop
sdl_server - Release 3.1.0
2 parents 52dd3a3 + 76949f9 commit 3d66fd1

File tree

10 files changed

+4195
-7120
lines changed

10 files changed

+4195
-7120
lines changed

app/v1/messages/helper.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ function validatePost (req, res) {
2626
return;
2727
}
2828
for (let i = 0; i < req.body.messages.length; i++) {
29+
let foundEnUsObj = false;
2930
const msg = req.body.messages[i];
3031
if (!check.string(msg.message_category) || !check.boolean(msg.is_deleted) ) {
3132
res.parcel
@@ -35,24 +36,26 @@ function validatePost (req, res) {
3536
}
3637
for (let j = 0; j < msg.languages.length; j++) {
3738
const lang = msg.languages[j];
39+
if (lang.language_id === 'en-us' && lang.selected === true) {
40+
foundEnUsObj = true;
41+
}
3842
if (
3943
!check.string(lang.language_id)
4044
|| !check.boolean(lang.selected)
41-
|| (
42-
!check.string(lang.line1)
43-
&& !check.string(lang.line2)
44-
&& !check.string(lang.tts)
45-
&& !check.string(lang.text_body)
46-
&& !check.string(lang.label)
47-
)
4845
)
4946
{
5047
res.parcel
5148
.setStatus(400)
52-
.setMessage("Required for language: language_id, selected, and at least one of the following: line1, line2, tts, text_body, label");
49+
.setMessage("Required for language: language_id, selected");
5350
return;
5451
}
5552
}
53+
if (!foundEnUsObj) {
54+
res.parcel
55+
.setStatus(400)
56+
.setMessage("There must be a en-us language object defined");
57+
return;
58+
}
5659
}
5760
}
5861

docker/docker-compose.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: "3.9"
1+
version: "2.1"
22
services:
33
server:
44
build:
@@ -36,4 +36,4 @@ services:
3636
POSTGRES_USER: "${DB_USER:-postgres}"
3737
POSTGRES_DB: "${DB_DATABASE:-postgres}"
3838
volumes:
39-
data:
39+
data:

index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ function start (overrideApp) {
4040
}
4141

4242
//load up the html, js and css content that makes up the UI
43-
app.use(express.static(__dirname + '/dist'));
43+
// do not serve the compiled version of the code if we are running in dev mode
44+
// we want hot reloading managed by the webpack dev server instead
45+
if (process.env.RUN_STATE !== 'dev') {
46+
app.use(express.static(__dirname + '/dist'));
47+
}
4448
//expose everything in the static folder
4549
app.use(express.static(__dirname + '/static'));
4650

package-lock.json

Lines changed: 4143 additions & 7096 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sdl_policy_server",
3-
"version": "3.0.1",
3+
"version": "3.1.0",
44
"license": "BSD-3-Clause",
55
"description": "Integrates with SHAID to allow managing app permissions through policy tables",
66
"author": "Livio",
@@ -27,7 +27,7 @@
2727
"bootstrap": "4.5.2",
2828
"bootstrap-vue": "2.17.3",
2929
"check-types": "7.3.0",
30-
"core-js": "^3.6.5",
30+
"core-js": "^3.22.8",
3131
"cors": "^2.8.5",
3232
"cron": "1.3.0",
3333
"db-migrate": "^0.11.10",
@@ -37,7 +37,7 @@
3737
"helmet": "^3.15.1",
3838
"jquery": "^3.4.1",
3939
"lodash": "^4.17.21",
40-
"moment": "^2.29.3",
40+
"moment": "^2.29.4",
4141
"mustache": "^3.0.1",
4242
"nodemailer": "^6.6.1",
4343
"pem": "^1.14.2",
@@ -53,25 +53,25 @@
5353
"vue": "^2.6.11",
5454
"vue-json-pretty": "1.3.5",
5555
"vue-ladda": "0.0.13",
56-
"vue-resource": "1.3.4",
56+
"vue-resource": "1.5.3",
5757
"vue-router": "2.7.0",
5858
"vue-scrollto": "2.11.0",
5959
"vue-session": "0.9.10",
6060
"winston": "2.3.1",
6161
"xml2js": "0.4.19"
6262
},
6363
"devDependencies": {
64-
"@vue/cli-plugin-babel": "~4.5.0",
65-
"@vue/cli-plugin-eslint": "~4.5.0",
66-
"@vue/cli-service": "~4.5.0",
64+
"@vue/cli-plugin-babel": "5.0.4",
65+
"@vue/cli-plugin-eslint": "5.0.4",
66+
"@vue/cli-service": "5.0.4",
6767
"babel-eslint": "^10.1.0",
6868
"chai": "^4.2.0",
6969
"chai-http": "^4.2.1",
7070
"chai-json-schema": "^1.5.0",
7171
"chalk": "2.0.1",
7272
"connect-history-api-fallback": "1.3.0",
7373
"cssnano": "^5.0.17",
74-
"eslint": "^6.7.2",
74+
"eslint": "^7.32.0",
7575
"eslint-plugin-vue": "^6.2.2",
7676
"eventsource-polyfill": "0.9.6",
7777
"express": "4.16.0",

src/components/ConsumerMessageDetails.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,11 @@
184184
if (parsed.data.messages && parsed.data.messages.length) {
185185
this.message = parsed.data.messages[0];
186186
console.log(this.message);
187+
// force en-us to exist in the webpage
188+
if (this.message && this.message.languages) {
189+
const lang = this.message.languages.find(element => element.language_id === 'en-us');
190+
lang.selected = true;
191+
}
187192
} else {
188193
console.log("No message data returned");
189194
}

src/components/common/MessageItem.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
<div v-if="item.selected" class="white-box rpc-container">
33
<h5></h5>
44
<h5>{{ item.language_id }}
5+
<!-- Do not allow en-us to be deletable. It is required by core -->
56
<i
67
v-on:click="removeLanguage()"
7-
v-if="!fieldsDisabled"
8+
v-if="!fieldsDisabled && item.language_id !== 'en-us'"
89
class="pointer pull-right fa fa-times hover-color-red"
910
aria-hidden="true">
1011
</i>

src/components/common/VehicleDataItem.vue

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
<div class="form-group row">
2222
<label class="col-sm-2 col-form-label">{{ propsDisplay[propName].display.toUpperCase() }}</label>
2323
<div class="col-sm-10">
24-
<input v-model="item[propName]" :disabled="fieldsDisabled || (level === 1 && item.id)" class="form-control">
24+
<input v-model="item[propName]" :disabled="fieldsDisabled || (level === 1 && item.id)" class="form-control"
25+
@input="updateNameOrKey(propName, $event.target.value)">
2526
</div>
2627
<p v-if="findCommonParams(item[propName]) === 'CUSTOM'">
2728
<br>A parent or top level vehicle data item with this name already exists! By saving, you will overwrite the previously existing vehicle data.
@@ -55,7 +56,8 @@
5556
<div class="form-group row">
5657
<label class="col-sm-2 col-form-label">{{ propsDisplay[propName].display.toUpperCase() }}</label>
5758
<div class="col-sm-10">
58-
<input v-model="item[propName]" :disabled="fieldsDisabled" class="form-control">
59+
<input v-model="item[propName]" :disabled="fieldsDisabled" class="form-control"
60+
@input="updateNameOrKey(propName, $event.target.value)">
5961
</div>
6062
</div>
6163
</template>
@@ -170,6 +172,12 @@
170172
}
171173
this.item[propName] = Math.max(0, Math.round(val));
172174
},
175+
updateNameOrKey: function (propName, val) {
176+
// Checks for the invalid characters "!@#$%^&*", and whitespace characters that would be rejected by SDL Core
177+
if (/[!@#$%^&*\s]/g.test(val)) {
178+
return this.item[propName] = null;
179+
}
180+
},
173181
updateIntegerNumber: function (propName, val) {
174182
if (val === "-") {
175183
return val;

test/api/v1/messages/messages.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ common.startTest('should create new message', async function () {
2626
{
2727
message_category: 'Blarg',
2828
is_deleted: false,
29-
languages: []
29+
languages: [{
30+
language_id: 'en-us',
31+
selected: true,
32+
line1: ''
33+
}]
3034
}
3135
]
3236
});

vue.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ const app = require('./index.js');
77

88
module.exports = {
99
devServer: {
10-
before: app,
10+
setupMiddlewares: (middleware, server) => {
11+
app(server.app);
12+
return middleware;
13+
},
1114
port: settings.policyServerPort
1215
}
1316
}

0 commit comments

Comments
 (0)