Esempio n. 1
0
 def delete(self, *arg, **kw):
     from middleware import get_current_user
     user = get_current_user()
     if user is not None:
         self.last_user_id = user.id
     cls.save(self)
     return old_delete(self, *arg, **kw)
Esempio n. 2
0
def post_handler(sender, **kwargs):
    user = get_current_user()
    item = kwargs.get('instance')

    if getattr(item, '_register_owner', None) and user:
        try:
            p = Possession(item=item, owner=user)
            p.save()
        except:
            pass
Esempio n. 3
0
 def decorated(*args, **kwargs):
     key = key_func(*args, **kwargs)
     user = get_current_user()
     key = key + '_staff' + ('Y' if (user and user.is_staff) else 'N')
     cached = cache.get(key, not_found)
     if cached is not not_found:
         return cached
     ret = f(*args, **kwargs)
     cache.set(key, ret)
     return ret
Esempio n. 4
0
def pre_handler(sender, **kwargs):
    user = get_current_user()
    item = kwargs.get('instance')

    if sender in FORBBIDEN_MODELS:
        return None

    if not user or not user.is_active:
        return None

    if getattr(item, 'id', None):
        return None

    if hasattr(item, 'owner_id'):
        item.owner = user
    else:
        item._register_owner = True
 def get_queryset(self):
     """
     Filter the default queryset by the tenant ID found in the local thread. It requires
     'middleware.GlobalRequestMiddleware' to be activated in settings.py
     """
     qs = super(TenantFilterManager, self).get_queryset()
     user = get_current_user()
     if user and user.is_authenticated():
         tenant_user_obj = getattr(
             user,
             TENANT_FILTER['TENANT_USER_MODEL'].split('.')[-1].lower())
         tenant_obj = getattr(
             tenant_user_obj,
             TENANT_FILTER['TENANT_MODEL'].split('.')[-1].lower())
         filter_dict = {TENANT_FILTER['TENANT_FK_NAME']: tenant_obj.pk}
         qs = qs.filter(**filter_dict)
     return qs
Esempio n. 6
0
 def get_query_set(self):
     current_user = get_current_user()
     if current_user.is_superuser or current_user.is_anonymous():
         return super(QueueManager, self).get_query_set()
     else:
         return super(QueueManager, self).get_query_set().filter(users__in=[current_user])