def list(self, filter, sort, page, page_size, user):
if not user.permissions & Permissions.ADMIN:
if not user.uid:
raise exceptions.Unauthorized()
query = functools.reduce(operator.or_, [
Q('data.permissions.*', 'and', Permissions.READ),
Q('data.permissions.{0.type}-*'.format(user), 'and', Permissions.READ),
Q('data.permissions.{0.type}-{0.provider}-*'.format(user), 'and', Permissions.READ),
Q('data.permissions.{0.type}-{0.provider}-{0.id}'.format(user), 'and', Permissions.READ),
])
if filter:
filter &= query
else:
filter = query
return super().list(filter, sort, page, page_size, user)
评论列表
文章目录