49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
import logging
|
|
|
|
from nacl.exceptions import CryptoError
|
|
from django.core.management.base import BaseCommand
|
|
from django.core.management import call_command
|
|
from django.core.cache import cache
|
|
|
|
from idhub.models import DID
|
|
from idhub_auth.models import User
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = "Command for open de service"
|
|
|
|
def add_arguments(self, parser):
|
|
parser.add_argument('key', nargs='?', default='', type=str, help='key')
|
|
parser.add_argument('ip_port', nargs='?', default='', type=str, help='ip_port')
|
|
|
|
def handle(self, *args, **kwargs):
|
|
self._key = kwargs["key"]
|
|
self.ip_port = kwargs["ip_port"]
|
|
cache.set("KEY_DIDS", self._key, None)
|
|
|
|
admin = User.objects.filter(is_admin=True).first()
|
|
admin.accept_gdpr = True
|
|
admin.save()
|
|
|
|
if not DID.objects.exists():
|
|
cache.set("KEY_DIDS", self._key, None)
|
|
call_command('runserver', self.ip_port)
|
|
return
|
|
|
|
did = DID.objects.first()
|
|
cache.set("KEY_DIDS", self._key, None)
|
|
|
|
try:
|
|
did.get_key_material()
|
|
except CryptoError:
|
|
cache.set("KEY_DIDS", None)
|
|
txt = "Key no valid!"
|
|
logger.error(txt)
|
|
return
|
|
|
|
cache.set("KEY_DIDS", self._key, None)
|
|
call_command('runserver', self.ip_port)
|