示例#1
0
import apps.common.mixins
from apps.common.permissions import SuperuserRequiredPermission
from apps.common.file_storage import get_filebrowser_site
from apps.common.models import Action, AppVar, ReviewStatusGroup, ReviewStatus, MenuGroup, MenuItem
from apps.common.schemas import CustomAutoSchema, ObjectResponseSchema
from apps.users.api.v1 import UserSerializer

__author__ = "ContraxSuite, LLC; LexPredict, LLC"
__copyright__ = "Copyright 2015-2020, ContraxSuite, LLC"
__license__ = "https://github.com/LexPredict/lexpredict-contraxsuite/blob/1.8.0/LICENSE"
__version__ = "1.8.0"
__maintainer__ = "LexPredict, LLC"
__email__ = "*****@*****.**"

# WARN: Webdav may have long call listdir to bit directories, set simple_listdir=True in this case
file_storage = get_filebrowser_site(url_as_download=False).storage

python_magic = magic.Magic(mime=True)

# --------------------------------------------------------
# AppVar Views
# --------------------------------------------------------


class ReadOnlyNonAdminPermission(IsAuthenticated, DjangoModelPermissions):
    def has_permission(self, request, view):
        if request.method == 'GET':
            return True
        return super().has_permission(request,
                                      view)  # should work for superusers only
    url(r'^{0}about/$'.format(settings.BASE_URL), TemplateView.as_view(template_name='about.html'), name='about'),
    # Django Admin, use {% url 'admin:index' %}
    url(r'^{0}admin/'.format(settings.BASE_URL), admin.site.urls),
    # User management
    # url(r'^accounts/', include('apps.users.urls', namespace='users')),
    url(r'^{0}accounts/'.format(settings.BASE_URL), include('allauth_2fa.urls')),
    url(r'^{0}accounts/'.format(settings.BASE_URL), include('allauth.urls')),
    # Apps
    # url(r'^', include('apps.common.urls', namespace='common')),
    # url(r'^document/', include('apps.document.urls', namespace='document')),
    # url(r'^analyze/', include('apps.analyze.urls', namespace='analyze')),
    # url(r'^extract/', include('apps.extract.urls', namespace='extract')),
    # url(r'^project/', include('apps.project.urls', namespace='project')),
    # url(r'^task/', include('apps.task.urls', namespace='task')),
    # Custom
    url(r'^{0}admin/filebrowser/'.format(settings.BASE_URL), get_filebrowser_site().urls),
    url(r'^{0}api-auth/'.format(settings.BASE_URL), include('rest_framework.urls')),
    url(r'^rest-auth/', include('rest_auth.urls')),
    url(r'^rest-auth/registration/', include('rest_auth.registration.urls')),
    url(r"^accounts/confirm-email/(?P<key>[-:\w]+)/$", allauth_confirm_email_view, name="allauth_account_confirm_email"),

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + \
    static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

# autodiscover urls from custom apps
namespaces = {getattr(i, 'namespace', None) for i in urlpatterns}
custom_apps = [
    i.replace('apps.', '') for i in settings.INSTALLED_APPS
    if i.startswith('apps.')
]