# Copyright (c) 2012-2016 Seafile Ltd. from django.conf import settings from django.conf.urls import url, include # from django.views.generic.simple import direct_to_template from django.views.generic import TemplateView from seahub.views import * from seahub.views.sysadmin import * from seahub.views.ajax import * from seahub.views.sso import * from seahub.views.file import view_history_file, view_trash_file,\ view_snapshot_file, file_edit, view_shared_file, view_file_via_shared_dir,\ text_diff, view_raw_file, download_file, view_lib_file, \ file_access, view_lib_file_via_smart_link, view_media_file_via_share_link, \ view_media_file_via_public_wiki from seahub.views.repo import repo_history_view, view_shared_dir, \ view_shared_upload_link, view_lib_as_wiki from notifications.views import notification_list from seahub.views.wiki import personal_wiki, personal_wiki_pages, \ personal_wiki_create, personal_wiki_page_new, personal_wiki_page_edit, \ personal_wiki_page_delete, personal_wiki_use_lib from seahub.api2.endpoints.smart_link import SmartLink, SmartLinkToken from seahub.api2.endpoints.groups import Groups, Group from seahub.api2.endpoints.all_groups import AllGroups from seahub.api2.endpoints.departments import Departments from seahub.api2.endpoints.shareable_groups import ShareableGroups from seahub.api2.endpoints.group_libraries import GroupLibraries, GroupLibrary from seahub.api2.endpoints.group_owned_libraries import GroupOwnedLibraries, \ GroupOwnedLibrary, GroupOwnedLibraryUserFolderPermission, \ GroupOwnedLibraryGroupFolderPermission, GroupOwnedLibraryUserShare, \ GroupOwnedLibraryGroupShare, GroupOwnedLibraryUserShareInLibrary from seahub.api2.endpoints.address_book.groups import AddressBookGroupsSubGroups from seahub.api2.endpoints.address_book.members import AddressBookGroupsSearchMember from seahub.api2.endpoints.group_members import GroupMembers, GroupMembersBulk, GroupMember from seahub.api2.endpoints.search_group import SearchGroup from seahub.api2.endpoints.share_links import ShareLinks, ShareLink, \ ShareLinkOnlineOfficeLock, ShareLinkDirents from seahub.api2.endpoints.shared_folders import SharedFolders from seahub.api2.endpoints.shared_repos import SharedRepos, SharedRepo from seahub.api2.endpoints.upload_links import UploadLinks, UploadLink, \ UploadLinkUpload from seahub.api2.endpoints.repos_batch import ReposBatchView, \ ReposBatchCopyDirView, ReposBatchCreateDirView, \ ReposBatchCopyItemView, ReposBatchMoveItemView from seahub.api2.endpoints.repos import RepoView, ReposView from seahub.api2.endpoints.file import FileView from seahub.api2.endpoints.file_history import FileHistoryView, NewFileHistoryView from seahub.api2.endpoints.dir import DirView, DirDetailView from seahub.api2.endpoints.file_tag import FileTagView from seahub.api2.endpoints.file_tag import FileTagsView from seahub.api2.endpoints.repo_trash import RepoTrash from seahub.api2.endpoints.deleted_repos import DeletedRepos from seahub.api2.endpoints.repo_history import RepoHistory from seahub.api2.endpoints.repo_set_password import RepoSetPassword from seahub.api2.endpoints.repo_send_new_password import RepoSendNewPassword from seahub.api2.endpoints.zip_task import ZipTaskView from seahub.api2.endpoints.share_link_zip_task import ShareLinkZipTaskView from seahub.api2.endpoints.query_zip_progress import QueryZipProgressView from seahub.api2.endpoints.cancel_zip_task import CancelZipTaskView from seahub.api2.endpoints.copy_move_task import CopyMoveTaskView from seahub.api2.endpoints.query_copy_move_progress import QueryCopyMoveProgressView from seahub.api2.endpoints.move_folder_merge import MoveFolderMergeView from seahub.api2.endpoints.invitations import InvitationsView, InvitationsBatchView from seahub.api2.endpoints.invitation import InvitationView from seahub.api2.endpoints.notifications import NotificationsView, NotificationView 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.wikis import WikisView, WikiView from seahub.api2.endpoints.drafts import DraftsView, DraftView from seahub.api2.endpoints.draft_reviewer import DraftReviewerView from seahub.api2.endpoints.repo_draft_info import RepoDraftInfo, RepoDraftCounts from seahub.api2.endpoints.activities import ActivitiesView from seahub.api2.endpoints.wiki_pages import WikiPageView, WikiPagesView, WikiPagesDirView, WikiPageContentView from seahub.api2.endpoints.revision_tag import TaggedItemsView, TagNamesView from seahub.api2.endpoints.user import User from seahub.api2.endpoints.repo_tags import RepoTagsView, RepoTagView from seahub.api2.endpoints.file_tag import RepoFileTagsView, RepoFileTagView from seahub.api2.endpoints.tag_filter_file import TaggedFilesView from seahub.api2.endpoints.related_files import RelatedFilesView, RelatedFileView from seahub.api2.endpoints.webdav_secret import WebdavSecretView from seahub.api2.endpoints.starred_items import StarredItems from seahub.api2.endpoints.markdown_lint import MarkdownLintView # Admin from seahub.api2.endpoints.admin.revision_tag import AdminTaggedItemsView from seahub.api2.endpoints.admin.login_logs import LoginLogs, AdminLoginLogs from seahub.api2.endpoints.admin.file_audit import FileAudit from seahub.api2.endpoints.admin.file_update import FileUpdate from seahub.api2.endpoints.admin.perm_audit import PermAudit from seahub.api2.endpoints.admin.sysinfo import SysInfo from seahub.api2.endpoints.admin.statistics import ( FileOperationsView, TotalStorageView, ActiveUsersView, SystemTrafficView, \ SystemUserTrafficExcelView, SystemUserStorageExcelView ) from seahub.api2.endpoints.admin.devices import AdminDevices from seahub.api2.endpoints.admin.device_errors import AdminDeviceErrors from seahub.api2.endpoints.admin.users import AdminUsers, AdminUser from seahub.api2.endpoints.admin.device_trusted_ip import AdminDeviceTrustedIP from seahub.api2.endpoints.admin.libraries import AdminLibraries, AdminLibrary from seahub.api2.endpoints.admin.library_dirents import AdminLibraryDirents, AdminLibraryDirent from seahub.api2.endpoints.admin.system_library import AdminSystemLibrary, \ AdminSystemLibraryUploadLink from seahub.api2.endpoints.admin.default_library import AdminDefaultLibrary from seahub.api2.endpoints.admin.trash_libraries import AdminTrashLibraries, AdminTrashLibrary from seahub.api2.endpoints.admin.groups import AdminGroups, AdminGroup from seahub.api2.endpoints.admin.group_libraries import AdminGroupLibraries, AdminGroupLibrary from seahub.api2.endpoints.admin.group_members import AdminGroupMembers, AdminGroupMember from seahub.api2.endpoints.admin.shares import AdminShares from seahub.api2.endpoints.admin.share_links import AdminShareLink, \ AdminShareLinkDownload, AdminShareLinkCheckPassword, \ AdminShareLinkDirents from seahub.api2.endpoints.admin.upload_links import AdminUploadLink, \ AdminUploadLinkUpload, AdminUploadLinkCheckPassword from seahub.api2.endpoints.admin.users_batch import AdminUsersBatch from seahub.api2.endpoints.admin.operation_logs import AdminOperationLogs from seahub.api2.endpoints.admin.organizations import AdminOrganizations, AdminOrganization from seahub.api2.endpoints.admin.org_users import AdminOrgUsers, AdminOrgUser from seahub.api2.endpoints.admin.org_stats import AdminOrgStatsTraffic from seahub.api2.endpoints.admin.logo import AdminLogo from seahub.api2.endpoints.admin.favicon import AdminFavicon from seahub.api2.endpoints.admin.license import AdminLicense from seahub.api2.endpoints.admin.invitations import InvitationsView as AdminInvitationsView from seahub.api2.endpoints.admin.library_history import AdminLibraryHistoryLimit from seahub.api2.endpoints.admin.login_bg_image import AdminLoginBgImage from seahub.api2.endpoints.admin.admin_role import AdminAdminRole from seahub.api2.endpoints.admin.address_book.groups import AdminAddressBookGroups, \ AdminAddressBookGroup from seahub.api2.endpoints.admin.group_owned_libraries import AdminGroupOwnedLibraries, \ AdminGroupOwnedLibrary from seahub.api2.endpoints.admin.user_activities import UserActivitiesView from seahub.api2.endpoints.admin.file_scan_records import AdminFileScanRecords from seahub.api2.endpoints.admin.notifications import AdminNotificationsView from seahub.api2.endpoints.admin.work_weixin import AdminWorkWeixinDepartments, \ AdminWorkWeixinDepartmentMembers, AdminWorkWeixinUsersBatch urlpatterns = [ url(r'^accounts/', include('seahub.base.registration_urls')), url(r'^sso/$', sso, name='sso'), url(r'^shib-login/', shib_login, name="shib_login"), url(r'^oauth/', include('seahub.oauth.urls')), url(r'^social/', include('social_django.urls', namespace='social')), url(r'^$', libraries, name='libraries'), #url(r'^home/$', direct_to_template, { 'template': 'home.html' } ), url(r'^robots\.txt$', TemplateView.as_view(template_name='robots.txt', content_type='text/plain')), url(r'^home/wiki/$', personal_wiki, name='personal_wiki'), url(r'^home/wiki/(?P[^/]+)$', personal_wiki, name='personal_wiki'), url(r'^home/wiki_pages/$', personal_wiki_pages, name='personal_wiki_pages'), url(r'^home/wiki_create/$', personal_wiki_create, name='personal_wiki_create'), url(r'^home/wiki_use_lib/$', personal_wiki_use_lib, name='personal_wiki_use_lib'), url(r'^home/wiki_page_new/$', personal_wiki_page_new, name='personal_wiki_page_new'), url(r'^home/wiki_page_edit/(?P[^/]+)$', personal_wiki_page_edit, name='personal_wiki_page_edit'), url(r'^home/wiki_page_delete/(?P[^/]+)$', personal_wiki_page_delete, name='personal_wiki_page_delete'), # revert repo url(r'^repo/history/revert/(?P[-0-9a-f]{36})/$', repo_revert_history, name='repo_revert_history'), url(r'^repo/upload_check/$', validate_filename), url(r'^repo/download_dir/(?P[-0-9a-f]{36})/$', repo_download_dir, name='repo_download_dir'), url(r'^repo/file_revisions/(?P[-0-9a-f]{36})/$', file_revisions, name='file_revisions'), url(r'^repo/file-access/(?P[-0-9a-f]{36})/$', file_access, name='file_access'), url(r'^repo/text_diff/(?P[-0-9a-f]{36})/$', text_diff, name='text_diff'), url(r'^repo/history/(?P[-0-9a-f]{36})/$', repo_history, name='repo_history'), url(r'^repo/history/view/(?P[-0-9a-f]{36})/$', repo_history_view, name='repo_history_view'), url(r'^repo/recycle/(?P[-0-9a-f]{36})/$', repo_recycle_view, name='repo_recycle_view'), url(r'^dir/recycle/(?P[-0-9a-f]{36})/$', dir_recycle_view, name='dir_recycle_view'), url(r'^repo/(?P[-0-9a-f]{36})/trash/$', repo_folder_trash, name="repo_folder_trash"), url(r'^repo/(?P[-0-9a-f]{36})/raw/(?P.*)$', view_raw_file, name="view_raw_file"), url(r'^repo/(?P[-0-9a-f]{36})/history/files/$', view_history_file, name="view_history_file"), url(r'^repo/(?P[-0-9a-f]{36})/trash/files/$', view_trash_file, name="view_trash_file"), url(r'^repo/(?P[-0-9a-f]{36})/snapshot/files/$', view_snapshot_file, name="view_snapshot_file"), url(r'^repo/(?P[-0-9a-f]{36})/file/edit/$', file_edit, name='file_edit'), url(r'^repo/(?P[-0-9a-f]{36})/(?P[0-9a-f]{40})/download/$', download_file, name='download_file'), ### lib (replace the old `repo` urls) ### # url(r'^lib/(?P[-0-9a-f]{36})/dir/(?P.*)$', view_lib_dir, name='view_lib_dir'), url(r'^lib/(?P[-0-9a-f]{36})/file(?P.*)$', view_lib_file, name='view_lib_file'), url(r'^wiki/lib/(?P[-0-9a-f]{36})/(?P.*)$', view_lib_as_wiki, name='view_lib_as_wiki'), url(r'^smart-link/(?P[-0-9a-f]{36})/(?P.*)$', view_lib_file_via_smart_link, name="view_lib_file_via_smart_link"), url(r'^#common/lib/(?P[-0-9a-f]{36})/(?P.*)$', fake_view, name='view_common_lib_dir'), url(r'^#group/(?P\d+)/$', fake_view, name='group_info'), url(r'^#group/(?P\d+)/members/$', fake_view, name='group_members'), url(r'^#group/(?P\d+)/discussions/$', fake_view, name='group_discuss'), url(r'^#groups/', fake_view, name='group_list'), url(r'^#group/(?P\d+)/settings/$', fake_view, name='group_manage'), ### share/upload link ### url(r'^f/(?P[a-f0-9]+)/$', view_shared_file, name='view_shared_file'), url(r'^d/(?P[a-f0-9]+)/$', view_shared_dir, name='view_shared_dir'), url(r'^d/(?P[a-f0-9]+)/files/$', view_file_via_shared_dir, name='view_file_via_shared_dir'), url(r'^u/d/(?P[a-f0-9]+)/$', view_shared_upload_link, name='view_shared_upload_link'), url(r'^view-image-via-share-link/$', view_media_file_via_share_link, name='view_media_file_via_share_link'), ### Misc ### url(r'^image-view/(?P.*)$', image_view, name='image_view'), url(r'^custom-css/$', custom_css_view, name='custom_css'), url(r'^i18n/$', i18n, name='i18n'), url(r'^convert_cmmt_desc_link/$', convert_cmmt_desc_link, name='convert_cmmt_desc_link'), url(r'^modules/toggle/$', toggle_modules, name="toggle_modules"), url(r'^download_client_program/$', TemplateView.as_view(template_name="download.html"), name="download_client"), url(r'^choose_register/$', choose_register, name="choose_register"), ### React ### url(r'^dashboard/$', react_fake_view, name="dashboard"), url(r'^starred/$', react_fake_view, name="starred"), url(r'^linked-devices/$', react_fake_view, name="linked_devices"), url(r'^share-admin-libs/$', react_fake_view, name="share_admin_libs"), url(r'^share-admin-folders/$', react_fake_view, name="share_admin_folders"), url(r'^share-admin-share-links/$', react_fake_view, name="share_admin_share_links"), url(r'^share-admin-upload-links/$', react_fake_view, name="share_admin_upload_links"), url(r'^shared-libs/$', react_fake_view, name="shared_libs"), url(r'^my-libs/$', react_fake_view, name="my_libs"), url(r'^groups/$', react_fake_view, name="groups"), url(r'^group/(?P\d+)/$', react_fake_view, name="group"), url(r'^library/(?P[-0-9a-f]{36})/(?P[^/]+)/(?P.*)$', react_fake_view, name="lib_view"), url(r'^my-libs/deleted/$', react_fake_view, name="my_libs_deleted"), url(r'^org/$', react_fake_view, name="org"), url(r'^invitations/$', react_fake_view, name="invitations"), ### Ajax ### url(r'^ajax/repo/(?P[-0-9a-f]{36})/dirents/$', get_dirents, name="get_dirents"), url(r'^ajax/repo/(?P[-0-9a-f]{36})/dirents/delete/$', delete_dirents, name='delete_dirents'), url(r'^ajax/repo/(?P[-0-9a-f]{36})/dirents/move/$', mv_dirents, name='mv_dirents'), url(r'^ajax/repo/(?P[-0-9a-f]{36})/dirents/copy/$', cp_dirents, name='cp_dirents'), url(r'^ajax/repo/(?P[-0-9a-f]{36})/dir/rename/$', rename_dirent, name='rename_dir'), url(r'^ajax/repo/(?P[-0-9a-f]{36})/dir/delete/$', delete_dirent, name='delete_dir'), url(r'^ajax/repo/(?P[-0-9a-f]{36})/file/rename/$', rename_dirent, name='rename_file'), url(r'^ajax/repo/(?P[-0-9a-f]{36})/file/delete/$', delete_dirent, name='delete_file'), url(r'^ajax/repo/(?P[-0-9a-f]{36})/current_commit/$', get_current_commit, name='get_current_commit'), url(r'^ajax/repo/(?P[-0-9a-f]{36})/history/changes/$', repo_history_changes, name='repo_history_changes'), url(r'^ajax/repo/(?P[-0-9a-f]{36})/encrypted_file/(?P[0-9a-f]{40})/download/$', download_enc_file, name='download_enc_file'), url(r'^ajax/u/d/(?P[-0-9a-f]+)/upload/$', get_file_upload_url_ul, name='get_file_upload_url_ul'), url(r'^ajax/group/(?P\d+)/repos/$', get_unenc_group_repos, name='get_group_repos'), url(r'^ajax/group/(?P\d+)/members/import/$', ajax_group_members_import, name='ajax_group_members_import'), url(r'^ajax/unenc-rw-repos/$', unenc_rw_repos, name='unenc_rw_repos'), url(r'^ajax/upload-file-done/$', upload_file_done, name='upload_file_done'), url(r'^ajax/get_popup_notices/$', get_popup_notices, name='get_popup_notices'), url(r'^ajax/space_and_traffic/$', space_and_traffic, name='space_and_traffic'), url(r'^ajax/(?P[-0-9a-f]{36})/repo-dir/recycle/more/$', ajax_repo_dir_recycle_more, name='ajax_repo_dir_recycle_more'), url(r'^_templates/(?P