Ejemplo n.º 1
0
    def test_malicious_attributes(self):
        self.user_data.update({
            'malicious': 'hacker',
        })

        for context in self.plugin_contexts:
            # Write bad entry into database
            user_id = context.private_db._coll.insert(self.user_data)

            with self.assertRaises(UserHasUnknownData):
                attribute_fetcher(context, user_id)
Ejemplo n.º 2
0
    def test_fillup_attributes(self):
        for context in self.plugin_contexts:
            security_user = SecurityUser(data=self.user_data)
            context.private_db.save(security_user)

            self.assertDictEqual(
                attribute_fetcher(context, security_user.user_id),
                {
                    '$set': {
                        'passwords': [{
                            'credential_id': u'112345678901234567890123',
                            'salt': '$NDNv1H1$9c810d852430b62a9a7c6159d5d64c41c3831846f81b6799b54e1e8922f11545$32$32$',
                        }],
                        'nins': [{
                            'number': '123456781235',
                            'primary': True,
                            'verified': True
                        }],
                        'phone': [{
                            'number': '+46700011336',
                            'primary': True,
                            'verified': True
                        }]
                    },
                    '$unset': {
                        'terminated': None
                    }
                }
            )
Ejemplo n.º 3
0
    def test_remove_orcid(self):
        for context in self.plugin_contexts:
            proofing_user = ProofingUser(data=self.user_data)
            proofing_user.orcid = None
            context.private_db.save(proofing_user)

            self.assertDictEqual(
                attribute_fetcher(context, proofing_user.user_id),
                {
                    '$unset': {
                        'orcid': None
                    }
                }
            )
Ejemplo n.º 4
0
    def test_fillup_attributes(self):
        for context in self.plugin_contexts:
            personal_data_user = PersonalDataUser(data=self.user_data)
            context.private_db.save(personal_data_user)

            self.assertDictEqual(
                attribute_fetcher(context, personal_data_user.user_id),
                {
                    '$set': {
                        'givenName': 'Testaren',
                        'surname': 'Testsson',
                        'displayName': 'John',
                        'preferredLanguage': 'sv',
                    },
                }
            )
Ejemplo n.º 5
0
    def test_fillup_attributes(self):
        for context in self.plugin_contexts:
            proofing_user = ProofingUser(data=self.user_data)
            context.private_db.save(proofing_user)

            self.assertDictEqual(
                attribute_fetcher(context, proofing_user.user_id),
                {
                    '$set': {
                        'phone': [{
                            'verified': True,
                            'number': '+46700011336',
                            'primary': True
                        }],
                    },
                }
            )
Ejemplo n.º 6
0
    def test_fillup_attributes(self):

        for context in self.plugin_contexts:
            proofing_user = ProofingUser(data=self.user_data)
            context.private_db.save(proofing_user)

            self.assertDictEqual(
                attribute_fetcher(context, proofing_user.user_id),
                {
                    '$set': {
                        "givenName": u"Testaren",
                        "surname": u"Testsson",
                        "displayName": u"John",
                        'nins': [{'number': '123456781235', 'verified': True, 'primary': True}],
                    },
                }
            )
Ejemplo n.º 7
0
    def test_existing_user(self):

        for context in self.plugin_contexts:
            proofing_user = ProofingUser(data=self.user_data)
            context.private_db.save(proofing_user)

            self.assertDictEqual(
                attribute_fetcher(context, proofing_user.user_id),
                {
                    '$set': {
                        'mailAliases': [{
                            'email': '*****@*****.**',
                            'verified': True,
                            'primary': True,
                        }],
                    },
                }
            )
Ejemplo n.º 8
0
    def convert_and_remove_norEduPersonNIN(self):
        self.user_data.update({'norEduPersonNIN': '123456781235'})
        del self.user_data['nins']
        for context in self.plugin_contexts:
            proofing_user = ProofingUser(data=self.user_data)
            context.private_db.save(proofing_user)

            actual_update = attribute_fetcher(context, proofing_user.user_id)
            expected_update = {
                '$set': {
                    'nins': [{'number': '123456781235', 'verified': True, 'primary': True}],
                },
                '$unset': {
                    'norEduPersonNIN': None
                }
            }

            self.assertDictEqual(
                actual_update,
                expected_update
            )
Ejemplo n.º 9
0
    def test_fillup_attributes(self):
        self.user_data = {
            'givenName': 'Testaren',
            'surname': 'Testsson',
            'preferredLanguage': 'sv',
            'eduPersonPrincipalName': 'test-test',
            'displayName': 'John',
            'mailAliases': [{
                'email': '*****@*****.**',
                'verified': True,
                'primary': True
            }],
            'mobile': [{
                'verified': True,
                'mobile': '+46700011336',
                'primary': True
            }],
            'passwords': [{
                'id': bson.ObjectId('112345678901234567890123'),
                'salt': '$NDNv1H1$9c810d852430b62a9a7c6159d5d64c41c3831846f81b6799b54e1e8922f11545$32$32$',
            }],
            'nins': [{'number': '123456781235', 'verified': True, 'primary': True}],
        }

        for context in self.plugin_contexts:
            proofing_user = ProofingUser(data=self.user_data)
            context.private_db.save(proofing_user)

            self.assertDictEqual(
                attribute_fetcher(context, proofing_user.user_id),
                {
                    '$set': {
                        'mailAliases': [{
                            'email': '*****@*****.**',
                            'verified': True,
                            'primary': True
                        }],
                    },
                }
            )
Ejemplo n.º 10
0
    def test_existing_user(self):
        for context in self.plugin_contexts:
            proofing_user = ProofingUser(data=self.user_data)
            context.private_db.save(proofing_user)

            self.assertDictEqual(
                attribute_fetcher(context, proofing_user.user_id),
                {
                    '$set': {
                        'orcid': {
                            'oidc_authz': {
                                'token_type': 'bearer',
                                'refresh_token': 'a_refresh_token',
                                'access_token': 'an_access_token',
                                'id_token': {
                                        'nonce': 'a_nonce',
                                        'sub': 'sub_id',
                                        'iss': 'https://issuer.example.org',
                                        'created_by': 'orcid',
                                        'exp': 1526890816,
                                        'auth_time': 1526890214,
                                        'iat': 1526890216,
                                        'aud': [
                                                'APP-YIAD0N1L4B3Z3W9Q'
                                        ]
                                },
                                'expires_in': 631138518,
                                'created_by': 'orcid'
                            },
                            'given_name': 'Testaren',
                            'family_name': 'Testsson',
                            'name': None,
                            'verified': True,
                            'id': 'orcid_unique_id',
                            'created_by': 'orcid'
                        }
                    },
                }
            )
Ejemplo n.º 11
0
 def test_invalid_user(self):
     for context in self.plugin_contexts:
         with self.assertRaises(UserDoesNotExist):
             attribute_fetcher(context, bson.ObjectId('0' * 24))
Ejemplo n.º 12
0
    def test_append_attributes_letter_proofing_data(self):
        self.maxDiff = None
        self.user_data.update({
            "letter_proofing_data": [
                {
                    "verification_code": u"secret code",
                    "verified": True,
                    "verified_by": u"eduid-idproofing-letter",
                    "created_ts": u'ts',
                    "official_address": {
                        "OfficialAddress": {
                            "PostalCode": u"12345",
                            "City": u"LANDET",
                            "Address2": u"ÖRGATAN 79 LGH 10"
                        },
                        "Name": {
                            "Surname": u"Testsson",
                            "GivenName": u"Testaren Test",
                            "GivenNameMarking": u"20"
                        }
                    },
                    "number": u"123456781235",
                    "created_by": u"eduid-idproofing-letter",
                    "verified_ts": u'ts',
                    "transaction_id": u"debug mode transaction id"
                }
            ],
        })
        proofing_user = ProofingUser(data=self.user_data)
        letter_plugin_context = letter_plugin_init(self.am_settings)
        letter_plugin_context.private_db.save(proofing_user)

        actual_update = attribute_fetcher(letter_plugin_context, proofing_user.user_id)
        expected_update = {
                    '$set': {
                        "givenName": u"Testaren",
                        "surname": u"Testsson",
                        "displayName": u"John",
                        'nins': [{'number': '123456781235', 'verified': True, 'primary': True}],
                        "letter_proofing_data": [
                            {
                                u"verification_code": u"secret code",
                                u"verified": True,
                                u"verified_by": u"eduid-idproofing-letter",
                                u"created_ts": u'ts',
                                u"official_address": {
                                    u"OfficialAddress": {
                                        u"PostalCode": u"12345",
                                        u"City": u"LANDET",
                                        u"Address2": u"ÖRGATAN 79 LGH 10"
                                    },
                                    u"Name": {
                                        u"Surname": u"Testsson",
                                        u"GivenName": u"Testaren Test",
                                        u"GivenNameMarking": u"20"
                                    }
                                },
                                u"number": u"123456781235",
                                u"created_by": u"eduid-idproofing-letter",
                                u"verified_ts": u'ts',
                                u"transaction_id": u"debug mode transaction id"
                            }
                        ]
                    },
                }

        self.assertDictEqual(
            actual_update,
            expected_update
        )

        actual_update = attribute_fetcher(letter_plugin_context, proofing_user.user_id)

        # Don't repeat the letter_proofing_data
        self.assertDictEqual(
            actual_update,
            expected_update
        )

        # Adding a new letter_proofing_data
        self.user_data['letter_proofing_data'].append(
            {
                "verification_code": "secret code",
                "verified": True,
                "verified_by": "eduid-idproofing-letter",
                "created_ts": 'ts',
                "official_address": {
                    "OfficialAddress": {
                        "PostalCode": "12345",
                        "City": "LANDET",
                        "Address2": "ÖRGATAN 79 LGH 10"
                    },
                    "Name": {
                        "Surname": "Testsson",
                        "GivenName": "Testaren Test",
                        "GivenNameMarking": "20"
                    }
                },
                "number": "123456781235",
                "created_by": "eduid-idproofing-letter",
                "verified_ts": 'ts',
                "transaction_id": "debug mode transaction id"
            }
        )
        proofing_user = ProofingUser(data=self.user_data)
        letter_plugin_context.private_db.save(proofing_user)

        actual_update = attribute_fetcher(letter_plugin_context, proofing_user.user_id)
        expected_update = {
            '$set': {
                "givenName": u"Testaren",
                "surname": u"Testsson",
                "displayName": u"John",
                'nins': [{'number': '123456781235', 'verified': True, 'primary': True}],
                "letter_proofing_data": [
                    {
                        "verification_code": u"secret code",
                        "verified": True,
                        "verified_by": u"eduid-idproofing-letter",
                        "created_ts": u'ts',
                        "official_address": {
                            u"OfficialAddress": {
                                u"PostalCode": u"12345",
                                u"City": u"LANDET",
                                u"Address2": u"ÖRGATAN 79 LGH 10"
                            },
                            u"Name": {
                                u"Surname": u"Testsson",
                                u"GivenName": u"Testaren Test",
                                u"GivenNameMarking": u"20"
                            }
                        },
                        u"number": u"123456781235",
                        u"created_by": u"eduid-idproofing-letter",
                        u"verified_ts": u'ts',
                        u"transaction_id": u"debug mode transaction id"
                    },
                    {
                        "verification_code": u"secret code",
                        "verified": True,
                        "verified_by": u"eduid-idproofing-letter",
                        "created_ts": u'ts',
                        "official_address": {
                            u"OfficialAddress": {
                                u"PostalCode": u"12345",
                                u"City": u"LANDET",
                                u"Address2": u"ÖRGATAN 79 LGH 10"
                            },
                            u"Name": {
                                u"Surname": u"Testsson",
                                u"GivenName": u"Testaren Test",
                                u"GivenNameMarking": u"20"
                            }
                        },
                        u"number": u"123456781235",
                        u"created_by": u"eduid-idproofing-letter",
                        u"verified_ts": u'ts',
                        u"transaction_id": u"debug mode transaction id"
                    }
                ]
            },
        }

        self.assertDictEqual(
            actual_update,
            expected_update
        )