Commit 3edac263033e69917b8b957a07d93f2195b8167c

Authored by Sergio Oliveira
2 parents 34896a83 a121a094

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])
... ...