diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-02-03 00:35:42 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-02-03 00:35:42 +0100 | 
| commit | f47600f32b5a34fbacde27c1b4ae6a2a20ecf0b9 (patch) | |
| tree | 3f451646dda5f4c8f00811e41902bf1840452cac | |
| parent | e5387edf43ceee421ce69a737585ef1ccf857249 (diff) | |
| download | Ishtar-f47600f32b5a34fbacde27c1b4ae6a2a20ecf0b9.tar.bz2 Ishtar-f47600f32b5a34fbacde27c1b4ae6a2a20ecf0b9.zip  | |
Correct administrator permissions (closes #162)
| -rw-r--r-- | ishtar/furnitures/backend.py | 1 | ||||
| -rw-r--r-- | ishtar/furnitures/forms.py | 2 | ||||
| -rw-r--r-- | ishtar/furnitures/models.py | 1 | ||||
| -rw-r--r-- | ishtar/furnitures/views.py | 22 | ||||
| -rw-r--r-- | ishtar/locale/fr/LC_MESSAGES/django.po | 6 | 
5 files changed, 24 insertions, 8 deletions
diff --git a/ishtar/furnitures/backend.py b/ishtar/furnitures/backend.py index ae77d8610..baeaac27e 100644 --- a/ishtar/furnitures/backend.py +++ b/ishtar/furnitures/backend.py @@ -41,7 +41,6 @@ class ObjectOwnPermBackend(object):          if not model:              # let it manage by the default backend              return False -          try:              ishtar_user = models.IshtarUser.objects.get(user_ptr=user_obj)          except ObjectDoesNotExist: diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 41fd58edd..fa1844d60 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -524,7 +524,7 @@ class AccountWizard(Wizard):                                })              t = loader.get_template('account_activation_email.txt')              msg = t.render(context) -            subject = u"[%(app_name)s] Account creation/modification" % { +            subject = _(u"[%(app_name)s] Account creation/modification") % {                                                             "app_name":app_name}              send_mail(subject, msg, settings.ADMINS[0][1],                        [dct['email']], fail_silently=True) diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py index c45f18c08..412245b41 100644 --- a/ishtar/furnitures/models.py +++ b/ishtar/furnitures/models.py @@ -76,7 +76,6 @@ class OwnPerms:          query = query & Q(pk=self.pk)          return cls.objects.filter(query).count() -      @classmethod      def has_item_of(cls, user):          """ diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py index ec61ad339..5848eea64 100644 --- a/ishtar/furnitures/views.py +++ b/ishtar/furnitures/views.py @@ -61,7 +61,8 @@ def check_permission(request, action_slug, obj_id=None):      return menu.items[action_slug].can_be_available(request.user)  def autocomplete_person(request, person_type=None): -    if not request.user.has_perm('furnitures.view_person'): +    if not request.user.has_perm('furnitures.view_person', models.Person) and \ +       not request.user.has_perm('furnitures.view_own_person', models.Person) :          return HttpResponse(mimetype='text/plain')      if not request.GET.get('term'):          return HttpResponse(mimetype='text/plain') @@ -106,6 +107,9 @@ def autocomplete_town(request):      return HttpResponse(data, mimetype='text/plain')  def autocomplete_file(request): +    if not request.user.has_perm('furnitures.view_file', models.File) and \ +       not request.user.has_perm('furnitures.view_own_file', models.File) : +        return HttpResponse(mimetype='text/plain')      if not request.GET.get('term'):          return HttpResponse(mimetype='text/plain')      q = request.GET.get('term') @@ -133,7 +137,7 @@ def get_item(model, func_name, default_name):          if not type:              type = 'json'          request_keys = dict([(field.name, -                              field.name + (hasattr(field, 'rel') and '__pk' or '')) +                          field.name + (hasattr(field, 'rel') and '__pk' or ''))                                      for field in model._meta.fields])          dct = {}          for k in request_keys: @@ -185,8 +189,9 @@ def get_item(model, func_name, default_name):          elif type == "csv":              response = HttpResponse(mimetype='text/csv')              n = datetime.datetime.now() -            filename = u'%s_%s.csv' % (default_name, n.strftime('%Y%m%d-%H%M%S')) -            response['Content-Disposition'] = 'attachment; filename=%s' % filename +            filename = u'%s_%s.csv' % (default_name, +                                       n.strftime('%Y%m%d-%H%M%S')) +            response['Content-Disposition'] = 'attachment; filename=%s'%filename              writer = csv.writer(response, **CSV_OPTIONS)              col_names = []              for field_name in model.TABLE_COLS: @@ -207,6 +212,10 @@ def get_item(model, func_name, default_name):  get_file = get_item(models.File, 'get_file', 'file')  def autocomplete_operation(request, non_closed=True): +    if not request.user.has_perm('furnitures.view_operation', models.Operation)\ +       and not request.user.has_perm('furnitures.view_own_operation', +                                                              models.Operation): +        return HttpResponse(mimetype='text/plain')      if not request.GET.get('term'):          return HttpResponse(mimetype='text/plain')      q = request.GET.get('term') @@ -230,6 +239,11 @@ def autocomplete_operation(request, non_closed=True):  get_operation = get_item(models.Operation, 'get_operation', 'operation')  def autocomplete_organization(request, orga_type=None): +    if not request.user.has_perm('furnitures.view_organization', +                                 models.Organization) and \ +       not request.user.has_perm('furnitures.view_own_organization', +                                 models.Organization): +        return HttpResponse(mimetype='text/plain')      if not request.GET.get('term'):          return HttpResponse(mimetype='text/plain')      q = request.GET.get('term') diff --git a/ishtar/locale/fr/LC_MESSAGES/django.po b/ishtar/locale/fr/LC_MESSAGES/django.po index 1a1de8905..13d3e58ba 100644 --- a/ishtar/locale/fr/LC_MESSAGES/django.po +++ b/ishtar/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid ""  msgstr ""  "Project-Id-Version: alpha\n"  "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 17:12+0100\n" +"POT-Creation-Date: 2011-02-02 17:27+0100\n"  "PO-Revision-Date: 2010-12-09\n"  "Last-Translator: Étienne Loks <etienne.loks at peacefrogs net>\n"  "Language-Team: \n" @@ -94,6 +94,10 @@ msgstr "Est responsable d'un dépôt ?"  msgid "New password"  msgstr "Nouveau mot de passe" +#: furnitures/forms.py:527 +msgid "[%(app_name)s] Account creation/modification" +msgstr "[%(app_name)s] Création - modification du compte" +  #: furnitures/forms.py:550 furnitures/forms.py:554  msgid "Account"  msgstr "Compte"  | 
