hide some info about media if user can not see media

This commit is contained in:
j 2017-07-25 14:58:54 +02:00
parent a3304a29f5
commit dacbdf45f8
2 changed files with 12 additions and 1 deletions

View File

@ -434,6 +434,17 @@ class File(models.Model):
for k in list(data):
if k not in keys:
del data[k]
can_see_media = False
if not user.is_anonymous():
can_see_media = user.profile.capability('canSeeMedia') or \
user.is_staff or \
self.item.user == user or \
self.item.groups.filter(id__in=user.groups.all()).count() > 0
if not can_see_media:
if 'instances' in data:
data['instances'] = []
if 'path' in data:
data['path'] = os.path.basename(data['path'])
return data
def all_paths(self):

View File

@ -641,7 +641,7 @@ def findMedia(request, data):
qs = qs.select_related()
keys = query['keys']
qs = qs[query['range'][0]:query['range'][1]]
response['data']['items'] = [f.json(keys) for f in qs]
response['data']['items'] = [f.json(keys, user=request.user) for f in qs]
else: # otherwise stats
files = query['qs']
response['data']['items'] = files.count()