1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-04-28 03:10:45 +00:00

Delete a Wiki

Conflicts:
	seahub/wiki/models.py
This commit is contained in:
ilearnit 2018-01-16 12:19:06 +08:00 committed by zhengxie
parent f5b00647c6
commit 999b17d0e9
4 changed files with 31 additions and 1 deletions

1
.gitignore vendored
View File

@ -39,3 +39,4 @@ deps
ghostdriver.log
seahub/thumbnail/thumb/*
.virtualenv
tags

View File

@ -73,3 +73,26 @@ class WikisView(APIView):
content_type=content_type)
return Response(wiki.to_dict())
class WikiView(APIView):
authentication_classes = (TokenAuthentication, SessionAuthentication)
permission_classes = (IsAuthenticated, )
throttle_classes = (UserRateThrottle, )
def delete(self, request, slug):
"""Delete a wiki.
"""
username = request.user.username
try:
owner = Wiki.objects.get(slug=slug).username
except Wiki.DoesNotExist:
error_msg = 'Wiki not found.'
return api_error(status.HTTP_404_NOT_FOUND, error_msg)
if owner != username:
error_msg = 'Permission denied.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
Wiki.objects.filter(slug=slug).delete()
return Response({"success": True})

View File

@ -51,7 +51,8 @@ from seahub.api2.endpoints.notifications import NotificationsView, NotificationV
from seahub.api2.endpoints.user_enabled_modules import UserEnabledModulesView
from seahub.api2.endpoints.repo_file_uploaded_bytes import RepoFileUploadedBytesView
from seahub.api2.endpoints.user_avatar import UserAvatarView
from seahub.api2.endpoints.revision_tag import TaggedItemsView,TagNamesView
from seahub.api2.endpoints.wikis import WikisView, WikiView
from seahub.api2.endpoints.revision_tag import TaggedItemsView, TagNamesView
from seahub.api2.endpoints.user import User
# Admin
@ -280,6 +281,10 @@ urlpatterns = patterns(
## user::avatar
url(r'^api/v2.1/user-avatar/$', UserAvatarView.as_view(), name='api-v2.1-user-avatar'),
## user::wiki
url(r'^api/v2.1/wikis/$', WikisView.as_view(), name='api-v2.1-wikis'),
url(r'^api/v2.1/wikis/(?P<slug>[^/]+)/$', WikiView.as_view(), name='api-v2.1-wikis'),
## admin::sysinfo
url(r'^api/v2.1/admin/sysinfo/$', SysInfo.as_view(), name='api-v2.1-sysinfo'),

View File

@ -10,6 +10,7 @@ from seahub.utils import get_service_url
from seahub.utils.timeutils import (timestamp_to_isoformat_timestr,
datetime_to_isoformat_timestr)
class WikiDoesNotExist(Exception):
pass