diff options
| -rw-r--r-- | ishtar_common/fixtures/initial_data.json | 2 | ||||
| -rw-r--r-- | ishtar_common/models.py | 15 | ||||
| -rw-r--r-- | ishtar_common/views.py | 2 | 
3 files changed, 14 insertions, 5 deletions
| diff --git a/ishtar_common/fixtures/initial_data.json b/ishtar_common/fixtures/initial_data.json index c4d235a3c..dbed23faa 100644 --- a/ishtar_common/fixtures/initial_data.json +++ b/ishtar_common/fixtures/initial_data.json @@ -146,7 +146,7 @@     "comment": "Un acc\u00e8s limit\u00e9 \u00e0 la base, uniquement en lecture. Apr\u00e8s enregistrement.",      "available": true,      "txt_idx": "public_access",  -   "label": "Acc\u00e8s publique" +   "label": "Acc\u00e8s public"    }   },    { 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 diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 9b06276f8..eecd1ebd4 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -92,6 +92,8 @@ class Wizard(NamedUrlWizardView):                  cond = condition(self)              if not cond:                  return False +            if not hasattr(self.request.user, 'ishtaruser'): +                return False              person_type = self.request.user.ishtaruser.person.person_type              if person_type.txt_idx == 'administrator':                  return True | 
