From fbaab4efaf988873531fe7685d92d4aa1330e319 Mon Sep 17 00:00:00 2001 From: Jens Langhammer Date: Fri, 16 Nov 2018 09:10:35 +0100 Subject: [PATCH] Many broken things --- passbook/__init__.py | 2 +- passbook/admin/api/__init__.py | 0 passbook/admin/api/v1/__init__.py | 0 passbook/admin/api/v1/routers.py | 8 + passbook/admin/api/v1/source.py | 26 + passbook/admin/api/v1/utils.py | 17 + passbook/admin/mixins.py | 9 + passbook/admin/requirements.txt | 1 + .../administration/application/list.html | 647 ++++++++++++++++++ .../admin/templates/administration/base.html | 11 +- .../admin/templates/administration/list.html | 5 - .../templates/administration/source/list.html | 18 + passbook/admin/templates/generic/create.html | 7 + passbook/admin/templates/generic/form.html | 16 + passbook/admin/templates/generic/list.html | 29 + passbook/admin/templates/generic/update.html | 7 + passbook/admin/urls.py | 18 +- passbook/admin/views/applications.py | 8 +- passbook/admin/views/overview.py | 3 +- passbook/admin/views/sources.py | 49 ++ passbook/core/migrations/0001_initial.py | 14 +- passbook/core/models.py | 17 +- passbook/core/requirements.txt | 3 + passbook/core/settings.py | 34 +- passbook/core/templates/overview/base.html | 17 +- .../core/templates/partials/messages.html | 11 + passbook/core/urls.py | 18 +- passbook/core/views/authentication.py | 2 +- passbook/oauth_client/apps.py | 9 +- passbook/oauth_client/backends.py | 1 + .../oauth_client/migrations/0001_initial.py | 4 +- passbook/oauth_client/models.py | 2 - passbook/oauth_client/source_types/discord.py | 2 +- .../oauth_client/source_types/facebook.py | 2 +- passbook/oauth_client/source_types/github.py | 2 +- passbook/oauth_client/source_types/google.py | 2 +- passbook/oauth_client/source_types/manager.py | 3 +- passbook/oauth_client/source_types/reddit.py | 3 +- .../oauth_client/source_types/supervisr.py | 2 +- passbook/oauth_client/source_types/twitter.py | 2 +- passbook/oauth_provider/__init__.py | 3 + passbook/oauth_provider/admin.py | 4 + passbook/oauth_provider/apps.py | 10 + .../locale/de/LC_MESSAGES/django.po | 70 ++ .../locale/en/LC_MESSAGES/django.po | 69 ++ .../locale/es/LC_MESSAGES/django.po | 70 ++ .../locale/fr/LC_MESSAGES/django.po | 70 ++ .../oauth_provider/migrations/0001_initial.py | 29 + .../oauth_provider/migrations/__init__.py | 0 passbook/oauth_provider/models.py | 12 + passbook/oauth_provider/requirements.txt | 2 + passbook/oauth_provider/settings.py | 16 + passbook/oauth_provider/urls.py | 12 + passbook/oauth_provider/views/__init__.py | 0 passbook/oauth_provider/views/oauth2.py | 58 ++ passbook/saml_idp/__init__.py | 3 + passbook/saml_idp/admin.py | 5 + passbook/saml_idp/apps.py | 11 + passbook/saml_idp/base.py | 313 +++++++++ passbook/saml_idp/codex.py | 22 + passbook/saml_idp/exceptions.py | 11 + passbook/saml_idp/migrations/__init__.py | 0 passbook/saml_idp/models.py | 23 + passbook/saml_idp/processors/__init__.py | 0 passbook/saml_idp/processors/demo.py | 32 + passbook/saml_idp/processors/generic.py | 12 + passbook/saml_idp/processors/gitlab.py | 16 + passbook/saml_idp/processors/nextcloud.py | 15 + passbook/saml_idp/processors/salesforce.py | 19 + passbook/saml_idp/processors/shib.py | 17 + .../saml_idp/processors/wordpress_orange.py | 17 + passbook/saml_idp/registry.py | 28 + passbook/saml_idp/requirements.txt | 4 + passbook/saml_idp/settings.py | 57 ++ .../saml_idp/templates/saml/idp/base.html | 8 + .../templates/saml/idp/invalid_user.html | 5 + .../templates/saml/idp/logged_out.html | 5 + .../saml_idp/templates/saml/idp/login.html | 47 ++ .../saml_idp/templates/saml/idp/settings.html | 47 ++ .../templates/saml/xml/assertions/generic.xml | 19 + .../saml/xml/assertions/google_apps.xml | 15 + .../saml/xml/assertions/salesforce.xml | 19 + .../templates/saml/xml/attributes.xml | 7 + .../saml_idp/templates/saml/xml/metadata.xml | 40 ++ .../saml_idp/templates/saml/xml/response.xml | 13 + .../saml_idp/templates/saml/xml/signature.xml | 1 + .../saml_idp/templates/saml/xml/subject.xml | 8 + passbook/saml_idp/urls.py | 12 + passbook/saml_idp/views.py | 218 ++++++ passbook/saml_idp/xml_render.py | 93 +++ passbook/saml_idp/xml_signing.py | 41 ++ passbook/tfa/__init__.py | 3 + passbook/tfa/apps.py | 10 + passbook/tfa/forms.py | 52 ++ passbook/tfa/middleware.py | 31 + passbook/tfa/requirements.txt | 1 + passbook/tfa/settings.py | 13 + passbook/tfa/templates/tfa/user_settings.html | 54 ++ .../templates/tfa/wizard_setup_static.html | 20 + passbook/tfa/tests/__init__.py | 0 passbook/tfa/tests/test_middleware.py | 31 + passbook/tfa/urls.py | 14 + passbook/tfa/utils.py | 22 + passbook/tfa/views.py | 209 ++++++ 104 files changed, 3056 insertions(+), 63 deletions(-) create mode 100644 passbook/admin/api/__init__.py create mode 100644 passbook/admin/api/v1/__init__.py create mode 100644 passbook/admin/api/v1/routers.py create mode 100644 passbook/admin/api/v1/source.py create mode 100644 passbook/admin/api/v1/utils.py create mode 100644 passbook/admin/mixins.py create mode 100644 passbook/admin/requirements.txt create mode 100644 passbook/admin/templates/administration/application/list.html delete mode 100644 passbook/admin/templates/administration/list.html create mode 100644 passbook/admin/templates/administration/source/list.html create mode 100644 passbook/admin/templates/generic/create.html create mode 100644 passbook/admin/templates/generic/form.html create mode 100644 passbook/admin/templates/generic/list.html create mode 100644 passbook/admin/templates/generic/update.html create mode 100644 passbook/admin/views/sources.py create mode 100644 passbook/core/templates/partials/messages.html create mode 100644 passbook/oauth_provider/__init__.py create mode 100644 passbook/oauth_provider/admin.py create mode 100644 passbook/oauth_provider/apps.py create mode 100644 passbook/oauth_provider/locale/de/LC_MESSAGES/django.po create mode 100644 passbook/oauth_provider/locale/en/LC_MESSAGES/django.po create mode 100644 passbook/oauth_provider/locale/es/LC_MESSAGES/django.po create mode 100644 passbook/oauth_provider/locale/fr/LC_MESSAGES/django.po create mode 100644 passbook/oauth_provider/migrations/0001_initial.py create mode 100644 passbook/oauth_provider/migrations/__init__.py create mode 100644 passbook/oauth_provider/models.py create mode 100644 passbook/oauth_provider/requirements.txt create mode 100644 passbook/oauth_provider/settings.py create mode 100644 passbook/oauth_provider/urls.py create mode 100644 passbook/oauth_provider/views/__init__.py create mode 100644 passbook/oauth_provider/views/oauth2.py create mode 100644 passbook/saml_idp/__init__.py create mode 100644 passbook/saml_idp/admin.py create mode 100644 passbook/saml_idp/apps.py create mode 100644 passbook/saml_idp/base.py create mode 100644 passbook/saml_idp/codex.py create mode 100644 passbook/saml_idp/exceptions.py create mode 100644 passbook/saml_idp/migrations/__init__.py create mode 100644 passbook/saml_idp/models.py create mode 100644 passbook/saml_idp/processors/__init__.py create mode 100644 passbook/saml_idp/processors/demo.py create mode 100644 passbook/saml_idp/processors/generic.py create mode 100644 passbook/saml_idp/processors/gitlab.py create mode 100644 passbook/saml_idp/processors/nextcloud.py create mode 100644 passbook/saml_idp/processors/salesforce.py create mode 100644 passbook/saml_idp/processors/shib.py create mode 100644 passbook/saml_idp/processors/wordpress_orange.py create mode 100644 passbook/saml_idp/registry.py create mode 100644 passbook/saml_idp/requirements.txt create mode 100644 passbook/saml_idp/settings.py create mode 100644 passbook/saml_idp/templates/saml/idp/base.html create mode 100644 passbook/saml_idp/templates/saml/idp/invalid_user.html create mode 100644 passbook/saml_idp/templates/saml/idp/logged_out.html create mode 100644 passbook/saml_idp/templates/saml/idp/login.html create mode 100644 passbook/saml_idp/templates/saml/idp/settings.html create mode 100644 passbook/saml_idp/templates/saml/xml/assertions/generic.xml create mode 100644 passbook/saml_idp/templates/saml/xml/assertions/google_apps.xml create mode 100644 passbook/saml_idp/templates/saml/xml/assertions/salesforce.xml create mode 100644 passbook/saml_idp/templates/saml/xml/attributes.xml create mode 100644 passbook/saml_idp/templates/saml/xml/metadata.xml create mode 100644 passbook/saml_idp/templates/saml/xml/response.xml create mode 100644 passbook/saml_idp/templates/saml/xml/signature.xml create mode 100644 passbook/saml_idp/templates/saml/xml/subject.xml create mode 100644 passbook/saml_idp/urls.py create mode 100644 passbook/saml_idp/views.py create mode 100644 passbook/saml_idp/xml_render.py create mode 100644 passbook/saml_idp/xml_signing.py create mode 100644 passbook/tfa/__init__.py create mode 100644 passbook/tfa/apps.py create mode 100644 passbook/tfa/forms.py create mode 100644 passbook/tfa/middleware.py create mode 100644 passbook/tfa/requirements.txt create mode 100644 passbook/tfa/settings.py create mode 100644 passbook/tfa/templates/tfa/user_settings.html create mode 100644 passbook/tfa/templates/tfa/wizard_setup_static.html create mode 100644 passbook/tfa/tests/__init__.py create mode 100644 passbook/tfa/tests/test_middleware.py create mode 100644 passbook/tfa/urls.py create mode 100644 passbook/tfa/utils.py create mode 100644 passbook/tfa/views.py diff --git a/passbook/__init__.py b/passbook/__init__.py index 983cf4de7..fa6a13305 100644 --- a/passbook/__init__.py +++ b/passbook/__init__.py @@ -1 +1 @@ -__version__ = '0.0.1-alpha' \ No newline at end of file +__version__ = '0.0.1-alpha' diff --git a/passbook/admin/api/__init__.py b/passbook/admin/api/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/passbook/admin/api/v1/__init__.py b/passbook/admin/api/v1/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/passbook/admin/api/v1/routers.py b/passbook/admin/api/v1/routers.py new file mode 100644 index 000000000..328c9cb2a --- /dev/null +++ b/passbook/admin/api/v1/routers.py @@ -0,0 +1,8 @@ +# from django.conf.urls import url, include + +# # Add this! +# from passbook.admin.api.v1.source import SourceResource + +# urlpatterns = [ +# url(r'source/', include(SourceResource.urls())), +# ] diff --git a/passbook/admin/api/v1/source.py b/passbook/admin/api/v1/source.py new file mode 100644 index 000000000..cd34721a2 --- /dev/null +++ b/passbook/admin/api/v1/source.py @@ -0,0 +1,26 @@ +# from rest_framework.serializers import HyperlinkedModelSerializer +# from passbook.admin.api.v1.utils import LookupSerializer +# from passbook.core.models import Source +# from passbook.oauth_client.models import OAuthSource + +# from rest_framework.viewsets import ModelViewSet + +# class LookupSourceSerializer(HyperlinkedModelSerializer): + +# def to_representation(self, instance): +# if isinstance(instance, Source): +# return SourceSerializer(instance=instance).data +# elif isinstance(instance, OAuthSource): +# return OAuthSourceSerializer(instance=instance).data +# else: +# return LookupSourceSerializer(instance=instance).data + +# class Meta: +# model = Source +# fields = '__all__' + + +# class SourceViewSet(ModelViewSet): + +# serializer_class = LookupSourceSerializer +# queryset = Source.objects.select_subclasses() diff --git a/passbook/admin/api/v1/utils.py b/passbook/admin/api/v1/utils.py new file mode 100644 index 000000000..31133e466 --- /dev/null +++ b/passbook/admin/api/v1/utils.py @@ -0,0 +1,17 @@ +from django.db.models import Model +from rest_framework.serializers import ModelSerializer + + +class LookupSerializer(ModelSerializer): + + mapping = {} + + def to_representation(self, instance): + for __model, __serializer in self.mapping.items(): + if isinstance(instance, __model): + return __serializer(instance=instance).to_representation(instance) + raise KeyError(instance.__class__.__name__) + + class Meta: + model = Model + fields = '__all__' diff --git a/passbook/admin/mixins.py b/passbook/admin/mixins.py new file mode 100644 index 000000000..186d81ae0 --- /dev/null +++ b/passbook/admin/mixins.py @@ -0,0 +1,9 @@ + +from django.contrib.auth.mixins import UserPassesTestMixin + + +class AdminRequiredMixin(UserPassesTestMixin): + """Make sure user is administrator""" + + def test_func(self): + return self.request.user.is_superuser diff --git a/passbook/admin/requirements.txt b/passbook/admin/requirements.txt new file mode 100644 index 000000000..44f4d7ce3 --- /dev/null +++ b/passbook/admin/requirements.txt @@ -0,0 +1 @@ +django-crispy-forms \ No newline at end of file diff --git a/passbook/admin/templates/administration/application/list.html b/passbook/admin/templates/administration/application/list.html new file mode 100644 index 000000000..7bd108b2d --- /dev/null +++ b/passbook/admin/templates/administration/application/list.html @@ -0,0 +1,647 @@ +{% extends "administration/base.html" %} + +{% block content %} + +
+
+
+
+ +
+
+ + +
+ +
+
+
+ + + + +
+
+
+ +
+ +
+ 1 of 3 + + + +
+
+
+
+
+
+
+ +
+
+ 0 of 0 selected +
+
+
+
+ + + + + + + + + + + + + + +
Rendering EngineBrowserPlatform(s)Engine VersionCSS GradeActions
+ +
+
+ + per page +
+
+ 1-15 of 75 +
    +
  • +
  • +
+ + + of 5 +
    +
  • +
  • +
+
+
+ + + +{% endblock %} + +{% block scripts %} + + + +{% endblock %} \ No newline at end of file diff --git a/passbook/admin/templates/administration/base.html b/passbook/admin/templates/administration/base.html index 14265e20e..3044f244f 100644 --- a/passbook/admin/templates/administration/base.html +++ b/passbook/admin/templates/administration/base.html @@ -5,11 +5,14 @@ {% block nav_secondary %} -