From 7b02c567bfb0703c4d0ac1e3fb385b7388c0bc32 Mon Sep 17 00:00:00 2001
From: Sergios Aftsidis <safts@noc.grnet.gr>
Date: Mon, 17 Oct 2016 17:27:09 +0300
Subject: [PATCH] Fix user accounts assigned with wrong peers

---
 accounts/views.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/accounts/views.py b/accounts/views.py
index 35c0e280..ada4eb7c 100644
--- a/accounts/views.py
+++ b/accounts/views.py
@@ -85,10 +85,19 @@ def activate(request, activation_key):
 
     if request.method == "POST":
         request_data = request.POST.copy()
-        try:
+	try:
             user = User.objects.get(pk=request_data['user'])
             up = user.get_profile()
-            for peer in request_data['peers']:
+
+            # use getlist to get the list of peers (might be multiple)
+            profile_peers = request.POST.getlist('peers')
+
+            # remove already assigned peers, as these are selected by
+            # the user, no admin has yet verified those. They will be
+            # replaced by the admin's selection.
+            up.peers.clear()
+
+            for peer in profile_peers:
                 up.peers.add(Peer.objects.get(pk=peer))
             up.save()
 
-- 
GitLab