} else {
                    throw new Exception($r->message);
                }
            } catch (Exception $e) {
                $response["message"] = $e->getMessage();
                $status = 0;
            }
            if ($status == 0) {
                $response["status"] = "ERROR";
            }
            echo G::json_encode($response);
            exit(0);
            break;
        case "addonslist":
            $type = isset($_REQUEST['type']) ? $_REQUEST['type'] : 'plugin';
            $result = AddonsStore::addonList($type);
            break;
            break;
        default:
            throw new Exception("Action \"{$action}\" is not valid");
    }
    if (!isset($result["success"])) {
        $result["success"] = true;
    }
    if (isset($result["addons"])) {
        $result["addons"] = array_values($result["addons"]);
    } else {
        $result["addons"] = array();
    }
    echo G::json_encode($result);
} catch (Exception $e) {
 public function enterpriseSystemUpdate($data)
 {
     if (count(glob(PATH_DATA_SITE . 'license/*.dat')) == 0) {
         return;
     }
     require_once "classes/model/Users.php";
     $user = $data;
     $criteria = new Criteria("workflow");
     //SELECT
     $criteria->addSelectColumn(UsersPeer::USR_UID);
     //FROM
     //WHERE
     $criteria->add(UsersPeer::USR_USERNAME, $user->lName);
     //$user->lPassword
     $criteria->add(UsersPeer::USR_ROLE, "PROCESSMAKER_ADMIN");
     //query
     $rsSQLUSR = UsersPeer::doSelectRS($criteria);
     $rsSQLUSR->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $sw = 0;
     if (UsersPeer::doCount($criteria) > 0) {
         //if ($rsSQLUSR->getRecordCount() > 0) {
         $sw = 1;
     }
     /*
     $cnn = Propel::getConnection("workflow");
     $stmt = $cnn->createStatement();
     
     $sql = "SELECT USR.USR_UID
             FROM   USERS AS USR
             WHERE  USR.USR_USERNAME = '******' AND USR.USR_ROLE = 'PROCESSMAKER_ADMIN'";
     $rsSQLUSR = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
     
     $sw = 0;
     
     if ($rsSQLUSR->getRecordCount() > 0) {
         $sw = 1;
     }
     */
     if ($sw == 1) {
         //Upgrade available
         $swUpgrade = 0;
         $addonList = AddonsStore::addonList();
         $addon = $addonList["addons"];
         if (count($addon) > 0) {
             $status = array("ready", "upgrade", "available");
             $pmVersion = EnterpriseUtils::pmVersion(PM_VERSION);
             foreach ($addon as $index => $value) {
                 if ($addon[$index]["id"] == "processmaker") {
                     if (version_compare($pmVersion . "", EnterpriseUtils::pmVersion($addon[$index]["version"]) . "", "<")) {
                         $swUpgrade = 1;
                         break;
                     }
                 } else {
                     if (in_array($addon[$index]["status"], $status)) {
                         $swUpgrade = 1;
                         break;
                     }
                 }
             }
         }
         if ($swUpgrade == 1) {
             $_SESSION["__ENTERPRISE_SYSTEM_UPDATE__"] = 1;
         }
     }
 }