Пример #1
0
def test_list_permission_factory(app, client, superuser):
    """Test list permission factory."""
    app.config.update(SONAR_APP_DISABLE_PERMISSION_CHECKS=True)
    assert record_permission_factory(action='list').can()

    app.config.update(SONAR_APP_DISABLE_PERMISSION_CHECKS=False)
    assert not record_permission_factory(action='list').can()

    login_user_via_view(client, email=superuser['email'], password='******')
    assert record_permission_factory(action='list').can()
Пример #2
0
def test_unknown_permission_factory(app, client, superuser, document):
    """Test unknown permission factory"""
    app.config.update(SONAR_APP_DISABLE_PERMISSION_CHECKS=True)
    assert record_permission_factory(document, 'unknown').can()

    app.config.update(SONAR_APP_DISABLE_PERMISSION_CHECKS=False)
    assert not record_permission_factory(document, 'unknown').can()

    login_user_via_view(client, email=superuser['email'], password='******')
    assert not record_permission_factory(document, 'unknown').can()
Пример #3
0
     },
     search_serializers={
         'application/json': ('sonar.modules.documents.serializers'
                              ':json_v1_search'),
     },
     record_loaders={
         'application/json': ('sonar.modules.documents.loaders'
                              ':json_v1'),
     },
     list_route='/documents/',
     item_route='/documents/<pid(doc, record_class="sonar.modules.'
     'documents.api:DocumentRecord"):pid_value>',
     default_media_type='application/json',
     max_result_window=10000,
     search_factory_imp='sonar.modules.documents.query:search_factory',
     create_permission_factory_imp=lambda record: record_permission_factory(
         action='create', cls=DocumentPermission),
     read_permission_factory_imp=lambda record: record_permission_factory(
         action='read', record=record, cls=DocumentPermission),
     update_permission_factory_imp=lambda record: record_permission_factory(
         action='update', record=record, cls=DocumentPermission),
     delete_permission_factory_imp=lambda record: record_permission_factory(
         action='delete', record=record, cls=DocumentPermission),
     list_permission_factory_imp=lambda record: record_permission_factory(
         action='list', record=record, cls=DocumentPermission)),
 'org':
 dict(
     pid_type='org',
     pid_minter='organisation_id',
     pid_fetcher='organisation_id',
     default_endpoint_prefix=True,
     record_class=OrganisationRecord,
Пример #4
0
class Configuration:
    """Resource configuration."""

    index = f'{RESOURCE_NAME}'
    schema = f'{RESOURCE_NAME}/{JSON_SCHEMA_NAME}-v1.0.0.json'
    pid_type = PID_TYPE
    resolver_url = f'/api/{RESOURCE_NAME}/<pid>'
    rest_endpoint = {
        'pid_type':
        PID_TYPE,
        'pid_minter':
        f'{RESOURCE_NAME}_id',
        'pid_fetcher':
        f'{RESOURCE_NAME}_id',
        'default_endpoint_prefix':
        True,
        'record_class':
        f'{MODULE_PATH}.api:Record',
        'search_class':
        f'{MODULE_PATH}.api:RecordSearch',
        'indexer_class':
        f'{MODULE_PATH}.api:RecordIndexer',
        'search_index':
        RESOURCE_NAME,
        'search_type':
        None,
        'record_serializers': {
            'application/json': (f'{MODULE_PATH}.serializers'
                                 ':json_v1_response'),
        },
        'search_serializers': {
            'application/json': (f'{MODULE_PATH}.serializers'
                                 ':json_v1_search'),
        },
        'record_loaders': {
            'application/json': (f'{MODULE_PATH}.loaders'
                                 ':json_v1'),
        },
        'list_route':
        f'/{RESOURCE_NAME}/',
        'item_route':
        f'/{RESOURCE_NAME}/<pid({PID_TYPE}, record_class="{MODULE_PATH}.api:Record"):pid_value>',
        'default_media_type':
        'application/json',
        'max_result_window':
        10000,
        'search_factory_imp':
        f'{MODULE_PATH}.query:search_factory',
        'create_permission_factory_imp':
        lambda record: record_permission_factory(
            action='create', cls=f'{MODULE_PATH}.permissions:RecordPermission'
        ),
        'read_permission_factory_imp':
        lambda record: record_permission_factory(
            action='read',
            record=record,
            cls=f'{MODULE_PATH}.permissions:RecordPermission'),
        'update_permission_factory_imp':
        lambda record: record_permission_factory(
            action='update',
            record=record,
            cls=f'{MODULE_PATH}.permissions:RecordPermission'),
        'delete_permission_factory_imp':
        lambda record: record_permission_factory(
            action='delete',
            record=record,
            cls=f'{MODULE_PATH}.permissions:RecordPermission'),
        'list_permission_factory_imp':
        lambda record: record_permission_factory(
            action='list',
            record=record,
            cls=f'{MODULE_PATH}.permissions:RecordPermission')
    }