Skip to content

Commit 52dd3a3

Browse files
authored
Merge pull request #298 from smartdevicelink/hotfix/missing-permissions
Hotfix/missing permissions
2 parents 560181c + 15fd9ef commit 52dd3a3

9 files changed

+318
-153
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
'use strict';
2+
3+
var dbm;
4+
var type;
5+
var seed;
6+
var fs = require('fs');
7+
var path = require('path');
8+
var Promise;
9+
10+
/**
11+
* We receive the dbmigrate dependency from dbmigrate initially.
12+
* This enables us to not have to rely on NODE_PATH.
13+
*/
14+
exports.setup = function(options, seedLink) {
15+
dbm = options.dbmigrate;
16+
type = dbm.dataType;
17+
seed = seedLink;
18+
Promise = options.Promise;
19+
};
20+
21+
exports.up = function(db) {
22+
var filePath = path.join(__dirname, 'sqls', '20220608172537-add-on-tbt-client-state-up.sql');
23+
return new Promise( function( resolve, reject ) {
24+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
25+
if (err) return reject(err);
26+
console.log('received data: ' + data);
27+
28+
resolve(data);
29+
});
30+
})
31+
.then(function(data) {
32+
return db.runSql(data);
33+
});
34+
};
35+
36+
exports.down = function(db) {
37+
var filePath = path.join(__dirname, 'sqls', '20220608172537-add-on-tbt-client-state-down.sql');
38+
return new Promise( function( resolve, reject ) {
39+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
40+
if (err) return reject(err);
41+
console.log('received data: ' + data);
42+
43+
resolve(data);
44+
});
45+
})
46+
.then(function(data) {
47+
return db.runSql(data);
48+
});
49+
};
50+
51+
exports._meta = {
52+
"version": 1
53+
};
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
'use strict';
2+
3+
var dbm;
4+
var type;
5+
var seed;
6+
var fs = require('fs');
7+
var path = require('path');
8+
var Promise;
9+
10+
/**
11+
* We receive the dbmigrate dependency from dbmigrate initially.
12+
* This enables us to not have to rely on NODE_PATH.
13+
*/
14+
exports.setup = function(options, seedLink) {
15+
dbm = options.dbmigrate;
16+
type = dbm.dataType;
17+
seed = seedLink;
18+
Promise = options.Promise;
19+
};
20+
21+
exports.up = function(db) {
22+
var filePath = path.join(__dirname, 'sqls', '20220608173445-set-propriatarydate-up.sql');
23+
return new Promise( function( resolve, reject ) {
24+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
25+
if (err) return reject(err);
26+
console.log('received data: ' + data);
27+
28+
resolve(data);
29+
});
30+
})
31+
.then(function(data) {
32+
return db.runSql(data);
33+
});
34+
};
35+
36+
exports.down = function(db) {
37+
var filePath = path.join(__dirname, 'sqls', '20220608173445-set-propriatarydate-down.sql');
38+
return new Promise( function( resolve, reject ) {
39+
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
40+
if (err) return reject(err);
41+
console.log('received data: ' + data);
42+
43+
resolve(data);
44+
});
45+
})
46+
.then(function(data) {
47+
return db.runSql(data);
48+
});
49+
};
50+
51+
exports._meta = {
52+
"version": 1
53+
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/* Leave blank. Avoid deleting permissions from functional groupings */
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
--Create OnTBTClientState for newest staging and production Navigation-1 groups.
2+
INSERT INTO function_group_hmi_levels(function_group_id, permission_name, hmi_level)
3+
SELECT id AS function_group_id, 'OnTBTClientState' AS permission_name, v.hmi_level::hmi_level AS hmi_level
4+
FROM view_function_group_info
5+
CROSS JOIN (
6+
VALUES ('FULL'), ('LIMITED'), ('BACKGROUND')
7+
) AS v(hmi_level)
8+
WHERE property_name = 'Navigation-1'
9+
AND NOT EXISTS (
10+
SELECT 1
11+
FROM function_group_hmi_levels
12+
WHERE function_group_id = id
13+
AND permission_name = 'OnTBTClientState'
14+
);
15+
16+
17+
-- RECREATE AFFECTED VIEWS --
18+
CREATE OR REPLACE VIEW view_function_group_info AS
19+
SELECT function_group_info.*
20+
FROM (
21+
SELECT property_name, status, max(id) AS id
22+
FROM function_group_info
23+
GROUP BY property_name, status
24+
) AS vfgi
25+
INNER JOIN function_group_info ON vfgi.id = function_group_info.id;
26+
27+
CREATE OR REPLACE VIEW view_mapped_permissions AS
28+
SELECT function_group_id AS id, permission_name AS name, status, property_name, is_deleted
29+
FROM view_function_group_info
30+
INNER JOIN function_group_hmi_levels
31+
ON view_function_group_info.id = function_group_hmi_levels.function_group_id
32+
WHERE is_deleted=false
33+
UNION
34+
SELECT function_group_id AS id, parameter AS name, status, property_name, is_deleted
35+
FROM view_function_group_info
36+
INNER JOIN function_group_parameters
37+
ON view_function_group_info.id = function_group_parameters.function_group_id
38+
WHERE is_deleted=false;
39+
40+
CREATE OR REPLACE VIEW view_mapped_permissions_staging AS
41+
SELECT view_mapped_permissions.*
42+
FROM view_mapped_permissions
43+
INNER JOIN (
44+
SELECT max(id) AS id, property_name
45+
FROM view_function_group_info
46+
GROUP BY property_name
47+
) fgi
48+
ON view_mapped_permissions.id = fgi.id;
49+
50+
CREATE OR REPLACE VIEW view_mapped_permissions_production AS
51+
SELECT view_mapped_permissions.* FROM view_mapped_permissions
52+
WHERE status = 'PRODUCTION';
53+
-- END VIEW RECREATION --
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
UPDATE function_group_info
2+
SET is_proprietary_group = 'false'
3+
WHERE property_name IN ('PropriataryData-1','PropriataryData-2','ProprietaryData-3');
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
UPDATE function_group_info
2+
SET is_proprietary_group = 'true'
3+
WHERE property_name IN ('PropriataryData-1','PropriataryData-2','ProprietaryData-3');

0 commit comments

Comments
 (0)