Example #1
0
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
)

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

@must_not_be_registration
Example #2
0
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.
    """

    user_addon = auth.user.get_addon('dataverse')
    user_has_auth = False
    if user_addon:
        user_has_auth = user_addon.has_auth
Example #3
0
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
)

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

dropbox_set_config = generic_views.set_config(
    SHORT_NAME,
    FULL_NAME,
    DropboxSerializer,
    _set_folder
)

dropbox_deauthorize_node = generic_views.deauthorize_node(
Example #4
0
        'kind': 'folder',
        'id': item['id'],
        'name': item['name'],
        'path': os.path.join(folder_path, item['name']),
        'urls': {
            'folders': node.api_url_for('box_folder_list',
                                        folderId=item['id']),
        }
    } for item in metadata['item_collection']['entries']
            if item['type'] == 'folder']


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

box_get_config = generic_views.get_config(SHORT_NAME, BoxSerializer)


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


box_set_config = generic_views.set_config(SHORT_NAME, FULL_NAME, BoxSerializer,
                                          _set_folder)

box_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)

box_root_folder = generic_views.root_folder(SHORT_NAME)
Example #5
0
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
)

@must_have_addon(SHORT_NAME, 'node')
Example #6
0
    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)


@must_be_logged_in
def s3_add_user_account(auth, **kwargs):
Example #7
0
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,
                                                    GoogleDriveSerializer)

googledrive_deauthorize_node = generic_views.deauthorize_node(SHORT_NAME)
Example #8
0
    user.get_or_add_addon('owncloud', auth=auth)
    user.save()

    return {}

@must_have_addon(SHORT_NAME, 'user')
@must_have_addon(SHORT_NAME, 'node')
def owncloud_folder_list(node_addon, user_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed.
        Not easily generalizable due to `path` kwarg.
    """
    path = request.args.get('path')
    return node_addon.get_folders(path=path)

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

owncloud_set_config = generic_views.set_config(
    SHORT_NAME,
    FULL_NAME,
    OwnCloudSerializer,
    _set_folder
)

owncloud_get_config = generic_views.get_config(
    SHORT_NAME,
    OwnCloudSerializer
)
Example #9
0
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
)

def figshare_root_folder(node_settings, auth, **kwargs):
    """Return the Rubeus/HGrid-formatted response for the root folder only.
Example #10
0
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.
    """

    user_addon = auth.user.get_addon('dataverse')
    user_has_auth = False
    if user_addon:
        user_has_auth = user_addon.has_auth
Example #11
0
# 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)

#################
# 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')
Example #12
0
    user = auth.user
    if provider.account not in user.external_accounts:
        user.external_accounts.append(provider.account)

    user.get_or_add_addon('owncloud', auth=auth)
    user.save()

    return {}


@must_have_addon(SHORT_NAME, 'user')
@must_have_addon(SHORT_NAME, 'node')
def owncloud_folder_list(node_addon, user_addon, **kwargs):
    """ Returns all the subsequent folders under the folder id passed.
        Not easily generalizable due to `path` kwarg.
    """
    path = request.args.get('path')
    return node_addon.get_folders(path=path)


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


owncloud_set_config = generic_views.set_config(SHORT_NAME, FULL_NAME,
                                               OwnCloudSerializer, _set_folder)

owncloud_get_config = generic_views.get_config(SHORT_NAME, OwnCloudSerializer)
Example #13
0
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
)

googledrive_import_auth = generic_views.import_auth(
    SHORT_NAME,
Example #14
0
)

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)


def figshare_root_folder(node_settings, auth, **kwargs):
    """Return the Rubeus/HGrid-formatted response for the root folder only.

    Identical to the generic_views.root_folder except adds root_folder_type