Esempio n. 1
0
 def updateProfile(self, id_token, refresh_token, access_token, attr_map):
     u = Cognito(self.USER_POOL_ID,
                 self.CLIENT_ID,
                 id_token=id_token,
                 refresh_token=refresh_token,
                 access_token=access_token)
     u.update_profile(attr_map)
Esempio n. 2
0
def topup():
    form = CreditForm()
    if request.method == 'POST':
        msg = ""

        token = request.form['id']  # Using Flask
        amount = request.form['amount']
        charge = stripe.Charge.create(
            amount=amount,
            currency='nzd',
            description='vr 360 service fee',
            source=token,
        )  # todo how to know charge is success?
        try:
            if 'id_token' in session and 'access_token' in session and 'refresh_token':
                u = Cognito(cognito_userpool_id,
                            cognito_client_id,
                            cognito_userpool_region,
                            id_token=session['id_token'],
                            refresh_token=session['refresh_token'],
                            access_token=session['access_token'],
                            username=current_user.id)
                topup_amount = int(float(amount) / 100)
                user = u.get_user()
                balance = int(user._data['custom:credit'])
                new_balance = topup_amount + balance
                u.update_profile({'custom:credit': str(new_balance)})
                user = u.get_user()
                balance = user._data['custom:credit']
                session['credit'] = balance
                current_user.credit = balance
            else:
                raise Exception("Charged,but fail to topup the account")
        except Exception as e:
            if hasattr(e, 'message'):
                msg = e.message
            else:
                msg = e
        else:
            msg = "Topup Successfully"
        finally:
            # flash(msg)
            return msg  #render_template("topup.html",form=form, key=stripe_keys['publishable_key'])#redirect(url_for("topup"))

    elif request.method == 'GET':
        return render_template("topup.html",
                               form=form,
                               key=stripe_keys['publishable_key'])
Esempio n. 3
0
class CognitoAuthTestCase(unittest.TestCase):
    def setUp(self):
        self.cognito_user_pool_id = env('COGNITO_USER_POOL_ID')
        self.app_id = env('COGNITO_APP_ID')
        self.username = env('COGNITO_TEST_USERNAME')
        self.password = env('COGNITO_TEST_PASSWORD')
        self.user = Cognito(self.cognito_user_pool_id, self.app_id,
                            self.username)

    def tearDown(self):
        del self.user

    def test_authenticate(self):
        self.user.authenticate(self.password)
        self.assertNotEqual(self.user.access_token, None)
        self.assertNotEqual(self.user.id_token, None)
        self.assertNotEqual(self.user.refresh_token, None)

    def test_logout(self):
        self.user.authenticate(self.password)
        self.user.logout()
        self.assertEqual(self.user.id_token, None)
        self.assertEqual(self.user.refresh_token, None)
        self.assertEqual(self.user.access_token, None)

    @patch('warrant.Cognito', autospec=True)
    def test_register(self, cognito_user):
        u = cognito_user(self.cognito_user_pool_id,
                         self.app_id,
                         username=self.username)
        res = u.register('sampleuser',
                         'sample4#Password',
                         given_name='Brian',
                         family_name='Jones',
                         name='Brian Jones',
                         email='*****@*****.**',
                         phone_number='+19194894555',
                         gender='Male',
                         preferred_username='******')
        #TODO: Write assumptions

    def test_renew_tokens(self):
        self.user.authenticate(self.password)
        self.user.renew_access_token()

    def test_update_profile(self):
        self.user.authenticate(self.password)
        self.user.update_profile({'given_name': 'Jenkins'})
        u = self.user.get_user()
        self.assertEquals(u.given_name, 'Jenkins')

    def test_admin_get_user(self):
        u = self.user.admin_get_user()
        self.assertEqual(u.pk, self.username)

    def test_check_token(self):
        self.user.authenticate(self.password)
        self.assertFalse(self.user.check_token())

    @patch('warrant.Cognito', autospec=True)
    def test_validate_verification(self, cognito_user):
        u = cognito_user(self.cognito_user_pool_id,
                         self.app_id,
                         username=self.username)
        u.validate_verification('4321')

    @patch('warrant.Cognito', autospec=True)
    def test_confirm_forgot_password(self, cognito_user):
        u = cognito_user(self.cognito_user_pool_id,
                         self.app_id,
                         username=self.username)
        u.confirm_forgot_password('4553', 'samplepassword')
        with self.assertRaises(TypeError) as vm:
            u.confirm_forgot_password(self.password)

    @patch('warrant.Cognito', autospec=True)
    def test_change_password(self, cognito_user):
        u = cognito_user(self.cognito_user_pool_id,
                         self.app_id,
                         username=self.username)
        u.authenticate(self.password)
        u.change_password(self.password, 'crazypassword$45DOG')

        with self.assertRaises(TypeError) as vm:
            self.user.change_password(self.password)

    def test_set_attributes(self):
        u = Cognito(self.cognito_user_pool_id, self.app_id)
        u._set_attributes({'ResponseMetadata': {
            'HTTPStatusCode': 200
        }}, {'somerandom': 'attribute'})
        self.assertEquals(u.somerandom, 'attribute')

    def test_admin_authenticate(self):

        self.user.admin_authenticate(self.password)
        self.assertNotEqual(self.user.access_token, None)
        self.assertNotEqual(self.user.id_token, None)
        self.assertNotEqual(self.user.refresh_token, None)
Esempio n. 4
0
                  user_pool_region='eu-west-1',
                  id_token=tokens['AuthenticationResult']['IdToken'],
                  refresh_token=tokens['AuthenticationResult']['RefreshToken'],
                  access_token=tokens['AuthenticationResult']['AccessToken'])
cognito.update_profile({
    'address':
    props['ADDRESS'],
    'locale':
    props['LOCALE'],
    'phone_number':
    props['PHONE_NUMBER'],
    'picture':
    props['PICTURE'],
    'preferred_username':
    props['PREFERRED_USERNAME'],
    'custom:certificate_proof':
    props['PROOF_OF_CERTIFICATES'],
    'custom:partner':
    props['PARTNER']
    #
    # The following attributes are not mutable
    #
    # 'email': props['EMAIL'],
    # 'birthdate': props['DATE_OF_BIRTH'],
    # 'custom:engineer_ID': props['ENGINEER_ID'],
    # 'family_name': props['FAMILY_NAME'],
    # 'given_name': props['GIVEN_NAME'],
    # 'name': props['USERNAME']
})

Printer.success()