Exemple #1
0
from osf.models import ExternalAccount
from website.project.decorators import (must_have_addon,
                                        must_be_addon_authorizer,
                                        must_have_permission,
                                        must_not_be_registration,
                                        must_be_contributor_or_public)
from website.util import rubeus, api_url_for
from website.util.sanitize import assert_clean

SHORT_NAME = 'dataverse'
FULL_NAME = 'Dataverse'

dataverse_account_list = generic_views.account_list(SHORT_NAME,
                                                    DataverseSerializer)

dataverse_import_auth = generic_views.import_auth(SHORT_NAME,
                                                  DataverseSerializer)

dataverse_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

dataverse_get_config = generic_views.get_config(SHORT_NAME,
                                                DataverseSerializer)

## Auth ##


@must_be_logged_in
def dataverse_user_config_get(auth, **kwargs):
    """View for getting a JSON representation of the logged-in user's
    Dataverse user settings.
    """
Exemple #2
0
logging.getLogger('requests.packages.urllib3.connectionpool').setLevel(logging.WARNING)

SHORT_NAME = 'github'
FULL_NAME = 'GitHub'

############
# Generics #
############

github_account_list = generic_views.account_list(
    SHORT_NAME,
    GitHubSerializer
)

github_import_auth = generic_views.import_auth(
    SHORT_NAME,
    GitHubSerializer
)

github_get_config = generic_views.get_config(
    SHORT_NAME,
    GitHubSerializer
)

github_deauthorize_node = generic_views.deauthorize_node(
    SHORT_NAME
)

#################
# Special Cased #
#################
Exemple #3
0
    must_have_permission, must_not_be_registration,
    must_be_contributor_or_public
)
from website.util import rubeus, api_url_for
from website.util.sanitize import assert_clean

SHORT_NAME = 'dataverse'
FULL_NAME = 'Dataverse'

dataverse_account_list = generic_views.account_list(
    SHORT_NAME,
    DataverseSerializer
)

dataverse_import_auth = generic_views.import_auth(
    SHORT_NAME,
    DataverseSerializer
)

dataverse_deauthorize_node = generic_views.deauthorize_node(
    SHORT_NAME
)

dataverse_get_config = generic_views.get_config(
    SHORT_NAME,
    DataverseSerializer
)

## Auth ##

@must_be_logged_in
def dataverse_user_config_get(auth, **kwargs):
Exemple #4
0
                                        must_not_be_registration,
                                        must_be_contributor_or_public)

logger = logging.getLogger(__name__)

SHORT_NAME = 'bitbucket'
FULL_NAME = 'Bitbucket'

############
# Generics #
############

bitbucket_account_list = generic_views.account_list(SHORT_NAME,
                                                    BitbucketSerializer)

bitbucket_import_auth = generic_views.import_auth(SHORT_NAME,
                                                  BitbucketSerializer)


def _get_folders(node_addon, folder_id):
    pass


bitbucket_folder_list = generic_views.folder_list(SHORT_NAME, FULL_NAME,
                                                  _get_folders)

bitbucket_get_config = generic_views.get_config(SHORT_NAME,
                                                BitbucketSerializer)

bitbucket_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

#################
Exemple #5
0
from addons.azureblobstorage import utils
from addons.azureblobstorage.serializer import AzureBlobStorageSerializer
from osf.models import ExternalAccount
from website.project.decorators import (
    must_have_addon,
    must_have_permission,
    must_be_addon_authorizer,
)

SHORT_NAME = 'azureblobstorage'
FULL_NAME = 'Azure Blob Storage'

azureblobstorage_account_list = generic_views.account_list(
    SHORT_NAME, AzureBlobStorageSerializer)

azureblobstorage_import_auth = generic_views.import_auth(
    SHORT_NAME, AzureBlobStorageSerializer)

azureblobstorage_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

azureblobstorage_get_config = generic_views.get_config(
    SHORT_NAME, AzureBlobStorageSerializer)


def _set_folder(node_addon, folder, auth):
    folder_id = folder['id']
    node_addon.set_folder(folder_id, auth=auth)
    node_addon.save()


azureblobstorage_set_config = generic_views.set_config(
    SHORT_NAME, FULL_NAME, AzureBlobStorageSerializer, _set_folder)
Exemple #6
0
from addons.base import generic_views
from addons.s3 import utils
from addons.s3.serializer import S3Serializer
from website.oauth.models import ExternalAccount
from website.project.decorators import (
    must_have_addon,
    must_have_permission,
    must_be_addon_authorizer,
)

SHORT_NAME = 's3'
FULL_NAME = 'Amazon S3'

s3_account_list = generic_views.account_list(SHORT_NAME, S3Serializer)

s3_import_auth = generic_views.import_auth(SHORT_NAME, S3Serializer)

s3_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

s3_get_config = generic_views.get_config(SHORT_NAME, S3Serializer)


def _set_folder(node_addon, folder, auth):
    folder_id = folder['id']
    node_addon.set_folder(folder_id, auth=auth)
    node_addon.save()


s3_set_config = generic_views.set_config(SHORT_NAME, FULL_NAME, S3Serializer,
                                         _set_folder)
Exemple #7
0
    GoogleDriveSerializer
)

def _set_folder(node_addon, folder, auth):
    node_addon.set_folder(folder, auth=auth)
    node_addon.save()

googledrive_set_config = generic_views.set_config(
    SHORT_NAME,
    FULL_NAME,
    GoogleDriveSerializer,
    _set_folder
)

googledrive_import_auth = generic_views.import_auth(
    SHORT_NAME,
    GoogleDriveSerializer
)

googledrive_deauthorize_node = generic_views.deauthorize_node(
    SHORT_NAME
)

googledrive_root_folder = generic_views.root_folder(
    SHORT_NAME
)

@must_have_addon(SHORT_NAME, 'node')
@must_be_addon_authorizer(SHORT_NAME)
def googledrive_folder_list(node_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed.
        Not easily generalizable due to `path` kwarg.
Exemple #8
0
    must_be_valid_project,
)
from website.util import api_url_for

logger = logging.getLogger(__name__)

SHORT_NAME = 'gitlab'
FULL_NAME = 'GitLab'

############
# Generics #
############

gitlab_account_list = generic_views.account_list(SHORT_NAME, GitLabSerializer)

gitlab_import_auth = generic_views.import_auth(SHORT_NAME, GitLabSerializer)


def _get_folders(node_addon, folder_id):
    pass


gitlab_folder_list = generic_views.folder_list(SHORT_NAME, FULL_NAME,
                                               _get_folders)

gitlab_get_config = generic_views.get_config(SHORT_NAME, GitLabSerializer)

gitlab_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)


@must_be_logged_in
Exemple #9
0
    if not provider.repo_auth_callback(user=user, repoid=repoid):
        return {}

    if provider.account and not user.external_accounts.filter(
            id=provider.account.id).exists():
        user.external_accounts.add(provider.account)
        user.save()

    oauth_complete.send(provider, account=provider.account, user=user)

    return {}


weko_account_list = generic_views.account_list(SHORT_NAME, WEKOSerializer)

weko_import_auth = generic_views.import_auth(SHORT_NAME, WEKOSerializer)

weko_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

weko_get_config = generic_views.get_config(SHORT_NAME, WEKOSerializer)

## Auth ##


@must_be_logged_in
def weko_user_config_get(auth, **kwargs):
    """View for getting a JSON representation of the logged-in user's
    WEKO user settings.
    """

    user_addon = auth.user.get_addon('weko')
Exemple #10
0
    OneDriveSerializer
)

def _set_folder(node_addon, folder, auth):
    node_addon.set_folder(folder, auth=auth)
    node_addon.save()

onedrive_set_config = generic_views.set_config(
    SHORT_NAME,
    FULL_NAME,
    OneDriveSerializer,
    _set_folder
)

onedrive_import_auth = generic_views.import_auth(
    SHORT_NAME,
    OneDriveSerializer
)

onedrive_deauthorize_node = generic_views.deauthorize_node(
    SHORT_NAME
)

@must_have_addon(SHORT_NAME, 'node')
@must_be_addon_authorizer(SHORT_NAME)
def onedrive_folder_list(node_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed.
    """
    folder_id = request.args.get('folder_id')
    return node_addon.get_folders(folder_id=folder_id)
Exemple #11
0
import owncloud
from addons.owncloud.models import OwnCloudProvider
from addons.owncloud.serializer import OwnCloudSerializer
from addons.owncloud import settings

SHORT_NAME = 'owncloud'
FULL_NAME = 'OwnCloud'

owncloud_account_list = generic_views.account_list(
    SHORT_NAME,
    OwnCloudSerializer
)

owncloud_import_auth = generic_views.import_auth(
    SHORT_NAME,
    OwnCloudSerializer
)

owncloud_deauthorize_node = generic_views.deauthorize_node(
    SHORT_NAME
)

## Config ##

@must_be_logged_in
def owncloud_add_user_account(auth, **kwargs):
    """
        Verifies new external account credentials and adds to user's list

        This view expects `host`, `username` and `password` fields in the JSON
        body of the request.
Exemple #12
0
from addons.base import generic_views
from osf.models import ExternalAccount
from website.project.decorators import (must_have_addon)

import owncloud
from addons.nextcloud.models import NextcloudProvider
from addons.nextcloud.serializer import NextcloudSerializer
from addons.nextcloud import settings

SHORT_NAME = 'nextcloud'
FULL_NAME = 'Nextcloud'

nextcloud_account_list = generic_views.account_list(SHORT_NAME,
                                                    NextcloudSerializer)

nextcloud_import_auth = generic_views.import_auth(SHORT_NAME,
                                                  NextcloudSerializer)

nextcloud_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

## Config ##


@must_be_logged_in
def nextcloud_add_user_account(auth, **kwargs):
    """
        Verifies new external account credentials and adds to user's list

        This view expects `host`, `username` and `password` fields in the JSON
        body of the request.
    """
Exemple #13
0
from addons.s3compat.serializer import S3CompatSerializer
import addons.s3compat.settings as settings
from osf.models import ExternalAccount
from website.project.decorators import (
    must_have_addon,
    must_have_permission,
    must_be_addon_authorizer,
)

SHORT_NAME = 's3compat'
FULL_NAME = 'S3 Compatible Storage'

s3compat_account_list = generic_views.account_list(SHORT_NAME,
                                                   S3CompatSerializer)

s3compat_import_auth = generic_views.import_auth(SHORT_NAME,
                                                 S3CompatSerializer)

s3compat_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

s3compat_get_config = generic_views.get_config(SHORT_NAME, S3CompatSerializer)


def _set_folder(node_addon, folder, auth):
    folder_id = folder['id']
    node_addon.set_folder(folder_id, auth=auth)
    node_addon.save()


s3compat_set_config = generic_views.set_config(SHORT_NAME, FULL_NAME,
                                               S3CompatSerializer, _set_folder)
Exemple #14
0
from addons.base import generic_views
from website.project.decorators import must_have_addon, must_be_addon_authorizer

logger = logging.getLogger(__name__)
debug = logger.debug

SHORT_NAME = 'dropbox'
FULL_NAME = 'Dropbox'

dropbox_account_list = generic_views.account_list(
    SHORT_NAME,
    DropboxSerializer
)

dropbox_import_auth = generic_views.import_auth(
    SHORT_NAME,
    DropboxSerializer
)

@must_have_addon(SHORT_NAME, 'node')
@must_be_addon_authorizer(SHORT_NAME)
def dropbox_folder_list(node_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed.
    """
    folder_id = request.args.get('folder_id')

    return node_addon.get_folders(folder_id=folder_id)

dropbox_get_config = generic_views.get_config(
    SHORT_NAME,
    DropboxSerializer
)
Exemple #15
0
"""Views for the node settings page."""
# -*- coding: utf-8 -*-
from flask import request

from addons.base import generic_views
from addons.box.serializer import BoxSerializer
from website.project.decorators import must_have_addon, must_be_addon_authorizer

SHORT_NAME = 'box'
FULL_NAME = 'Box'

box_account_list = generic_views.account_list(SHORT_NAME, BoxSerializer)

box_import_auth = generic_views.import_auth(SHORT_NAME, BoxSerializer)


@must_have_addon(SHORT_NAME, 'node')
@must_be_addon_authorizer(SHORT_NAME)
def box_folder_list(node_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed.
    """
    folder_id = request.args.get('folder_id')

    return node_addon.get_folders(folder_id=folder_id)


box_get_config = generic_views.get_config(SHORT_NAME, BoxSerializer)


def _set_folder(node_addon, folder, auth):
    uid = folder['id']
Exemple #16
0
logger = logging.getLogger(__name__)

logging.getLogger('github3').setLevel(logging.WARNING)
logging.getLogger('requests.packages.urllib3.connectionpool').setLevel(
    logging.WARNING)

SHORT_NAME = 'github'
FULL_NAME = 'GitHub'

############
# Generics #
############

github_account_list = generic_views.account_list(SHORT_NAME, GitHubSerializer)

github_import_auth = generic_views.import_auth(SHORT_NAME, GitHubSerializer)

github_get_config = generic_views.get_config(SHORT_NAME, GitHubSerializer)

github_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

#################
# Special Cased #
#################


@must_not_be_registration
@must_have_addon(SHORT_NAME, 'user')
@must_have_addon(SHORT_NAME, 'node')
@must_be_addon_authorizer(SHORT_NAME)
@must_have_permission(WRITE)
Exemple #17
0
logger = logging.getLogger(__name__)

SHORT_NAME = 'gitlab'
FULL_NAME = 'GitLab'

############
# Generics #
############

gitlab_account_list = generic_views.account_list(
    SHORT_NAME,
    GitLabSerializer
)

gitlab_import_auth = generic_views.import_auth(
    SHORT_NAME,
    GitLabSerializer
)

def _get_folders(node_addon, folder_id):
    pass

gitlab_folder_list = generic_views.folder_list(
    SHORT_NAME,
    FULL_NAME,
    _get_folders
)

gitlab_get_config = generic_views.get_config(
    SHORT_NAME,
    GitLabSerializer
)
Exemple #18
0
from osf.models import ExternalAccount
from website.project.decorators import (
    must_have_addon, must_have_permission,
    must_be_addon_authorizer,
)

SHORT_NAME = 's3'
FULL_NAME = 'Amazon S3'

s3_account_list = generic_views.account_list(
    SHORT_NAME,
    S3Serializer
)

s3_import_auth = generic_views.import_auth(
    SHORT_NAME,
    S3Serializer
)

s3_deauthorize_node = generic_views.deauthorize_node(
    SHORT_NAME
)

s3_get_config = generic_views.get_config(
    SHORT_NAME,
    S3Serializer
)

def _set_folder(node_addon, folder, auth):
    folder_id = folder['id']
    node_addon.set_folder(folder_id, auth=auth)
    node_addon.save()
Exemple #19
0
from addons.base import generic_views
from osf.models import ExternalAccount
from website.project.decorators import (must_have_addon)

import owncloud
from addons.owncloud.models import OwnCloudProvider
from addons.owncloud.serializer import OwnCloudSerializer
from addons.owncloud import settings

SHORT_NAME = 'owncloud'
FULL_NAME = 'OwnCloud'

owncloud_account_list = generic_views.account_list(SHORT_NAME,
                                                   OwnCloudSerializer)

owncloud_import_auth = generic_views.import_auth(SHORT_NAME,
                                                 OwnCloudSerializer)

owncloud_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

## Config ##


@must_be_logged_in
def owncloud_add_user_account(auth, **kwargs):
    """
        Verifies new external account credentials and adds to user's list

        This view expects `host`, `username` and `password` fields in the JSON
        body of the request.
    """
Exemple #20
0
    GoogleDriveSerializer
)

def _set_folder(node_addon, folder, auth):
    node_addon.set_folder(folder, auth=auth)
    node_addon.save()

googledrive_set_config = generic_views.set_config(
    SHORT_NAME,
    FULL_NAME,
    GoogleDriveSerializer,
    _set_folder
)

googledrive_import_auth = generic_views.import_auth(
    SHORT_NAME,
    GoogleDriveSerializer
)

googledrive_deauthorize_node = generic_views.deauthorize_node(
    SHORT_NAME
)

@must_have_addon(SHORT_NAME, 'node')
@must_be_addon_authorizer(SHORT_NAME)
def googledrive_folder_list(node_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed.
        Not easily generalizable due to `path` kwarg.
    """
    path = request.args.get('path', '')
    folder_id = request.args.get('folder_id', 'root')
Exemple #21
0

SHORT_NAME = 'bitbucket'
FULL_NAME = 'Bitbucket'

############
# Generics #
############

bitbucket_account_list = generic_views.account_list(
    SHORT_NAME,
    BitbucketSerializer
)

bitbucket_import_auth = generic_views.import_auth(
    SHORT_NAME,
    BitbucketSerializer
)

def _get_folders(node_addon, folder_id):
    pass

bitbucket_folder_list = generic_views.folder_list(
    SHORT_NAME,
    FULL_NAME,
    _get_folders
)

bitbucket_get_config = generic_views.get_config(
    SHORT_NAME,
    BitbucketSerializer
)
Exemple #22
0
from addons.figshare.serializer import FigshareSerializer

from website.project.decorators import (
    must_have_addon,
    must_be_addon_authorizer,
)

from website.util import rubeus

SHORT_NAME = 'figshare'
FULL_NAME = SHORT_NAME

figshare_account_list = generic_views.account_list(SHORT_NAME,
                                                   FigshareSerializer)

figshare_import_auth = generic_views.import_auth(SHORT_NAME,
                                                 FigshareSerializer)

figshare_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

figshare_get_config = generic_views.get_config(SHORT_NAME, FigshareSerializer)


def _set_folder(node_addon, folder, auth):
    node_addon.set_folder(folder['id'], auth=auth)
    node_addon.save()


figshare_set_config = generic_views.set_config(SHORT_NAME, FULL_NAME,
                                               FigshareSerializer, _set_folder)

Exemple #23
0
from osf.models import ExternalAccount
from website.project.decorators import (
    must_have_addon, must_have_permission,
    must_be_addon_authorizer,
)

SHORT_NAME = 'swift'
FULL_NAME = 'OpenStack Swift'

swift_account_list = generic_views.account_list(
    SHORT_NAME,
    SwiftSerializer
)

swift_import_auth = generic_views.import_auth(
    SHORT_NAME,
    SwiftSerializer
)

swift_deauthorize_node = generic_views.deauthorize_node(
    SHORT_NAME
)

swift_get_config = generic_views.get_config(
    SHORT_NAME,
    SwiftSerializer
)

def _set_folder(node_addon, folder, auth):
    folder_id = folder['id']
    node_addon.set_folder(folder_id, auth=auth)
    node_addon.save()
Exemple #24
0
from website.project.decorators import (
    must_have_addon, must_be_addon_authorizer,
)


SHORT_NAME = 'figshare'
FULL_NAME = SHORT_NAME

figshare_account_list = generic_views.account_list(
    SHORT_NAME,
    FigshareSerializer
)

figshare_import_auth = generic_views.import_auth(
    SHORT_NAME,
    FigshareSerializer
)

figshare_deauthorize_node = generic_views.deauthorize_node(
    SHORT_NAME
)

figshare_get_config = generic_views.get_config(
    SHORT_NAME,
    FigshareSerializer
)

def _set_folder(node_addon, folder, auth):
    node_addon.set_folder(folder['id'], auth=auth)
    node_addon.save()