Verify valid product, move default school creation
This commit is contained in:
parent
0e95e872c8
commit
c13ed2a5b2
|
|
@ -94,6 +94,12 @@ class SchoolClass(models.Model):
|
||||||
|
|
||||||
return '{} {}'.format(prefix, index + 1)
|
return '{} {}'.format(prefix, index + 1)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def create_default_group_for_teacher(cls, user):
|
||||||
|
default_class_name = cls.generate_default_group_name()
|
||||||
|
default_class = cls.objects.create(name=default_class_name)
|
||||||
|
user.school_classes.add(default_class)
|
||||||
|
|
||||||
def is_user_in_schoolclass(self, user):
|
def is_user_in_schoolclass(self, user):
|
||||||
return user.is_superuser or user.school_classes.filter(pk=self.id).count() > 0
|
return user.is_superuser or user.school_classes.filter(pk=self.id).count() > 0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,7 @@ class Login(relay.ClientIDMutation):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
license = License.objects.get(licensee=user)
|
license = License.objects.get(licensee=user)
|
||||||
|
# Todo how handle invalid license? Cron Job? How to select correct license? Save all licenses? History?
|
||||||
except License.DoesNotExist:
|
except License.DoesNotExist:
|
||||||
product = hep_client.myskillbox_product_for_customer(settings.HEP_ADMIN_TOKEN, user.hep_id)
|
product = hep_client.myskillbox_product_for_customer(settings.HEP_ADMIN_TOKEN, user.hep_id)
|
||||||
|
|
||||||
|
|
@ -80,43 +81,13 @@ class Login(relay.ClientIDMutation):
|
||||||
UserRole.objects.create_role_for_user(user, license.for_role.key)
|
UserRole.objects.create_role_for_user(user, license.for_role.key)
|
||||||
|
|
||||||
if license.for_role.key == Role.objects.TEACHER_KEY:
|
if license.for_role.key == Role.objects.TEACHER_KEY:
|
||||||
default_class_name = SchoolClass.generate_default_group_name()
|
SchoolClass.create_default_group_for_teacher(user)
|
||||||
default_class = SchoolClass.objects.create(name=default_class_name)
|
|
||||||
user.school_classes.add(default_class)
|
|
||||||
|
|
||||||
# if teacher create class
|
|
||||||
# if student add to class if exists???
|
|
||||||
|
|
||||||
# no orders
|
|
||||||
# network errors
|
|
||||||
# Todo get orders from magento
|
|
||||||
# check items
|
|
||||||
# show buy or create license
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# check items
|
|
||||||
# show buy page
|
|
||||||
|
|
||||||
if not license.is_valid():
|
if not license.is_valid():
|
||||||
pass
|
error = LoginError(field='no_valid_license')
|
||||||
|
return cls(success=False, errors=[error])
|
||||||
|
|
||||||
|
|
||||||
# show page
|
|
||||||
|
|
||||||
#
|
|
||||||
|
|
||||||
# user_license = None
|
|
||||||
#
|
|
||||||
# try:
|
|
||||||
# user_license = License.objects.get(licensee=user)
|
|
||||||
# except License.DoesNotExist:
|
|
||||||
# # current users have no license, allow them to login
|
|
||||||
# pass
|
|
||||||
#
|
|
||||||
# if user_license is not None and not user_license.license_type.active:
|
|
||||||
# error = LoginError(field='license_inactive')
|
|
||||||
# return cls(success=False, errors=[error])
|
|
||||||
|
|
||||||
login(info.context, user)
|
login(info.context, user)
|
||||||
return cls(success=True, errors=[])
|
return cls(success=True, errors=[])
|
||||||
|
|
|
||||||
|
|
@ -190,6 +190,22 @@ class PasswordResetTests(TestCase):
|
||||||
self.assertFalse(result.get('data').get('login').get('success'))
|
self.assertFalse(result.get('data').get('login').get('success'))
|
||||||
self.assertEqual(result.get('data').get('login').get('errors')[0].get('field'), 'no_valid_license')
|
self.assertEqual(result.get('data').get('login').get('errors')[0].get('field'), 'no_valid_license')
|
||||||
|
|
||||||
|
@patch.object(HepClient, 'customer_token', return_value={'token': FAKE_TOKEN})
|
||||||
|
@patch.object(HepClient, 'customer_me', return_value=ME_DATA)
|
||||||
|
def test_user_cannot_login_local_license_invalid(self, me_mock, token_mock):
|
||||||
|
now = timezone.now()
|
||||||
|
expiry_date = now - timedelta(1)
|
||||||
|
LicenseFactory(expire_date=expiry_date, licensee=self.user, for_role=self.teacher_role).save()
|
||||||
|
|
||||||
|
result = self.make_login_mutation(self.user.email, 'test123')
|
||||||
|
|
||||||
|
token = MagentoToken.objects.get(user=self.user)
|
||||||
|
self.assertEqual(token.token, FAKE_TOKEN)
|
||||||
|
|
||||||
|
self.assertFalse(result.get('data').get('login').get('success'))
|
||||||
|
self.assertEqual(result.get('data').get('login').get('errors')[0].get('field'), 'no_valid_license')
|
||||||
|
|
||||||
|
|
||||||
## can login with license and user
|
## can login with license and user
|
||||||
## can login with no user and license
|
## can login with no user and license
|
||||||
# ?can login with no user and local license
|
# ?can login with no user and local license
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue