[Release] wrt-installer_0.1.114
[framework/web/wrt-installer.git] / src / jobs / widget_uninstall / task_smack.cpp
index c6c1a57..353aaaf 100644 (file)
@@ -21,6 +21,7 @@
  */
 
 #include <widget_uninstall/task_smack.h>
+#include <widget_uninstall/job_widget_uninstall.h>
 #include <widget_uninstall/uninstaller_context.h>
 #include <dpl/log/log.h>
 #include <dpl/optional_typedefs.h>
@@ -34,32 +35,39 @@ TaskSmack::TaskSmack(UninstallerContext& context) :
     DPL::TaskDecl<TaskSmack>(this),
     m_context(context)
 {
+    AddStep(&TaskSmack::StartStep);
     AddStep(&TaskSmack::Step);
+    AddStep(&TaskSmack::EndStep);
 }
 
 void TaskSmack::Step()
 {
-    LogInfo("------------------------> SMACK: Jobs::WidgetUninstall::TaskSmack::Step()");
+    LogDebug(
+        "------------------------> SMACK: Jobs::WidgetUninstall::TaskSmack::Step()");
 #ifdef WRT_SMACK_ENABLED
-    try {
-      WrtDB::WidgetDAOReadOnly dao(m_context.locations->getPkgname());
-      DPL::OptionalString pkgName = dao.getPkgname();
-      Assert(!pkgName.IsNull() && "widget doesn't have a pkg name");
-      const char *devCap = "";
-      int result = handle_access_control_conf_forWAC(
-                       DPL::ToUTF8String(*pkgName).c_str(),
-                       NULL,
-                       OPERATION_UNINSTALL);
-      Assert(result==PC_OPERATION_SUCCESS && "access control setup failed");
-    } catch (WrtDB::WidgetDAOReadOnly::Exception) {
-      Assert(false && "can't access widget data");
+    const char* pkgId = m_context.tzPkgid.c_str();
+    if (PC_OPERATION_SUCCESS != app_revoke_permissions(pkgId)) {
+        LogError("failure in revoking smack permissions");
     }
 
-    m_context.job->UpdateProgress(
-        UninstallerContext::INSTALL_SMACK_ENABLE,
-        "Widget SMACK Enabled");
+    if (PC_OPERATION_SUCCESS != app_uninstall(pkgId)) {
+        LogError("failure in removing smack rules file");
+    }
 #endif
 }
 
+void TaskSmack::StartStep()
+{
+    LogDebug("--------- <TaskSmack> : START ----------");
+}
+
+void TaskSmack::EndStep()
+{
+    m_context.job->UpdateProgress(
+        UninstallerContext::UNINSTALL_SMACK_DISABLE,
+        "Widget SMACK Disabled");
+
+    LogDebug("--------- <TaskSmack> : END ----------");
+}
 } //namespace WidgetUninstall
 } //namespace Jobs