Beispiel #1
0
def package_update(context, data_dict):
    package = logic_auth.get_package_object(context, data_dict)
    workflow, _ = workflow_helpers.get_workflow_from_package(package)
    stage = workflow_helpers.get_stage_from_package(package)

    if stage != workflow.finish:
        return auth_update.package_update(context, data_dict)
    return _success(False, 'Cannot edit published dataset')
Beispiel #2
0
def move_to_previous_stage(context, data_dict):
    wf, _ = workflow_helpers.get_workflow_from_package(data_dict)
    stage = workflow_helpers.get_stage_from_package(data_dict)
    if stage and roles.creator in stage.who_can_reject and stage.reject(
    ) is not None:
        user = model.User.get(context['user'])
        if user is not None and user.id == data_dict['creator_user_id']:
            return _success()
    return _success(False)
Beispiel #3
0
def create_dataset_revision(context, data_dict):
    workflow, _ = workflow_helpers.get_workflow_from_package(data_dict)
    stage = workflow_helpers.get_stage_from_package(data_dict)

    if stage != workflow.finish:
        return _success(False, 'Dataset must be published')
    if workflow_helpers.get_original_dataset_id_from_package(data_dict):
        return _success(False, 'Cannot create revision of revision')
    if workflow_helpers.get_dataset_revision_query(data_dict['id']).count():
        return _success(False, 'Dataset already has revision')
    return authz.is_authorized('package_create', context, data_dict)
Beispiel #4
0
def workflow_rescind_dataset(context, data_dict):
    wf, _ = workflow_helpers.get_workflow_from_package(data_dict)
    stage = workflow_helpers.get_stage_from_package(data_dict)
    if stage == wf.start:
        return _success(False, 'Already on initial stage')
    if stage == wf.finish:
        return _success(False, 'Already on published stage')

    user = model.User.get(context['user'])
    if user is not None and user.id == data_dict['creator_user_id']:
        return _success()
    return _success(False)
    def approve(self, id):
        """Approve common dataset.

        If package just've got its last stage and it looks like
        revision - redirects to merge_revision route
        """
        context = {
            'user': c.user,
            'model': model
        }
        endpoint = request.referrer or '/'

        pkg = tk.get_action('package_show')(context, {'id': id})
        wf, _ = wh.get_workflow_from_package(pkg)

        next = str(wh.get_stage_from_package(pkg).approve())
        if next == str(wf.finish) and wh.is_revision(pkg):
            endpoint = h.url_for('merge_dataset_revision', id=id)
        tk.get_action('move_to_next_stage')(context, {'id': id})

        return base.redirect(endpoint)