skillbox/server/users/management/commands/sync_licenses.py

41 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
#
# ITerativ GmbH
# http://www.iterativ.ch/
#
# Copyright (c) 2020 ITerativ GmbH. All rights reserved.
#
# Created on 20.02.20
# @author: chrigu <christian.cueni@iterativ.ch>
import os
import shutil
from django.conf import settings
from django.core.management import BaseCommand
from core.hep_client import HepClient
from core.models import AdminData
from users.models import User, License
class Command(BaseCommand):
def handle(self, *args, **options):
"Update licenses via cronjob"
hep_client = HepClient()
admin_token = AdminData.objects.get_admin_token()
hep_users = User.objects.filter(hep_id__isnull=False)
for hep_user in hep_users:
product = hep_client.myskillbox_product_for_customer(admin_token, hep_user.hep_id)
if product and License.objects.filter(licensee=hep_user, order_id=product['order_id']).count() == 0:
license = License.objects.create_license_for_role(hep_user, product['activated'], product['raw'],
product['edition'], product['order_id'])
if license.is_valid():
hep_user.license_expiry_date = license.expire_date
hep_user.save()