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 )
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):
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) dropbox_get_config = generic_views.get_config( SHORT_NAME, DropboxSerializer )
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), } }]
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()
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) s3_root_folder = generic_views.root_folder(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, 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. """ node = kwargs.get('node') or node_addon.owner path = request.args.get('path', '')
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): """
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()
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) github_root_folder = generic_views.root_folder(SHORT_NAME)
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 This view expects `host`, `username` and `password` fields in the JSON body of the request.
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.
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, FigshareSerializer, _set_folder)