Example #1
0
 def setUp(self):
     OsfTestCase.setUp(self)
     self.user_settings = AddonGitHubUserSettings()
     self.oauth_settings = AddonGitHubOauthSettings()
     self.oauth_settings.github_user_id = 'testuser'
     self.oauth_settings.save()
     self.user_settings.oauth_settings = self.oauth_settings
     self.user_settings.save()
Example #2
0
    def test_to_json_noauthorizing_authed_user(self):
        user = UserFactory()
        user.add_addon('github')
        user_settings = user.get_addon('github')

        oauth_settings = AddonGitHubOauthSettings(oauth_access_token='foobar')
        oauth_settings.github_user_id = 'testuser'
        oauth_settings.save()

        user_settings.oauth_settings = self.oauth_settings
        user_settings.save()

        self.node_settings.to_json(user)
Example #3
0
 def configure_addon(self):
     self.user.add_addon('github')
     self.user_addon = self.user.get_addon('github')
     self.oauth_settings = AddonGitHubOauthSettings(github_user_id='john')
     self.oauth_settings.save()
     self.user_addon.oauth_settings = self.oauth_settings
     self.user_addon.oauth_access_token = 'secret'
     self.user_addon.save()
     self.node.add_addon('github', self.auth_obj)
     self.node_addon = self.node.get_addon('github')
     self.node_addon.user = '******'
     self.node_addon.repo = 'youre-my-best-friend'
     self.node_addon.user_settings = self.user_addon
     self.node_addon.save()
Example #4
0
 def setUp(self):
     OsfTestCase.setUp(self)
     self.user = UserFactory()
     self.user.add_addon('github')
     self.user_settings = self.user.get_addon('github')
     self.oauth_settings = AddonGitHubOauthSettings(oauth_access_token='foobar')
     self.oauth_settings.github_user_id = 'testuser'
     self.oauth_settings.save()
     self.user_settings.oauth_settings = self.oauth_settings
     self.user_settings.save()
     self.node_settings = AddonGitHubNodeSettings(
         owner=ProjectFactory(),
         user='******',
         repo='openpokemon',
         user_settings=self.user_settings,
     )
     self.node_settings.save()
Example #5
0
    def setUp(self):
        super(TestAddonFileViews, self).setUp()
        self.user = AuthUserFactory()
        self.project = ProjectFactory(creator=self.user)

        self.user.add_addon('github')
        self.project.add_addon('github', auth=Auth(self.user))

        self.user_addon = self.user.get_addon('github')
        self.node_addon = self.project.get_addon('github')
        self.oauth = AddonGitHubOauthSettings(github_user_id='denbarell',
                                              oauth_access_token='Truthy')

        self.oauth.save()

        self.user_addon.oauth_settings = self.oauth
        self.user_addon.save()

        self.node_addon.user_settings = self.user_addon
        self.node_addon.save()
def do_migration(records, dry=True):
    count, inval_cred_handled = 0, 0

    for raw_user_settings in records:

        # False if missing, None if field exists
        access_token = raw_user_settings.get('oauth_access_token', False)
        token_type = raw_user_settings.get('oauth_token_type', False)
        github_user_name = raw_user_settings.get('github_user', False)

        if access_token and token_type and github_user_name:
            if not dry:
                gh = GitHub(access_token, token_type)
                try:
                    github_user = gh.user()
                except github3.models.GitHubError:
                    AddonGitHubUserSettings._storage[0].store.update(
                        {'_id': raw_user_settings['_id']}, {
                            '$unset': {
                                "oauth_access_token": True,
                                "oauth_token_type": True,
                                "github_user": True,
                            },
                        })
                    inval_cred_handled += 1
                    print('invalidated credentials handled record: {}'.format(
                        raw_user_settings['_id']))
                    continue

                oauth_settings = AddonGitHubOauthSettings()
                oauth_settings.github_user_id = str(github_user.id)
                oauth_settings.save()
                oauth_settings.oauth_access_token = access_token
                oauth_settings.oauth_token_type = token_type
                oauth_settings.github_user_name = github_user_name
                oauth_settings.save()

                AddonGitHubUserSettings._storage[0].store.update(
                    {'_id': raw_user_settings['_id']}, {
                        '$unset': {
                            'oauth_access_token': True,
                            'oauth_token_type': True,
                            'github_user': True,
                        },
                        '$set': {
                            'oauth_settings': oauth_settings.github_user_id,
                        }
                    })

                AddonGitHubOauthSettings._storage[0].store.update(
                    {'github_user_id': oauth_settings.github_user_id}, {
                        '$push': {
                            '__backrefs.accessed.addongithubusersettings.oauth_settings':
                            raw_user_settings['_id'],
                        }
                    })
                print('Finished migrating AddonGithubUserSettings record: {}'.
                      format(raw_user_settings['_id']))
            count += 1
        # Old fields have not yet been unset
        elif None in set([access_token, token_type, github_user_name]):
            if not dry:
                AddonGitHubUserSettings._storage[0].store.update(
                    {'_id': raw_user_settings['_id']}, {
                        '$unset': {
                            'oauth_access_token': True,
                            'oauth_token_type': True,
                            'github_user': True,
                        },
                    })
                print('Unset oauth_access_token and oauth_token_type: {0}'.
                      format(raw_user_settings['_id']))
            count += 1

    return count, inval_cred_handled