summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorDariusz Michaluk <d.michaluk@samsung.com>2017-05-10 16:12:44 +0200
committerDariusz Michaluk <d.michaluk@samsung.com>2017-05-12 15:22:20 +0200
commit786cbd9bc3320e8aa688309eb2044a1d1673a024 (patch)
tree62946084137d6b3bf6f6d4a4faa04701a43a6229 /db
parent648cc6b914cf2999bb2606d05d12d86367d88bb4 (diff)
downloadsecurity-manager-786cbd9bc3320e8aa688309eb2044a1d1673a024.tar.gz
security-manager-786cbd9bc3320e8aa688309eb2044a1d1673a024.tar.bz2
security-manager-786cbd9bc3320e8aa688309eb2044a1d1673a024.zip
Block the possibility of privilege redefinition
Change-Id: I897915c799ab03ad93d8f9f191ecbd96da885f60
Diffstat (limited to 'db')
-rw-r--r--db/db.sql8
1 files changed, 8 insertions, 0 deletions
diff --git a/db/db.sql b/db/db.sql
index abc6258a..726ddc1c 100644
--- a/db/db.sql
+++ b/db/db.sql
@@ -250,6 +250,10 @@ BEGIN
WHERE NOT EXISTS (SELECT 1 FROM user_app_pkg_view
WHERE uid=NEW.uid AND app_name=NEW.app_name);
+ SELECT RAISE(ABORT, 'App defined privilege already defined')
+ WHERE EXISTS (SELECT 1 FROM app_defined_privilege_view
+ WHERE uid=NEW.uid AND app_name=NEW.app_name AND privilege=NEW.privilege);
+
INSERT OR IGNORE INTO app_defined_privilege (app_id, uid, privilege, type, license)
VALUES ((SELECT app_id FROM app WHERE name=NEW.app_name), NEW.uid, NEW.privilege, NEW.type, NEW.license);
END;
@@ -280,6 +284,10 @@ BEGIN
WHERE NOT EXISTS (SELECT 1 FROM user_app_pkg_view
WHERE uid=NEW.uid AND app_name=NEW.app_name);
+ SELECT RAISE(ABORT, 'Client privilege license already defined')
+ WHERE EXISTS (SELECT 1 FROM client_license_view
+ WHERE uid=NEW.uid AND app_name=NEW.app_name AND privilege=NEW.privilege);
+
INSERT OR IGNORE INTO client_license (app_id, uid, privilege, license)
VALUES ((SELECT app_id FROM app WHERE name=NEW.app_name), NEW.uid, NEW.privilege, NEW.license);
END;