diff options
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 15 | 
1 files changed, 11 insertions, 4 deletions
| diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 747643718..56c381e94 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -41,11 +41,18 @@ from simple_history.models import HistoricalRecords as BaseHistoricalRecords  JOINT = u" - "  def post_save_user(sender, **kwargs): -    if not kwargs['created']: -        return      user = kwargs['instance'] -    if not IshtarUser.objects.filter(username=user.username).count(): -        IshtarUser.create_from_user(user) +    ishtaruser = None +    q = IshtarUser.objects.filter(username=user.username) +    if not q.count(): +        ishtaruser = IshtarUser.create_from_user(user) +    else: +        ishtaruser = q.all()[0] +    if ishtaruser.is_superuser \ +       and ishtaruser.person.person_type.txt_idx != 'administrator': +        ishtaruser.person.person_type = PersonType.objects.get( +                                                    txt_idx='administrator') +        ishtaruser.person.save()  post_save.connect(post_save_user, sender=User)  # HistoricalRecords enhancement: don't save identical versions | 
