From 448710736aa1782c435ecb4508719f54029e0953 Mon Sep 17 00:00:00 2001
From: Reinhold Kainhofer <reinhold@kainhofer.com>
Date: Wed, 7 May 2014 00:55:37 +0200
Subject: [PATCH] Version 1.1: Correctly handle VM shopper groups (fix two
 caching issues, one in the plugin and one with the user model)

---
 Makefile                                         |   2 +-
 buyer_assign_group.php                           |   9 +++++++++
 buyer_assign_group.xml                           |   6 +++---
 ...plg_opentools_vm2_buyer_assign_group_v1.1.zip | Bin 0 -> 8620 bytes
 4 files changed, 13 insertions(+), 4 deletions(-)
 create mode 100644 releases/plg_opentools_vm2_buyer_assign_group_v1.1.zip

diff --git a/Makefile b/Makefile
index 3cf57eb..b31f700 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 BASE=buyer_assign_group
 PLUGINTYPE=vmcustom
 ZIPBASE=opentools_vm2
-VERSION=1.0
+VERSION=1.1
 
 PLUGINFILES=$(BASE).php $(BASE).script.php $(BASE).xml index.html
 
diff --git a/buyer_assign_group.php b/buyer_assign_group.php
index 6bdf051..73d900c 100644
--- a/buyer_assign_group.php
+++ b/buyer_assign_group.php
@@ -205,6 +205,10 @@ class plgVmCustomBuyer_Assign_Group extends vmCustomPlugin {
 					if ($modified) {
 						$this->setModifiedFlag ($e, $modified);
 					}
+					$userModel->_data = null;
+					$userModel->setId($uid);
+					$users[$uid] = $userModel->getUser();
+					$users[$uid]->shopper_groups = (array)$users[$uid]->shopper_groups;
 				} elseif ($unpurchased && $e['modified']) {
 					// Undo the addition/removal when a product purchase is cancelled
 					if ($e['group_type']==0) { // Joomla User Group
@@ -223,6 +227,11 @@ class plgVmCustomBuyer_Assign_Group extends vmCustomPlugin {
 					// Clear the modified flag in the database
 					$this->setModifiedFlag ($e, 0);
 				}
+				// Reload the user data, because shopper groups are NOT automatically updated in the data structure in memory!
+				$userModel->_data = null;
+				$userModel->setId($uid);
+				$users[$uid] = $userModel->getUser();
+				$users[$uid]->shopper_groups = (array)$users[$uid]->shopper_groups;
 			}
 			catch (Exception $ex) {
 				JFactory::getApplication()->enqueueMessage("ERROR:  <pre>".$ex->getMessage()."</pre>", 'info');
diff --git a/buyer_assign_group.xml b/buyer_assign_group.xml
index 17f65a2..ca588a9 100644
--- a/buyer_assign_group.xml
+++ b/buyer_assign_group.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <install version="1.5" type="plugin" group="vmcustom" method="upgrade">
     <name>VMCUSTOM_BUYER_GROUP</name>
-    <creationDate>2013-09-28</creationDate>
+    <creationDate>2014-04-07</creationDate>
     <author>Reinhold Kainhofer</author>
     <authorUrl>http://www.open-tools.net/</authorUrl>
-    <copyright>Copyright (C) 2013 Reinhold Kainhofer. All rights reserved.</copyright>
+    <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.0</version>
+    <version>1.1</version>
     <description>VMCUSTOM_BUYER_GROUP_DESC</description>
     <files>
         <filename plugin="buyer_assign_group">buyer_assign_group.php</filename>
diff --git a/releases/plg_opentools_vm2_buyer_assign_group_v1.1.zip b/releases/plg_opentools_vm2_buyer_assign_group_v1.1.zip
new file mode 100644
index 0000000000000000000000000000000000000000..c687271d8cb4332133b3b336e9c8b8e116a6d197
GIT binary patch
literal 8620
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
I?2-lX0HlG~bN~PV

literal 0
HcmV?d00001

-- 
GitLab