url(r'^api/v2.1/groups/$', Groups.as_view(), name='api-v2.1-groups'), url(r'^api/v2.1/groups/(?P<group_id>\d+)/$', Group.as_view(), name='api-v2.1-group'), url(r'^api/v2.1/groups/(?P<group_id>\d+)/members/$', GroupMembers.as_view(), name='api-v2.1-group-members'), url(r'^api/v2.1/groups/(?P<group_id>\d+)/members/bulk/$', GroupMembersBulk.as_view(), name='api-v2.1-group-members-bulk'), url(r'^api/v2.1/groups/(?P<group_id>\d+)/members/(?P<email>[^/]+)/$', GroupMember.as_view(), name='api-v2.1-group-member'), url(r'^api/v2.1/share-links/$', ShareLinks.as_view(), name='api-v2.1-share-links'), url(r'^api/v2.1/share-link/(?P<token>[a-f0-9]{10})/$', ShareLink.as_view(), name='api-v2.1-share-link'), url(r'^api/v2.1/upload-links/$', UploadLinks.as_view(), name='api-v2.1-upload-links'), url(r'^api/v2.1/upload-link/(?P<token>[a-f0-9]{10})/$', UploadLink.as_view(), name='api-v2.1-upload-link'), url(r'^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/file/$', FileView.as_view(), name='api-v2.1-file-view'), url(r'^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/dirents/download-link/$', DirentsDownloadLinkView.as_view(), name='api-v2.1-dirents-download-link-view'), url(r'^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/dir/$', DirView.as_view(), name='api-v2.1-dir-view'), url(r'^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/set-password/$', RepoSetPassword.as_view(), name="api-v2.1-repo-set-password"), url(r'^api/v2.1/admin/sysinfo/$', SysInfo.as_view(), name='api-v2.1-sysinfo'), url(r'^api/v2.1/admin/devices/$', AdminDevices.as_view(), name='api-v2.1-admin-devices'), url(r'^api/v2.1/admin/device-errors/$', AdminDeviceErrors.as_view(), name='api-v2.1-admin-device-errors'), (r'^avatar/', include('seahub.avatar.urls')), (r'^notification/', include('seahub.notifications.urls')), (r'^contacts/', include('seahub.contacts.urls')), (r'^group/', include('seahub.group.urls')), (r'^message/', include('seahub.message.urls')), (r'^options/', include('seahub.options.urls')), (r'^profile/', include('seahub.profile.urls')), (r'^share/', include('seahub.share.urls')), (r'^help/', include('seahub.help.urls')), url(r'^captcha/', include('captcha.urls')), (r'^thumbnail/', include('seahub.thumbnail.urls')), url(r'^inst/', include('seahub.institutions.urls', app_name='institutions', namespace='institutions')), ### system admin ###
## admin::sysinfo url(r'^api/v2.1/admin/sysinfo/$', SysInfo.as_view(), name='api-v2.1-sysinfo'), ## admin::revision-tags url(r'^api/v2.1/admin/revision-tags/tagged-items/$', AdminTaggedItemsView.as_view(), name='api-v2.1-admin-revision-tags-tagged-items'), ## admin::devices url(r'^api/v2.1/admin/devices/$', AdminDevices.as_view(), name='api-v2.1-admin-devices'), url(r'^api/v2.1/admin/device-errors/$', AdminDeviceErrors.as_view(), name='api-v2.1-admin-device-errors'), ## admin::libraries url(r'^api/v2.1/admin/libraries/$', AdminLibraries.as_view(), name='api-v2.1-admin-libraries'), url(r'^api/v2.1/admin/libraries/(?P<repo_id>[-0-9a-f]{36})/$', AdminLibrary.as_view(), name='api-v2.1-admin-library'), url(r'^api/v2.1/admin/libraries/(?P<repo_id>[-0-9a-f]{36})/dirents/$', AdminLibraryDirents.as_view(), name='api-v2.1-admin-library-dirents'), url(r'^api/v2.1/admin/libraries/(?P<repo_id>[-0-9a-f]{36})/dirent/$', AdminLibraryDirent.as_view(), name='api-v2.1-admin-library-dirent'),
url(r'^api/v2.1/groups/$', Groups.as_view(), name='api-v2.1-groups'), url(r'^api/v2.1/groups/(?P<group_id>\d+)/$', Group.as_view(), name='api-v2.1-group'), url(r'^api/v2.1/groups/(?P<group_id>\d+)/members/$', GroupMembers.as_view(), name='api-v2.1-group-members'), url(r'^api/v2.1/groups/(?P<group_id>\d+)/members/bulk/$', GroupMembersBulk.as_view(), name='api-v2.1-group-members-bulk'), url(r'^api/v2.1/groups/(?P<group_id>\d+)/members/(?P<email>[^/]+)/$', GroupMember.as_view(), name='api-v2.1-group-member'), url(r'^api/v2.1/share-links/$', ShareLinks.as_view(), name='api-v2.1-share-links'), url(r'^api/v2.1/share-links/(?P<token>[a-f0-9]{10})/$', ShareLink.as_view(), name='api-v2.1-share-link'), url(r'^api/v2.1/upload-links/$', UploadLinks.as_view(), name='api-v2.1-upload-links'), url(r'^api/v2.1/upload-links/(?P<token>[a-f0-9]{10})/$', UploadLink.as_view(), name='api-v2.1-upload-link'), url(r'^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/file/$', FileView.as_view(), name='api-v2.1-file-view'), url(r'^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/dirents/download-link/$', DirentsDownloadLinkView.as_view(), name='api-v2.1-dirents-download-link-view'), url(r'^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/dir/$', DirView.as_view(), name='api-v2.1-dir-view'), url(r'^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/set-password/$', RepoSetPassword.as_view(), name="api-v2.1-repo-set-password"), url(r'^api/v2.1/admin/sysinfo/$', SysInfo.as_view(), name='api-v2.1-sysinfo'), url(r'^api/v2.1/admin/devices/$', AdminDevices.as_view(), name='api-v2.1-admin-devices'), url(r'^api/v2.1/admin/device-errors/$', AdminDeviceErrors.as_view(), name='api-v2.1-admin-device-errors'), (r'^avatar/', include('seahub.avatar.urls')), (r'^notification/', include('seahub.notifications.urls')), (r'^contacts/', include('seahub.contacts.urls')), (r'^group/', include('seahub.group.urls')), (r'^message/', include('seahub.message.urls')), (r'^options/', include('seahub.options.urls')), (r'^profile/', include('seahub.profile.urls')), (r'^share/', include('seahub.share.urls')), (r'^help/', include('seahub.help.urls')), url(r'^captcha/', include('captcha.urls')), (r'^thumbnail/', include('seahub.thumbnail.urls')), url(r'^inst/', include('seahub.institutions.urls', app_name='institutions', namespace='institutions')), ### system admin ###
r"^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/dirents/download-link/$", DirentsDownloadLinkView.as_view(), name="api-v2.1-dirents-download-link-view", ), url(r"^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/zip-task/$", ZipTaskView.as_view(), name="api-v2.1-zip-task"), url(r"^api/v2.1/share-link-zip-task/$", ShareLinkZipTaskView.as_view(), name="api-v2.1-share-link-zip-task"), url(r"^api/v2.1/query-zip-progress/$", QueryZipProgressView.as_view(), name="api-v2.1-query-zip-progress"), url(r"^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/dir/$", DirView.as_view(), name="api-v2.1-dir-view"), url( r"^api/v2.1/repos/(?P<repo_id>[-0-9a-f]{36})/set-password/$", RepoSetPassword.as_view(), name="api-v2.1-repo-set-password", ), url(r"^api/v2.1/admin/sysinfo/$", SysInfo.as_view(), name="api-v2.1-sysinfo"), url(r"^api/v2.1/admin/devices/$", AdminDevices.as_view(), name="api-v2.1-admin-devices"), url(r"^api/v2.1/admin/device-errors/$", AdminDeviceErrors.as_view(), name="api-v2.1-admin-device-errors"), url(r"^api/v2.1/invitations/$", InvitationsView.as_view()), url(r"^api/v2.1/invitations/(?P<token>[a-f0-9]{32})/$", InvitationView.as_view()), url(r"^api/v2.1/admin/libraries/$", AdminLibraries.as_view(), name="api-v2.1-admin-libraries"), url( r"^api/v2.1/admin/libraries/(?P<repo_id>[-0-9a-f]{36})/$", AdminLibrary.as_view(), name="api-v2.1-admin-library" ), url( r"^api/v2.1/admin/libraries/(?P<repo_id>[-0-9a-f]{36})/dirents/$", AdminLibraryDirents.as_view(), name="api-v2.1-admin-library-dirents", ), url(r"^api/v2.1/admin/groups/$", AdminGroups.as_view(), name="api-v2.1-admin-groups"), url(r"^api/v2.1/admin/groups/(?P<group_id>\d+)/$", AdminGroup.as_view(), name="api-v2.1-admin-group"), url( r"^api/v2.1/admin/libraries/(?P<repo_id>[-0-9a-f]{36})/dirent/$",