2bcab5d098
- moved all server related things into the folder `server`, so this configuration is parallel to the client. - All main "services" are now folders in the root directory - Added Dockerfiles to each service (currently server and client) - Added a docker compose configuration to start everything together. Currently there are heavy dependencies into https://github.com/OpenSlides/openslides-docker-compose - Resturctured the .gitignore. If someone needs something excluded, please add it to the right section. - Added initial build setup with Docker and docker-compose. - removed setup.py. We won't deliver OpenSlides via pip anymore.
28 lines
808 B
Python
28 lines
808 B
Python
from openslides.utils.rest_api import ModelViewSet
|
|
|
|
from ..utils.auth import has_perm
|
|
from .access_permissions import TopicAccessPermissions
|
|
from .models import Topic
|
|
|
|
|
|
class TopicViewSet(ModelViewSet):
|
|
"""
|
|
API endpoint for topics.
|
|
|
|
There are the following views: metadata, list, retrieve, create,
|
|
partial_update, update and destroy.
|
|
"""
|
|
|
|
access_permissions = TopicAccessPermissions()
|
|
queryset = Topic.objects.all()
|
|
|
|
def check_view_permissions(self):
|
|
"""
|
|
Returns True if the user has required permissions.
|
|
"""
|
|
if self.action in ("list", "retrieve"):
|
|
result = self.get_access_permissions().check_permissions(self.request.user)
|
|
else:
|
|
result = has_perm(self.request.user, "agenda.can_manage")
|
|
return result
|