コード例 #1
0
ファイル: create.py プロジェクト: abgov/ckanext-ab_scheming
def member_create(context, data_dict):
    group = logic_auth.get_group_object(context, data_dict)

    if group.type == 'topics':
        return {'success': True}
    else:
        return create.member_create(context, data_dict)
コード例 #2
0
ファイル: authorize.py プロジェクト: skvisha/hdx-ckan
def member_delete(context, data_dict):
    '''
    Overriding default member_delete to allow a user to delete himself as a member
    '''
    authenticated_user = context.get('auth_user_obj')

    if data_dict.get('object_type') == 'user':
        user_id_to_be_removed = data_dict.get('object')
        if user_id_to_be_removed == authenticated_user.id or user_id_to_be_removed == authenticated_user.name:
            return {'success': True}

    return _auth_create.member_create(context, data_dict)
コード例 #3
0
def member_create_check_authorized(context, data_dict):
    '''Overwrite core authorization logic for member_create.

    It only deals with cases where the group is thematic, and the member 
    a package. The rest are delegated to the core authorization function.
    '''

    group = p.toolkit.get_action('group_show')(context, {
        'id': data_dict.get('id'),
    })

    if group.get('is_organization') or not context.get('package'):
        return create_auth.member_create(context, data_dict)
    else:
        user = context.get('user')

        # Looking for any organization's user, has at least editor rights. If none exists
        # he cannot edit a thematic group
        organizations = p.toolkit.get_action('organization_list_for_user')(
            context, {
                'permission': 'update_dataset'
            })
        if not organizations:
            return {
                'success':
                False,
                'msg':
                _('User %s is not authorized to edit any thematic group') %
                (user)
            }

        # Checking that the user has at least editor's rights for the organization in which
        # the package belongs to.
        else:
            package_org = context.get('package').owner_org
            package_id = context.get('package').id
            if package_org not in [x.get('id') for x in organizations]:
                return {
                    'success':
                    False,
                    'msg':
                    _('User %s is not authorized to edit package %s') %
                    (user, package_id)
                }
            else:
                return {'success': True}
コード例 #4
0
def member_create_check_authorized(context, data_dict):
    '''Overwrite core authorization logic for member_create.

    It only deals with cases where the group is thematic, and the member 
    a package. The rest are delegated to the core authorization function.
    '''
    
    group = p.toolkit.get_action('group_show')(context, {
        'id': data_dict.get('id'),
    })
    
    if group.get('is_organization') or not context.get('package'):
        return create_auth.member_create(context, data_dict)
    else:
        user = context.get('user')
        
        # Looking for any organization's user, has at least editor rights. If none exists 
        # he cannot edit a thematic group
        organizations = p.toolkit.get_action('organization_list_for_user')(context, {
            'permission': 'update_dataset'
        })
        if not organizations:
            return {'success': False,
                    'msg': _('User %s is not authorized to edit any thematic group') %
                            (user)}
        
        # Checking that the user has at least editor's rights for the organization in which
        # the package belongs to.
        else:
            package_org = context.get('package').owner_org
            package_id = context.get('package').id
            if package_org not in [x.get('id') for x in organizations]:
                return {'success': False,
                        'msg': _('User %s is not authorized to edit package %s') %
                                (user, package_id)}
            else:
                return {'success': True}
コード例 #5
0
ファイル: delete.py プロジェクト: AGESIC-UY/ckan
def member_delete(context, data_dict):
    return _auth_create.member_create(context, data_dict)
コード例 #6
0
ファイル: delete.py プロジェクト: 1sha1/ckan
def member_delete(context, data_dict):
    return _auth_create.member_create(context, data_dict)
コード例 #7
0
def member_delete(context, data_dict):
    if authz.config.get('ckan.gov_theme.is_back'):
        return _auth_create.member_create(context, data_dict)
    else:
        return {'success': False}