From 3ed54b3839298eeba774612e3246a73ac57dd75a Mon Sep 17 00:00:00 2001
From: Reinhold Kainhofer <reinhold@kainhofer.com>
Date: Sun, 3 Jan 2016 19:25:41 +0100
Subject: [PATCH] V1.6.1: Automatic updates through the Joomla updater

---
 Makefile                                      |   2 +-
 buyer_assign_group.php                        | 206 +++++++++++++++++-
 buyer_assign_group.xml                        |  18 +-
 fields/index.html                             |   0
 fields/vmupdatecredentialscheck.php           | 161 ++++++++++++++
 .../en-GB.plg_vmcustom_buyer_assign_group.ini |  15 +-
 ...pentools_vm2_buyer_assign_group_v1.6.1.zip | Bin 0 -> 27306 bytes
 7 files changed, 389 insertions(+), 13 deletions(-)
 create mode 100644 fields/index.html
 create mode 100644 fields/vmupdatecredentialscheck.php
 create mode 100644 releases/plg_opentools_vm2_buyer_assign_group_v1.6.1.zip

diff --git a/Makefile b/Makefile
index bbc2493..c7c936d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 BASE=buyer_assign_group
 PLUGINTYPE=vmcustom
 ZIPBASE=opentools_vm2
-VERSION=1.6
+VERSION=1.6.1
 
 PLUGINFILES=$(BASE).php $(BASE).script.php $(BASE).xml index.html
 
diff --git a/buyer_assign_group.php b/buyer_assign_group.php
index 64c21bd..b46a27f 100644
--- a/buyer_assign_group.php
+++ b/buyer_assign_group.php
@@ -356,16 +356,202 @@ class plgVmCustomBuyer_Assign_Group extends vmCustomPlugin {
 		}
 	}
 
-// 	function plgVmOnSelfCallBE($type, $name, &$output) {
-// 		if ($name != $this->_name || $type != 'vmcustom') return false;
-// 		vmDebug('plgVmOnSelfCallBE');
-// 		
-// 		$db = JFactory::getDBO();
-// 		$db->setQuery("SELECT * FROM `".$this->_tablename.";");
-// 		$val = $db->loadAssocList();
-// 		
-// 		JFactory::getApplication()->enqueueMessage("<pre>plgVmOnSelfCallBE, type=$type, name=$name, full database contents:".print_r($val,1)."</pre>", 'error');		
-// 	}
+    /**
+     * plgVmOnSelfCallBE ... Called to execute some plugin action in the backend (e.g. set/reset dl counter, show statistics etc.)
+     */
+    function plgVmOnSelfCallBE($type, $name, &$output) {
+        if ($name != $this->_name || $type != $this->_type) return false;
+        vmDebug('plgVmOnSelfCallBE');
+        $user = JFactory::getUser();
+        $authorized = ($user->authorise('core.admin','com_virtuemart') or
+                       $user->authorise('core.manage','com_virtuemart'));
+        $json = array();
+        $json['authorized'] = $authorized;
+        if (!$authorized) return FALSE;
+
+        $action = vRequest::getCmd('action');
+        $json['action'] = $action;
+        $json['success'] = 0; // default: unsuccessfull
+        switch ($action) {
+			case "check_update_access":
+				$order_number = vRequest::getString('order_number');
+				$order_pass = vRequest::getString('order_pass');
+				$json = $this->checkUpdateAccess($order_number, $order_pass, $json);
+				break;
+        }
+        
+        // Also return all messages (in HTML format!):
+        // Since we are in a JSON document, we have to temporarily switch the type 
+        // to HTML to make sure the html renderer is actually used
+        $document = JFactory::getDocument ();
+        $previoustype = $document->getType();
+        $document->setType('html');
+        $msgrenderer = $document->loadRenderer('message');
+        $json['messages'] = $msgrenderer->render('Message');
+        $document->setType($previoustype);
+
+        // WORKAROUND for broken (i.e. duplicate) content-disposition headers in Joomla 2.x:
+        // We request everything in raw and here send the headers for JSON and return
+        // the raw output in json format
+        $document =JFactory::getDocument();
+        $document->setMimeEncoding('application/json');
+        JResponse::setHeader('Content-Disposition','attachment;filename="opentools_update_access.json"');
+        $output = json_encode($json);
+    }
+    
+    protected function checkUpdateAccess($order_number, $order_pass, $json = array()) {
+		// First, extract the update server URL from the manifest, then load 
+		// the update XML from the update server, extract the download URL, 
+		// append the order number and password and check whether access is 
+		// possible.
+		$json['success'] = FALSE;
+		$xml = simplexml_load_file($this->_xmlFile);
+		if (!$xml || !isset($xml->updateservers)) {
+			JFactory::getApplication()->enqueueMessage(JText::sprintf('OPENTOOLS_XMLMANIFEST_ERROR', $this->_xmlFile), 'error');
+			return $json;
+		}
+		$updateservers = $xml->updateservers;
+		foreach ($updateservers->children() as $server) {
+			if ($server->getName()!='server') {
+				JFactory::getApplication()->enqueueMessage(JText::sprintf('OPENTOOLS_XMLMANIFEST_ERROR', $this->_xmlFile), 'error');
+				continue;
+			}
+			$updateurl = html_entity_decode((string)$server);
+			$updatescript = simplexml_load_file($updateurl);
+			if (!$updatescript) {
+				JFactory::getApplication()->enqueueMessage(JText::sprintf('OPENTOOLS_UPDATESCRIPT_ERROR', $updateurl), 'error');
+				continue;
+			}
+			$urls = $updatescript->xpath('/updates/update/downloads/downloadurl');
+			while (list( , $node) = each($urls)) {
+				$downloadurl = (string)($node);
+				if ($order_number) {
+					$downloadurl .= (parse_url($downloadurl, PHP_URL_QUERY) ? '&' : '?') . 'order_number=' . urlencode($order_number);
+				}
+				if ($order_pass) {
+					$downloadurl .= (parse_url($downloadurl, PHP_URL_QUERY) ? '&' : '?') . 'order_pass=' . urlencode($order_pass);
+				}
+				$downloadurl .= (parse_url($downloadurl, PHP_URL_QUERY) ? '&' : '?') . 'check_access=1';
+
+				$headers = get_headers($downloadurl);
+				list($version, $status_code, $msg) = explode(' ',$headers[0], 3);
+				
+				// Check the HTTP Status code
+				switch($status_code) {
+					case 200:
+						$json['success'] = TRUE;
+						JFactory::getApplication()->enqueueMessage($msg, 'message');
+						$this->setupUpdateCredentials($order_number, $order_pass);
+						break;
+					default:
+						JFactory::getApplication()->enqueueMessage($msg, 'error');
+						// Clear the credentials...
+						$this->setupUpdateCredentials("", "");
+						break;
+				}
+				$this->setAndSaveParams(array(
+					'update_credentials_checked'=>$json['success'],
+					'order_number' => $order_number,
+					'order_pass' => $order_pass,
+				));
+			}
+		}
+		return $json;
+    }
+
+    protected function setAndSaveParams($params) {
+		$db = JFactory::getDbo();
+		$query = $db->getQuery(true)
+			->select('extension_id')
+			->from('#__extensions')
+			->where('folder = '.$db->quote($this->_type))
+			->where('element = '.$db->quote($this->_name))
+			->where('type =' . $db->quote('plugin'))
+			->order('ordering');
+
+		$plugin = $db->setQuery($query)->loadObject();
+		if (!$plugin)
+			return;
+		$pluginId=$plugin->extension_id;
+		
+		foreach ($params as $param=>$parvalue) {
+			$this->params->set($param, $parvalue);
+		}
+		
+		$extensions = JTable::getInstance('extension');
+		$extensions->load($pluginId);
+		$extensions->bind(array('params' => $this->params->toString()));
+		
+		// check and store 
+		if (!$extensions->check()) {
+			$this->setError($extensions->getError());
+			return false;
+		}
+		if (!$extensions->store()) {
+			$this->setError($extensions->getError());
+			return false;
+		}
+    }
+
+
+	protected function setupUpdateCredentials($ordernumber, $orderpass) {
+		$db = JFactory::getDbo();
+		$query = $db->getQuery(true)
+			->select('extension_id AS id')
+			->from('#__extensions')
+			->where('folder = '.$db->quote($this->_type))
+			->where('element = '.$db->quote($this->_name))
+			->where('type =' . $db->quote('plugin'))
+			->order('ordering');
+
+		$plugin = $db->setQuery($query)->loadObject();
+		if (empty($plugin))
+			return;
+
+		$ordernumber = preg_replace("/[^-A-Za-z0-9_]/", '', $ordernumber);
+		$orderpass = preg_replace("/[^-A-Za-z0-9_]/", '', $orderpass);
+		
+		$extra_query = array();
+		if ($ordernumber!='') {
+			$extra_query[] = 'order_number='.preg_replace("/[^-A-Za-z0-9_]/", '', $ordernumber);
+		}
+		if ($orderpass!='') {
+			$extra_query[] = 'order_pass='.preg_replace("/[^-A-Za-z0-9_]/", '', $orderpass);
+		}
+		$extra_query = implode('&amp;', $extra_query);
+		
+		// The following code is based on Nicholas K. Dionysopoulos' Joomla Pull request:
+		//     https://github.com/joomla/joomla-cms/pull/2508
+		
+		// Load the update site record, if it exists
+		$db = JFactory::getDbo();
+		$query = $db->getQuery(true)
+			->select('update_site_id AS id')
+			->from($db->qn('#__update_sites_extensions'))
+			->where($db->qn('extension_id').' = '.$db->q($plugin->id));
+		$db->setQuery($query);
+		$updateSites = $db->loadObjectList();
+
+		foreach ($updateSites as $updateSite) {
+			// Update the update site record
+			$query = $db->getQuery(true)
+				->update($db->qn('#__update_sites'))
+				->set('extra_query = '.$db->q($extra_query))
+				->set('last_check_timestamp = 0')
+				->where($db->qn('update_site_id').' = '.$db->q($updateSite->id));
+			$db->setQuery($query);
+			$db->execute();
+
+			// Delete any existing updates (essentially flushes the updates cache for this update site)
+			$query = $db->getQuery(true)
+				->delete($db->qn('#__updates'))
+				->where($db->qn('update_site_id').' = '.$db->q($updateSite->id));
+			$db->setQuery($query);
+			$db->execute();
+		}
+		
+	}
+
 }
 
 // No closing tag
\ No newline at end of file
diff --git a/buyer_assign_group.xml b/buyer_assign_group.xml
index 56acbe6..59231b7 100644
--- a/buyer_assign_group.xml
+++ b/buyer_assign_group.xml
@@ -6,7 +6,7 @@
     <authorUrl>http://www.open-tools.net/</authorUrl>
     <copyright>Copyright (C) 2013-2014 Reinhold Kainhofer. All rights reserved.</copyright>
     <license>http://www.gnu.org/licenses/gpl.html GNU/GPL v3+</license>
-    <version>1.6</version>
+    <version>1.6.1</version>
     <description>VMCUSTOM_BUYER_GROUP_DESC</description>
     <files>
         <filename plugin="buyer_assign_group">buyer_assign_group.php</filename>
@@ -14,6 +14,7 @@
         <filename>index.html</filename>
         <folder>language</folder>
         <folder>elements</folder>
+        <folder>fields</folder>
     </files>
     <languages folder="language">
         <language tag="en-GB">en-GB/en-GB.plg_vmcustom_buyer_assign_group.ini</language>
@@ -34,4 +35,19 @@
         <param type="vmjpluginwarning" />
         <param name="purchased_status" type="vmorderstates" default="C,S" multiple="multiple" label="VMCUSTOM_BUYER_GROUP_STATUS" description="VMCUSTOM_BUYER_GROUP_STATUS_DESC"/>
     </params>
+	
+    <config>
+        <fields name="params">
+            <fieldset name="update_credentials" label="OPENTOOLS_FIELDSET_CREDENTIALS" addfieldpath="/plugins/vmcustom/downloads_for_sale/fields">
+                <field name="credentials_desc" type="spacer" label="OPENTOOLS_CREDENTIALS_DESC" />
+                <field name="order_number" type="text" default="" label="OPENTOOLS_ORDERNUMBER" description="OPENTOOLS_ORDERNUMBER_DESC"/>
+                <field name="order_pass" type="text" default="" label="OPENTOOLS_ORDERPASS" description="OPENTOOLS_ORDERPASS_DESC"/>
+				<field name="update_credentials_checked" type="vmUpdateCredentialsCheck" label="" ajaxurl="index.php?option=com_virtuemart&amp;view=plugin&amp;type=vmcustom&amp;name=buyer_assign_group&amp;format=raw" />
+            </fieldset>
+		</fields>
+    </config>
+	<updateservers>
+		<server type="extension" name="VM Customers to Joomla Groups Plugin Updates"><![CDATA[http://open-tools.net/UpdateServer/index.php?package=Joomla&amp;extension=BuyerAssignGroups&amp;file=extension.xml]]></server>
+	</updateservers>
+
 </extension>
diff --git a/fields/index.html b/fields/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/fields/vmupdatecredentialscheck.php b/fields/vmupdatecredentialscheck.php
new file mode 100644
index 0000000..d08397b
--- /dev/null
+++ b/fields/vmupdatecredentialscheck.php
@@ -0,0 +1,161 @@
+<?php
+defined('_JEXEC') or die();
+/**
+ *
+ * @package    VirtueMart
+ * @subpackage Plugins  - Fields
+ * @author Reinhold Kainhofer, Open Tools
+ * @link http://www.open-tools.net
+ * @copyright Copyright (c) 2016 Reinhold Kainhofer. All rights reserved.
+ * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.txt
+ * VirtueMart is free software. This version may have been modified pursuant
+ * to the GNU General Public License, and as distributed it includes or
+ * is derivative of works licensed under the GNU General Public License or
+ * other free or open source software licenses.
+ */
+ 
+defined('DS') or define('DS', DIRECTORY_SEPARATOR);
+if (!class_exists( 'VmConfig' )) 
+    require(JPATH_ROOT.DS.'administrator'.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'config.php');
+VmConfig::loadConfig();
+
+class JFormFieldVmUpdateCredentialsCheck extends JFormField {
+    var $_name = 'vmUpdateCredentialsCheck';
+    
+	// VM2 on J2 works, VM3 on J3 works out of the box, but
+	// VM3 on J2 does NOT work by simply calling vmJsApi::jQuery, because
+	// the JS is never added to the page header, so we have to add this manually
+	public function loadjQuery() {
+		vmJsApi::jQuery();
+		// TODO: jquery::ui available only in J3:
+		if (version_compare(JVERSION, '3.0', 'lt')) {
+		} else {
+			JHtml::_('jquery.ui', array('core', 'sortable'));
+		}
+		// If we are on Joomla 2.5 and VM 3, manually add the script declarations 
+		// cached in vmJsApi to the document header:
+		if (version_compare(JVERSION, '3.0', 'lt') && defined('VM_VERSION') && VM_VERSION>=3) {
+			$document = JFactory::getDocument();
+			$scripts = vmJsApi::getJScripts();
+			foreach ($scripts as $name => $jsToAdd) {
+				if($jsToAdd['written']) continue;
+				$file = $jsToAdd['script'] ? $jsToAdd['script'] : $name;
+				
+				if(strpos($file,'/')!==0){
+					$file = vmJsApi::setPath($file,false,'');
+				} else if(strpos($file,'//')!==0){
+					$file = JURI::root(true).$file;
+				}
+
+				$ver = '';
+				if(!empty($jsToAdd['ver'])) $ver = '?vmver='.$jsToAdd['ver'];
+				$document->addScript( $file .$ver,"text/javascript",$jsToAdd['defer'],$jsToAdd['async'] );
+				vmJsApi::removeJScript($name);
+			}
+		}
+	}
+    
+    protected function getJavaScript() {
+		return "
+var credentials_ajaxurl = \"".$this->element["ajaxurl"]."\";
+var credentials_updateMessages = function(messages, area) {
+    jQuery( \"#system-message-container #system-message .\"+area+\"-message\").remove();
+    var newmessages = jQuery( messages ).find(\"div.alert, .message\").addClass(area+\"-message\");
+    if (!jQuery( \"#system-message-container #system-message\").length && newmessages.length) {
+        if (jQuery(newmessages).first().prop(\"tagName\")==\"dt\") { // Joomla 2.x:
+            jQuery( \"#system-message-container\" ).append( \"<dl id=\'system-message\'></div>\" );
+        } else {
+            jQuery( \"#system-message-container\" ).append( \"<div id=\'system-message\'></div>\" );
+        }
+    }
+    newmessages.appendTo( \"#system-message-container #system-message\");
+};
+
+var checkUpdateCredentialsError = function() {
+	alert (\"".JText::_('OPENTOOLS_CHECK_CREDENTIALS_ERROR')."\"); 
+}
+
+var checkUpdateCredentials = function () {
+	var ordernumber = jQuery('#jform_params_order_number').val();
+	var orderpass = jQuery('#jform_params_order_pass').val();
+	
+    var ajaxargs = {
+        type: \"POST\",
+		dataType: \"text\",
+        url: credentials_ajaxurl,
+        data: { 
+			action: \"check_update_access\",
+			order_number: ordernumber, 
+			order_pass: orderpass
+		},
+		
+		success: function ( json ) {
+			try {
+				json = jQuery.parseJSON(json);
+				credentials_updateMessages(json['messages'], 'ordernumber');
+			} catch (e) {
+				checkUpdateCredentialsError();
+				return;
+			}
+			var success=0;
+			if (json.success>0) {
+				success=1;
+			}
+			jQuery('#update_credentials_hidden_checked').val(success);
+			jQuery('.credentials_checked')
+				.removeClass('credentials_checked_0')
+				.removeClass('credentials_checked_1')
+				.addClass('credentials_checked_'+success);
+		},
+		error: function() { checkUpdateCredentialsError(); },
+		complete: function() {  },
+	};
+	jQuery.ajax(ajaxargs);
+};
+jQuery(document).ready (function () {
+	jQuery('#jform_params_order_number').focusout(checkUpdateCredentials);
+	jQuery('#jform_params_order_pass').focusout(checkUpdateCredentials);
+});
+
+";
+    }
+    
+    protected function getCSS() {
+		return "
+div.credentials_checked {
+	padding: 10px 5px;
+    float: left;
+    clear: left;
+    display: block;
+    width: 100%;
+}
+div.credentials_checked_0 {
+	background-color: #FFD0D0;
+}
+div.credentials_checked_1 {
+	background-color: #D0FFD0;
+}
+a#credentials_check {
+}
+
+";
+    }
+	protected function getInput() {
+		// Tell the user that automatic updates are not available in Joomla 2.5:
+		if (version_compare(JVERSION, '3.0', 'lt')) {
+			JFactory::getApplication()->enqueueMessage(JText::_('OPENTOOLS_COMMERCIAL_UPDATES_J25'), 'warning');
+		}
+
+		$this->loadjQuery();
+		
+		$doc = JFactory::getDocument();
+		$doc->addScriptDeclaration($this->getJavaScript());
+		$doc->addStyleDeclaration($this->getCSS());
+		
+		if ($this->value!=1) {
+			$this->value=0;
+		}
+// 		if ($this->value==1) {
+		return "<input type='hidden' id=\"update_credentials_hidden_checked\" name='".$this->name."' value='".$this->value."' /><div class='credentials_checked credentials_checked_".$this->value."'><a href=\"#\" class=\"btn btn-info credentials_check\" id=\"credentials_check\" onclick=\"checkUpdateCredentials()\" >".JText::_('OPENTOOLS_CHECK_CREDENTIALS')."</a></div>";
+	}
+}
diff --git a/language/en-GB/en-GB.plg_vmcustom_buyer_assign_group.ini b/language/en-GB/en-GB.plg_vmcustom_buyer_assign_group.ini
index 63249c1..a929f75 100644
--- a/language/en-GB/en-GB.plg_vmcustom_buyer_assign_group.ini
+++ b/language/en-GB/en-GB.plg_vmcustom_buyer_assign_group.ini
@@ -13,4 +13,17 @@ VMCUSTOM_BUYER_GROUP_JOOMLA_REMOVE="Remove from Joomla Usergroups:"
 VMCUSTOM_BUYER_GROUP_SHOPPER="Add to VM Shoppergroups:"
 VMCUSTOM_BUYER_GROUP_SHOPPER_REMOVE="Remove from VM Shoppergroups:"
 
-VMCUSTOM_BUYER_GROUP_NO_UID="Not logged in as Joomla and VirtueMart user, unable to add to user groups. Please contact the vendor."
\ No newline at end of file
+VMCUSTOM_BUYER_GROUP_NO_UID="Not logged in as Joomla and VirtueMart user, unable to add to user groups. Please contact the vendor."
+
+
+OPENTOOLS_FIELDSET_CREDENTIALS="Update credentials"
+OPENTOOLS_CREDENTIALS_DESC="Please enter your order number and the order password, which can be found in the order confirmation mail you received after your purchase at <a href="https://www.open-tools.net/">open-tools.net</a>. If you do not enter a valid combination, the plugin will continue to work, but automatic updates will only be provided with a valid order number and password."
+OPENTOOLS_ORDERNUMBER="Order number:"
+OPENTOOLS_ORDERNUMBER_DESC="Please enter the order number of your purchase at open-tools.net to get access to automatic updates. If no valid order number and password is entered, the plugin will still work, but automatic updates will not be available."
+OPENTOOLS_ORDERPASS="Order password:"
+OPENTOOLS_ORDERPASS_DESC="Please enter the order password of your purchase at open-tools.net to get access to automatic updates. If no valid order number and password is entered, the plugin will still work, but automatic updates will not be available."
+OPENTOOLS_CHECK_CREDENTIALS="Check and save update credentials"
+OPENTOOLS_CHECK_CREDENTIALS_ERROR="Unable to check the download credentials. Please make sure that the plugin is enabled in your Joomla installation!"
+OPENTOOLS_XMLMANIFEST_ERROR="Unable to load the plugin manifest file (%s)"
+OPENTOOLS_UPDATESCRIPT_ERROR="Unable to load the update information from the update server (%s)"
+OPENTOOLS_COMMERCIAL_UPDATES_J25="Automatic updates of commercial Joomla extensions are not available in Joomla 2.5 (only in Joomla 3.x). Please check the software developer's homepage and manually install updates."
diff --git a/releases/plg_opentools_vm2_buyer_assign_group_v1.6.1.zip b/releases/plg_opentools_vm2_buyer_assign_group_v1.6.1.zip
new file mode 100644
index 0000000000000000000000000000000000000000..28af23e36df27a1fa350c002b2ebac9300158353
GIT binary patch
literal 27306
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

literal 0
HcmV?d00001

-- 
GitLab