Commit 3edac263033e69917b8b957a07d93f2195b8167c
Exists in
master
and in
39 other branches
Merge branch 'master' of github.com:TracyWebTech/colab
Showing
1 changed file
with
30 additions
and
1 deletions
Show diff stats
src/proxy/models.py
... | ... | @@ -4,7 +4,9 @@ import os |
4 | 4 | import urllib2 |
5 | 5 | |
6 | 6 | from django.conf import settings |
7 | -from django.db import models | |
7 | +from django.db import models, connections | |
8 | +from django.db.models.signals import post_save | |
9 | +from django.dispatch import receiver | |
8 | 10 | |
9 | 11 | from accounts.models import User |
10 | 12 | from hitcounter.models import HitCounterModelMixin |
... | ... | @@ -148,3 +150,30 @@ class TicketCollabCount(models.Model): |
148 | 150 | class Meta: |
149 | 151 | managed = False |
150 | 152 | db_table = 'ticket_collab_count_view' |
153 | + | |
154 | + | |
155 | +@receiver(post_save, sender=User) | |
156 | +def change_session_attribute_email(sender, instance, **kwargs): | |
157 | + cursor = connections['trac'].cursor() | |
158 | + | |
159 | + cursor.execute(("UPDATE session_attribute SET value=%s " | |
160 | + "WHERE name='email' AND sid=%s"), | |
161 | + [instance.email, instance.username]) | |
162 | + cursor.execute(("UPDATE session_attribute SET value=%s " | |
163 | + "WHERE name='name' AND sid=%s"), | |
164 | + [instance.get_full_name(), instance.username]) | |
165 | + | |
166 | + cursor.execute(("INSERT INTO session_attribute " | |
167 | + "(sid, authenticated, name, value) " | |
168 | + "SELECT %s, '1', 'email', %s WHERE NOT EXISTS " | |
169 | + "(SELECT 1 FROM session_attribute WHERE sid=%s " | |
170 | + "AND name='email')"), | |
171 | + [instance.username, instance.email, instance.username]) | |
172 | + | |
173 | + cursor.execute(("INSERT INTO session_attribute " | |
174 | + "(sid, authenticated, name, value) " | |
175 | + "SELECT %s, '1', 'name', %s WHERE NOT EXISTS " | |
176 | + "(SELECT 1 FROM session_attribute WHERE sid=%s " | |
177 | + "AND name='name')"), | |
178 | + [instance.username, instance.get_full_name(), | |
179 | + instance.username]) | ... | ... |