diff options
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 17 | 
1 files changed, 13 insertions, 4 deletions
| diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 1aa94836f..1a0d80ac3 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -254,7 +254,7 @@ class OwnPerms(object):                     action_own_name, request.session)                  and self.is_own(request.user.ishtaruser)) -    def is_own(self, user): +    def is_own(self, user, alt_query_own=None):          """          Check if the current object is owned by the user          """ @@ -264,7 +264,10 @@ class OwnPerms(object):              ishtaruser = user.ishtaruser          else:              return False -        query = self.get_query_owns(ishtaruser) +        if not alt_query_own: +            query = self.get_query_owns(ishtaruser) +        else: +            query = getattr(self, alt_query_own)(ishtaruser)          if not query:              return False          query &= Q(pk=self.pk) @@ -3293,6 +3296,7 @@ post_save.connect(post_save_userprofile, sender=UserProfile)  class IshtarUser(FullSearch): +    SLUG = "ishtaruser"      TABLE_COLS = ('username', 'person__name', 'person__surname',                    'person__email', 'person__person_types_list',                    'person__attached_to__name') @@ -3441,9 +3445,13 @@ class Basket(FullSearch):          verbose_name=_(u"Owner"))      available = models.BooleanField(_(u"Available"), default=True)      shared_with = models.ManyToManyField( -        IshtarUser, verbose_name=_(u"Shared with"), blank=True, +        IshtarUser, verbose_name=_(u"Shared (read) with"), blank=True,          related_name='shared_%(class)ss'      ) +    shared_write_with = models.ManyToManyField( +        IshtarUser, verbose_name=_(u"Shared (read/edit) with"), blank=True, +        related_name='shared_write_%(class)ss' +    )      TABLE_COLS = ['label', 'user'] @@ -3462,7 +3470,8 @@ class Basket(FullSearch):          if not request.user or not getattr(request.user, 'ishtaruser', None):              return Q(pk=None)          ishtaruser = request.user.ishtaruser -        return Q(user=ishtaruser) | Q(shared_with=ishtaruser) +        return Q(user=ishtaruser) | Q(shared_with=ishtaruser) | Q( +            shared_write_with=ishtaruser)      @property      def cached_label(self): | 
