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)
|
||||
|
||||
@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):
|
||||
return user.is_superuser or user.school_classes.filter(pk=self.id).count() > 0
|
||||
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ class Login(relay.ClientIDMutation):
|
|||
|
||||
try:
|
||||
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:
|
||||
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)
|
||||
|
||||
if license.for_role.key == Role.objects.TEACHER_KEY:
|
||||
default_class_name = SchoolClass.generate_default_group_name()
|
||||
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
|
||||
SchoolClass.create_default_group_for_teacher(user)
|
||||
|
||||
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)
|
||||
return cls(success=True, errors=[])
|
||||
|
|
|
|||
|
|
@ -190,6 +190,22 @@ class PasswordResetTests(TestCase):
|
|||
self.assertFalse(result.get('data').get('login').get('success'))
|
||||
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 no user and license
|
||||
# ?can login with no user and local license
|
||||
|
|
|
|||
Loading…
Reference in New Issue