Esempio n. 1
0
 def create_account(self, payload):
     return Account.objects.create(
         account_type=payload['account_type'],
         start_date=payload['start_date'],
         end_date=payload['end_date'],
         code=codes.generate()
     )
Esempio n. 2
0
def create_giftcard(order_number, user, amount):
    source = core.paid_source_account()
    code = codes.generate()
    destination = Account.objects.create(
        code=code
    )
    facade.transfer(source, destination, amount, user,
                    "Create new account")
Esempio n. 3
0
def create_giftcard(order_number, user, amount):
    source = core.paid_source_account()
    code = codes.generate()
    destination = Account.objects.create(
        code=code
    )
    facade.transfer(source, destination, amount, user,
                    "Create new account")
Esempio n. 4
0
 def save(self, *args, **kwargs):
     kwargs['commit'] = False
     account = super().save(*args, **kwargs)
     account.code = codes.generate()
     if hasattr(self, '_account_type'):
         account.account_type = self._account_type
     account.save()
     self.save_m2m()
     return account
Esempio n. 5
0
 def save(self, *args, **kwargs):
     kwargs['commit'] = False
     account = super(NewAccountForm, self).save(*args, **kwargs)
     account.code = codes.generate()
     if hasattr(self, '_account_type'):
         account.account_type = self._account_type
     account.save()
     self.save_m2m()
     return account
Esempio n. 6
0
    def register_user(self, form):
        """
        Create a user instance and send a new registration email (if configured
        to).
        注册的同时给用户生成唯一的数字码,可以用来用户的转账等
        """
        user = form.save()

        account_type = AccountType.objects.get(name='Web')
        Account.objects.create(
            account_type=account_type,
            code=codes.generate(size=5),
            primary_user=user,
        )
        # Raise signal robustly (we don't want exceptions to crash the request
        # handling).
        user_registered.send_robust(sender=self,
                                    request=self.request,
                                    user=user)

        if getattr(settings, 'OSCAR_SEND_REGISTRATION_EMAIL', True):
            self.send_registration_email(user)

        # We have to authenticate before login
        try:
            user = authenticate(username=user.email,
                                password=form.cleaned_data['password1'])
        except User.MultipleObjectsReturned:
            # Handle race condition where the registration request is made
            # multiple times in quick succession.  This leads to both requests
            # passing the uniqueness check and creating users (as the first one
            # hasn't committed when the second one runs the check).  We retain
            # the first one and deactivate the dupes.
            logger.warning(
                'Multiple users with identical email address and password'
                'were found. Marking all but one as not active.')
            # As this section explicitly deals with the form being submitted
            # twice, this is about the only place in Oscar where we don't
            # ignore capitalisation when looking up an email address.
            # We might otherwise accidentally mark unrelated users as inactive
            users = User.objects.filter(email=user.email)
            user = users[0]
            for u in users[1:]:
                u.is_active = False
                u.save()

        auth_login(self.request, user)

        return user
Esempio n. 7
0
    def _create_user_account(self, user):
        AccountType.objects.all()
        deferred_income = AccountType.objects.get(name=names.DEFERRED_INCOME)
        types = deferred_income.get_children()
        if types.count() != 1:
            # é preciso escolher qual dos tipos ou criar um
            raise exceptions.ImproperlyConfigured(
                "You need to define some 'deferred income' account types")
        # fora do if segue o jogo:
        account_type = types[0]

        dados_da_carteira = {
            "name": f"Créditos do: {user.username}",
            "description":
            "Conta com os créditos recebidos pela inserção de Ferramentas.",
            "account_type": types[0],
            "primary_user": user,
            "code": codes.generate()
        }
        user_account = Account.objects.create(**dados_da_carteira)
        return user_account
    def save(self, commit=True):
        is_partner = self.cleaned_data.get('partner_check', False)
        user = super().save()

        account_type = models.AccountType.objects.get(
            name=names.DEFERRED_INCOME)

        user_account = models.Account.objects.create(primary_user=user,
                                                     credit_limit=None)
        user_account.code = codes.generate()
        user_account.account_type = account_type
        user_account.save()

        if is_partner:
            partner = Partner.objects.create(name=user.email)
            partner.users.add(user)
            partner.save()

            dashboard_access_perm = Permission.objects.get(
                codename='dashboard_access', content_type__app_label='partner')
            user.user_permissions.add(dashboard_access_perm)
        return user
Esempio n. 9
0
 def test_create_codes_of_correct_length(self):
     for size in [4, 6, 8]:
         code = codes.generate(size=size)
         self.assertTrue(size, len(code))
Esempio n. 10
0
 def test_can_create_codes_using_custom_character_set(self):
     chars = string.ascii_uppercase
     code = codes.generate(chars=chars)
     for char in code:
         self.assertTrue(char in chars)
Esempio n. 11
0
 def test_create_codes_using_correct_default_character_set(self):
     code = codes.generate()
     chars = string.ascii_uppercase + string.digits
     for char in code:
         self.assertTrue(char in chars)
 def test_create_codes_of_correct_length(self):
     for size in [4, 6, 8]:
         code = codes.generate(size=size)
         self.assertTrue(size, len(code))
 def test_can_create_codes_using_custom_character_set(self):
     chars = string.ascii_uppercase
     code = codes.generate(chars=chars)
     for char in code:
         self.assertTrue(char in chars)
 def test_create_codes_using_correct_default_character_set(self):
     code = codes.generate()
     chars = string.ascii_uppercase + string.digits
     for char in code:
         self.assertTrue(char in chars)