Change security_manager_app_install return code 15/24715/10
authorJan Cybulski <j.cybulski@samsung.com>
Fri, 18 Jul 2014 12:42:25 +0000 (14:42 +0200)
committerJan Cybulski <j.cybulski@samsung.com>
Mon, 21 Jul 2014 12:24:09 +0000 (14:24 +0200)
So far, security_manager_app_install returned only
SECURITY_MANAGER_SUCCESS or SECURITY_MANAGER_ERROR_UNKNOWN,
which is not enough now.

Now, there is possibility, that security manager would reject
installation of some applciations on the basis of uid and users
home directory.
This function will return information about that now as return code.

Change-Id: I53b23b8318a756a8fbf4b804e49046cfa5acd4e0
Signed-off-by: Jan Cybulski <j.cybulski@samsung.com>
src/client/client-security-manager.cpp
src/include/security-manager.h

index 9de0fa9..5f84f16 100644 (file)
@@ -136,10 +136,15 @@ int security_manager_app_install(const app_inst_req *p_req)
 
         //receive response from server
         Deserialization::Deserialize(recv, retval);
-        if (retval != SECURITY_MANAGER_API_SUCCESS)
-            return SECURITY_MANAGER_ERROR_UNKNOWN;
+        switch(retval) {
+            case SECURITY_MANAGER_API_SUCCESS:
+                return SECURITY_MANAGER_SUCCESS;
+            case SECURITY_MANAGER_API_ERROR_AUTHENTICATION_FAILED:
+                return SECURITY_MANAGER_ERROR_AUTHENTICATION_FAILED;
+            default:
+                return SECURITY_MANAGER_ERROR_UNKNOWN;
+        }
 
-        return SECURITY_MANAGER_SUCCESS;;
     });
 }
 
index 6bc2441..760ee3f 100644 (file)
@@ -108,7 +108,8 @@ enum lib_retcode {
     SECURITY_MANAGER_ERROR_UNKNOWN,
     SECURITY_MANAGER_ERROR_INPUT_PARAM,
     SECURITY_MANAGER_ERROR_MEMORY,
-    SECURITY_MANAGER_ERROR_REQ_NOT_COMPLETE
+    SECURITY_MANAGER_ERROR_REQ_NOT_COMPLETE,
+    SECURITY_MANAGER_ERROR_AUTHENTICATION_FAILED
 };
 
 /*! \brief accesses types for application installation paths*/
@@ -188,7 +189,11 @@ int security_manager_app_inst_req_add_path(app_inst_req *p_req, const char *path
  * using filled up app_inst_req data structure
  *
  * \param[in] Pointer handling app_inst_req structure
- * \return API return code or error code
+ * \return API return code or error code: it would be
+ * - SECURITY_MANAGER_SUCCESS on success,
+ * - SECURITY_MANAGER_ERROR_AUTHENTICATION_FAILED when user does not
+ * have rights to install requested directories,
+ * - SECURITY_MANAGER_ERROR_UNKNOWN on other errors.
  */
 int security_manager_app_install(const app_inst_req *p_req);