Remove cynara entries regarding removed user 36/34336/5
authorJan Cybulski <j.cybulski@samsung.com>
Thu, 29 Jan 2015 14:36:09 +0000 (15:36 +0100)
committerJan Cybulski <j.cybulski@samsung.com>
Thu, 29 Jan 2015 14:36:09 +0000 (15:36 +0100)
Change-Id: I807f4b5ebf76b29b5a9049a9a6bbfd51056d6697
Signed-off-by: Jan Cybulski <j.cybulski@samsung.com>
src/common/cynara.cpp
src/common/include/cynara.h
src/common/service_impl.cpp

index 4d4ec750fa4e56a86ab8ec847282073dd2ee5e14..030041faf9ecaefeb3e5f965deefdcb1aea2986e 100644 (file)
@@ -337,6 +337,15 @@ void CynaraAdmin::UserInit(uid_t uid, security_manager_user_type userType)
     CynaraAdmin::getInstance().SetPolicies(policies);
 }
 
+void CynaraAdmin::UserRemove(uid_t uid)
+{
+    std::vector<CynaraAdminPolicy> policies;
+    std::string user = std::to_string(static_cast<unsigned int>(uid));
+
+    EmptyBucket(Buckets.at(Bucket::PRIVACY_MANAGER),true,
+            CYNARA_ADMIN_ANY, user, CYNARA_ADMIN_ANY);
+}
+
 void CynaraAdmin::ListPolicies(
     const std::string &bucketName,
     const std::string &appId,
index 98ce805f06e6091e21a9f782d3a6d7b2502e7be2..97a6375de4b44328da9355aa5989d2388f69f411 100644 (file)
@@ -136,6 +136,13 @@ public:
      */
     void UserInit(uid_t uid, security_manager_user_type userType);
 
+    /**
+     * Removes all entries for a user from cynara database
+     *
+     * @param uid removed user uid
+     */
+    void UserRemove(uid_t uid);
+
     /**
      * List Cynara policies that match selected criteria in given bucket.
      *
index 7eddd502a8f8db525f08d14c84f17b8b6870d45b..824b1a9c7d298d0399165747d9967d079d725621 100644 (file)
@@ -400,8 +400,6 @@ int userDelete(uid_t uidDeleted, uid_t uid)
     if (uid != 0)
         return SECURITY_MANAGER_API_ERROR_AUTHENTICATION_FAILED;
 
-    //TODO remove policy information from cynara
-
     /*Uninstall all user apps*/
     std::vector<std::string> userApps;
     try {
@@ -419,6 +417,8 @@ int userDelete(uid_t uidDeleted, uid_t uid)
         }
     }
 
+    CynaraAdmin::getInstance().UserRemove(uidDeleted);
+
     return ret;
 }