Add API for privilege mapping between versions 42/43042/5
authorZofia Abramowska <z.abramowska@samsung.com>
Mon, 6 Jul 2015 15:38:30 +0000 (17:38 +0200)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Tue, 4 Aug 2015 15:36:38 +0000 (08:36 -0700)
Change-Id: Id61c2e4d8ff0252f6269ba3c6756170bdca38295

src/client/client-security-manager.cpp
src/include/security-manager.h

index 5a8c4d8..48b4594 100644 (file)
@@ -978,3 +978,25 @@ void security_manager_policy_levels_free(char **levels, size_t levels_count)
 
     delete[] levels;
 }
+
+SECURITY_MANAGER_API
+int security_manager_get_privileges_mapping(const char *from_version,
+                                             const char *to_version,
+                                             char const * const *privileges,
+                                             size_t privileges_count,
+                                             char ***privileges_mappings,
+                                             size_t *mappings_count)
+{
+    (void)to_version;
+    if (from_version == nullptr || privileges == nullptr ||
+            privileges_mappings == nullptr || mappings_count == nullptr || privileges_count == 0) {
+        return SECURITY_MANAGER_ERROR_INPUT_PARAM;
+    }
+    return SECURITY_MANAGER_ERROR_UNKNOWN;
+}
+SECURITY_MANAGER_API
+void security_manager_privilege_mapping_free(char **privileges_mappings, size_t mappings_count)
+{
+    (void)privileges_mappings;
+    (void)mappings_count;
+}
index 9ddcfca..a96d5e7 100644 (file)
@@ -731,6 +731,35 @@ int security_manager_policy_levels_get(char ***levels, size_t *levels_count);
  */
 void security_manager_policy_levels_free(char **levels, size_t levels_count);
 
+/**
+ * This function returns mapping of MULTIPLE privileges from one version to the other.
+ * List of privileges is a union of mappings of every single given privilege.
+ *
+ * Caller needs to free memory allocated for the list using
+ * security_manager_privilege_mapping_free().
+ *
+ * @param[in] from_version Version of passed privilege
+ * @param[in] to_version Version of requested mapping, if NULL default one will be used
+ * @param[in] privileges Names of privileges to be mapped
+ * @param[in] privileges_count Number of privileges to be mapped
+ * @param[out] privilege_mapping Pointer to list of sum of privileges which given privileges maps to
+ * @param[out] mapping_count
+ * @return API return code or error code
+ */
+int security_manager_get_privileges_mapping(const char *from_version,
+                                            const char *to_version,
+                                            char const * const *privileges,
+                                            size_t privileges_count,
+                                            char ***privileges_mappings,
+                                            size_t *mappings_count);
+/**
+ * This function frees memory allocated by security_manager_get_privilege_mapping() and
+ * security_manager_get_privileges_mapping().
+ *
+ * @param[in] privilege_mapping List of privileges
+ * @param[in] mapping_count Number of privileges
+ */
+void security_manager_privilege_mapping_free(char **privileges_mappings, size_t mappings_count);
 #ifdef __cplusplus
 }
 #endif