コード例 #1
0
ファイル: views.py プロジェクト: 545zhou/osf.io
from website.util import rubeus

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
)

def _get_folders(node_addon, folder_id):
    pass

github_folder_list = generic_views.folder_list(
    SHORT_NAME,
    FULL_NAME,
    _get_folders
)
コード例 #2
0
from website.addons.dataverse.serializer import DataverseSerializer
from dataverse.exceptions import VersionJsonNotFoundError
from website.oauth.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
)
コード例 #3
0
ファイル: views.py プロジェクト: atelic/osf.io
# -*- coding: utf-8 -*-
from flask import request
import logging

from website.addons.dropbox.serializer import DropboxSerializer
from website.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)
コード例 #4
0
# -*- coding: utf-8 -*-
import os
import httplib as http

from box.client import BoxClient, BoxClientException
from urllib3.exceptions import MaxRetryError

from framework.exceptions import HTTPError
from website.addons.box.model import Box
from website.addons.base import generic_views
from website.addons.box.serializer import BoxSerializer

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)


def _get_folders(node_addon, folder_id):
    node = node_addon.owner
    if folder_id is None:
        return [{
            'id': '0',
            'path': 'All Files',
            'addon': 'box',
            'kind': 'folder',
            'name': '/ (Full Box)',
            'urls': {
                'folders': node.api_url_for('box_folder_list', folderId=0),
コード例 #5
0
ファイル: views.py プロジェクト: baylee-d/osf.io
from framework.auth.decorators import must_be_logged_in

from website.addons.base import generic_views
from website.addons.s3 import utils
from website.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
)
コード例 #6
0
from website.addons.base import generic_views
from website.addons.s3 import utils
from website.addons.s3.serializer import S3Serializer
from website.oauth.models import ExternalAccount
from website.project.decorators import (
    must_have_addon,
    must_have_permission,
    must_not_be_registration,
    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 _get_buckets(node_addon, folder_id=None):
    """Used by generic_view `folder_list` to fetch a list of buckets.
    `folder_id` required by generic, but not actually used"""
    return {'buckets': utils.get_bucket_names(node_addon)}


s3_folder_list = generic_views.folder_list(SHORT_NAME, FULL_NAME, _get_buckets)
コード例 #7
0
# -*- coding: utf-8 -*-
from flask import request

from framework.exceptions import HTTPError
from oauthlib.oauth2 import InvalidGrantError
from website.project.decorators import must_have_addon, must_be_addon_authorizer

from website.addons.base import generic_views
from website.addons.googledrive.utils import to_hgrid
from website.addons.googledrive.client import GoogleDriveClient
from website.addons.googledrive.serializer import GoogleDriveSerializer

SHORT_NAME = 'googledrive'
FULL_NAME = 'Google Drive'

googledrive_account_list = generic_views.account_list(SHORT_NAME,
                                                      GoogleDriveSerializer)

googledrive_get_config = generic_views.get_config(SHORT_NAME,
                                                  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,
コード例 #8
0
ファイル: views.py プロジェクト: baylee-d/osf.io
from website.addons.base import generic_views
from website.oauth.models import ExternalAccount
from website.project.decorators import (
    must_have_addon)

import owncloud
from website.addons.owncloud.model import OwnCloudProvider
from website.addons.owncloud.serializer import OwnCloudSerializer
from website.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
)

owncloud_root_folder = generic_views.root_folder(
    SHORT_NAME
)
コード例 #9
0
ファイル: views.py プロジェクト: baylee-d/osf.io
from website.addons.base import generic_views
from website.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
)
コード例 #10
0
ファイル: views.py プロジェクト: fredtoh/osf.io
from website.addons.dataverse.serializer import DataverseSerializer
from dataverse.exceptions import VersionJsonNotFoundError
from website.oauth.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
)
コード例 #11
0
from website.util import rubeus

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)


def _get_folders(node_addon, folder_id):
    pass


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

github_get_config = generic_views.get_config(SHORT_NAME, GitHubSerializer)

github_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)
コード例 #12
0
from modularodm.storage.base import KeyExistsException
from framework.auth.decorators import must_be_logged_in

from website.addons.base import generic_views
from website.oauth.models import ExternalAccount
from website.project.decorators import (must_have_addon)

import owncloud
from website.addons.owncloud.model import OwnCloudProvider
from website.addons.owncloud.serializer import OwnCloudSerializer
from website.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)

owncloud_root_folder = generic_views.root_folder(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
コード例 #13
0
ファイル: views.py プロジェクト: atelic/osf.io
# -*- coding: utf-8 -*-
from flask import request

from website.project.decorators import must_have_addon, must_be_addon_authorizer

from website.addons.base import generic_views
from website.addons.googledrive.serializer import GoogleDriveSerializer

SHORT_NAME = 'googledrive'
FULL_NAME = 'Google Drive'

googledrive_account_list = generic_views.account_list(
    SHORT_NAME,
    GoogleDriveSerializer
)

googledrive_get_config = generic_views.get_config(
    SHORT_NAME,
    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
)
コード例 #14
0
# -*- coding: utf-8 -*-

from website.addons.base import generic_views
from website.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,