From e4ddfe1b3a3bfa982386284d9859c64862cb6c08 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Thu, 14 Feb 2019 22:12:54 +0100 Subject: [PATCH] Remove piston, keep just the models. --- requirements/requirements-dev.txt | 2 - requirements/requirements.txt | 1 - .../migrations => api}/piston/__init__.py | 0 src/api/piston/admin.py | 7 +++ .../piston/migrations}/0001_initial.py | 0 src/api/piston/migrations/__init__.py | 0 src/api/piston/models.py | 56 +++++++++++++++++++ src/api/request_validator.py | 2 +- src/api/tests/tests.py | 2 +- src/api/views.py | 2 +- src/wolnelektury/settings/apps.py | 2 +- src/wolnelektury/settings/contrib.py | 1 - 12 files changed, 67 insertions(+), 8 deletions(-) rename src/{wolnelektury/migrations => api}/piston/__init__.py (100%) create mode 100644 src/api/piston/admin.py rename src/{wolnelektury/migrations/piston => api/piston/migrations}/0001_initial.py (100%) create mode 100644 src/api/piston/migrations/__init__.py create mode 100644 src/api/piston/models.py diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt index 2be42f850..d68937188 100644 --- a/requirements/requirements-dev.txt +++ b/requirements/requirements-dev.txt @@ -2,7 +2,5 @@ django-debug-toolbar<1.10 django-debug-toolbar-template-timings -Fabric sphinx pyinotify -fnpdeploy>=0.2.3 diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 34f4d9a38..7122431cf 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -7,7 +7,6 @@ django-pipeline>=1.6,<1.7 jsmin fnp-django-pagination django-maintenancemode==0.10 -django-piston==0.2.2.1.2 jsonfield>=1.0.3,<1.1 django-picklefield>=1.0,<1.1 django-modeltranslation>=0.10,<0.11 diff --git a/src/wolnelektury/migrations/piston/__init__.py b/src/api/piston/__init__.py similarity index 100% rename from src/wolnelektury/migrations/piston/__init__.py rename to src/api/piston/__init__.py diff --git a/src/api/piston/admin.py b/src/api/piston/admin.py new file mode 100644 index 000000000..792f19629 --- /dev/null +++ b/src/api/piston/admin.py @@ -0,0 +1,7 @@ +from django.contrib import admin +from . import models + + +admin.site.register(models.Nonce) +admin.site.register(models.Consumer) +admin.site.register(models.Token) diff --git a/src/wolnelektury/migrations/piston/0001_initial.py b/src/api/piston/migrations/0001_initial.py similarity index 100% rename from src/wolnelektury/migrations/piston/0001_initial.py rename to src/api/piston/migrations/0001_initial.py diff --git a/src/api/piston/migrations/__init__.py b/src/api/piston/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/api/piston/models.py b/src/api/piston/models.py new file mode 100644 index 000000000..7bb106c81 --- /dev/null +++ b/src/api/piston/models.py @@ -0,0 +1,56 @@ +from django.conf import settings +from django.db import models + + +KEY_SIZE = 18 +SECRET_SIZE = 32 + +CONSUMER_STATES = ( + ('pending', 'Pending approval'), + ('accepted', 'Accepted'), + ('canceled', 'Canceled'), +) + + +class Nonce(models.Model): + token_key = models.CharField(max_length=KEY_SIZE) + consumer_key = models.CharField(max_length=KEY_SIZE) + key = models.CharField(max_length=255) + + def __unicode__(self): + return u"Nonce %s for %s" % (self.key, self.consumer_key) + + +class Resource(models.Model): + name = models.CharField(max_length=255) + url = models.TextField(max_length=2047) + is_readonly = models.BooleanField(default=True) + + +class Consumer(models.Model): + name = models.CharField(max_length=255) + description = models.TextField() + key = models.CharField(max_length=KEY_SIZE) + secret = models.CharField(max_length=SECRET_SIZE) + status = models.CharField(max_length=16, choices=CONSUMER_STATES, default='pending') + user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, related_name='consumers') + + def __unicode__(self): + return u"Consumer %s with key %s" % (self.name, self.key) + + +class Token(models.Model): + REQUEST = 1 + ACCESS = 2 + TOKEN_TYPES = ((REQUEST, u'Request'), (ACCESS, u'Access')) + + key = models.CharField(max_length=KEY_SIZE) + secret = models.CharField(max_length=SECRET_SIZE) + token_type = models.IntegerField(choices=TOKEN_TYPES) + timestamp = models.IntegerField() + is_approved = models.BooleanField(default=False) + user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, related_name='tokens') + consumer = models.ForeignKey(Consumer) + + def __unicode__(self): + return u"%s Token %s for %s" % (self.get_token_type_display(), self.key, self.consumer) diff --git a/src/api/request_validator.py b/src/api/request_validator.py index 916636b91..55bd6fbdb 100644 --- a/src/api/request_validator.py +++ b/src/api/request_validator.py @@ -4,7 +4,7 @@ # import time from oauthlib.oauth1 import RequestValidator -from piston.models import Consumer, Nonce, Token +from api.piston.models import Consumer, Nonce, Token class PistonRequestValidator(RequestValidator): diff --git a/src/api/tests/tests.py b/src/api/tests/tests.py index 298a79433..3b4d4c59e 100644 --- a/src/api/tests/tests.py +++ b/src/api/tests/tests.py @@ -17,7 +17,7 @@ from django.core.files.uploadedfile import SimpleUploadedFile from django.test import TestCase from django.test.utils import override_settings from mock import patch -from piston.models import Consumer, Token +from api.piston.models import Consumer, Token from catalogue.models import Book, Tag from picture.forms import PictureImportForm diff --git a/src/api/views.py b/src/api/views.py index 518445dd0..66c9258e8 100644 --- a/src/api/views.py +++ b/src/api/views.py @@ -6,7 +6,7 @@ from django.http import Http404 from django.views.generic.base import View from oauthlib.common import urlencode from oauthlib.oauth1 import RequestTokenEndpoint, AccessTokenEndpoint -from piston.models import KEY_SIZE, SECRET_SIZE +from api.piston.models import KEY_SIZE, SECRET_SIZE from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from rest_framework.views import APIView diff --git a/src/wolnelektury/settings/apps.py b/src/wolnelektury/settings/apps.py index c3be29bbe..2c76f67ed 100644 --- a/src/wolnelektury/settings/apps.py +++ b/src/wolnelektury/settings/apps.py @@ -50,7 +50,7 @@ INSTALLED_APPS_CONTRIB = [ 'rest_framework', 'fnp_django_pagination', 'pipeline', - 'piston', + 'api.piston', 'piwik', 'sorl.thumbnail', 'kombu.transport.django', diff --git a/src/wolnelektury/settings/contrib.py b/src/wolnelektury/settings/contrib.py index a25ef72d9..f3e7b6ba6 100644 --- a/src/wolnelektury/settings/contrib.py +++ b/src/wolnelektury/settings/contrib.py @@ -15,7 +15,6 @@ MODELTRANSLATION_PREPOPULATE_LANGUAGE = 'pl' MIGRATION_MODULES = { 'getpaid': 'wolnelektury.migrations.getpaid', - 'piston': 'wolnelektury.migrations.piston', } GETPAID_ORDER_DESCRIPTION = "{% load funding_tags %}{{ order|sanitize_payment_title }}" -- 2.20.1