Example #1
0
#
# Free Software Foundation, Inc.,
# 59 Temple Place,
# Suite 330,
# Boston, MA 02111-1307  USA
#
# $Id: delete.php,v 1.3 2005/03/29 16:56:26 filetreefrog Exp $
##################################################
if (!defined("PATHOS")) {
    exit("");
}
$resource = $db->selectObject("resourceitem", "id=" . $_GET['id']);
if ($resource != null) {
    $loc = unserialize($resource->location_data);
    $iloc = pathos_core_makeLocation($loc->mod, $loc->src, $resource->id);
    if (pathos_permissions_check("delete", $loc) || pathos_permissions_check("delete", $iloc)) {
        foreach ($db->selectObject("resourceitem_wf_revision", "wf_original=" . $resource->id) as $wf_res) {
            $file = $db->selectObject("file", "id=" . $wf_res->file_id);
            file::delete($file);
            $db->delete("file", "id=" . $file->id);
        }
        $db->delete("resourceitem", "id=" . $resource->id);
        $db->delete("resourceitem_wf_revision", "wf_original=" . $resource->id);
        $db->decrement('resourceitem', 'rank', 1, "location_data='" . $resource->location_data . "' AND rank >= " . $resource->rank);
        pathos_flow_redirect(SYS_FLOW_SECTIONAL);
    } else {
        echo SITE_403_HTML;
    }
} else {
    echo SITE_404_HTML;
}
$original = $db->selectObject('imageworkshop_image', 'id=' . $_POST['id']);
if ($original) {
    $working = $db->selectObject('imageworkshop_imagetmp', 'original_id=' . $original->id);
    if ($working) {
        $original->file_id = $working->file_id;
    }
    $file = $db->selectObject('file', 'id=' . $original->file_id);
    $file->_path = BASE . $file->directory . '/' . $file->filename;
    $wfile = null;
    if ($working == null) {
        $working = imageworkshopmodule::createWorkingCopy($original, $file);
        $wfile = $working->_file;
        unset($working->_file);
    } else {
        $wfile = $db->selectObject('file', 'id=' . $working->file_id);
    }
    $wfile->_path = BASE . $wfile->directory . '/' . $wfile->filename;
    if (!defined('SYS_IMAGE')) {
        require_once BASE . 'subsystems/image.php';
    }
    $newimg = pathos_image_scaleManually($file->_path, $_POST['width'], $_POST['height']);
    if (is_resource($newimg)) {
        pathos_image_output($newimg, pathos_image_sizeinfo($file->_path), $wfile->_path);
        pathos_flow_redirect();
    } else {
        echo $newimg;
    }
} else {
    echo SITE_404_HTML;
}
// END PERM CHECK
Example #3
0
function pathos_workflow_post($object, $table, $loc, $userdata = null)
{
    global $db, $user;
    $policy = pathos_workflow_getPolicy($loc->mod, $loc->src);
    $is_post = false;
    if (isset($object->id)) {
        // Updating an existing
        $object->approved = 2;
        $fake = null;
        $fake->approved = 2;
        $fake->id = $object->id;
        $db->updateObject($fake, $table);
        $object->wf_original = $object->id;
        // SET ACTIONTYPE FOR RUNACTIONS
        $object->wf_type = SYS_WORKFLOW_ACTION_EDITED;
    } else {
        $is_post = true;
        $object->approved = 0;
        $object->wf_original = $db->insertObject($object, $table);
        $object->wf_type = SYS_WORKFLOW_ACTION_POSTED;
    }
    $object->wf_major = $db->max($table . "_wf_revision", "wf_major", "wf_original", "wf_original=" . $object->wf_original);
    if ($object->wf_major == null) {
        $object->wf_major = 0;
    }
    $object->wf_minor = 1;
    $state = array(array($user->id + 0), array($user->id => 1));
    $object->wf_state_data = serialize($state);
    $object->wf_user_id = $user->id;
    // Now check approval right off the bat.  Admin is always exempt from workflow
    if (pathos_workflow_checkApprovalState($state, $policy) || $user->is_acting_admin == 1) {
        $object->wf_major++;
        $object->wf_minor = 0;
        $real_object = pathos_workflow_convertToObject($object);
        $real_object->approved = 1;
        $object->wf_updated = time();
        $db->updateObject($real_object, $table);
        // Call spidering for implicit / admin approval.
        if (is_callable(array($loc->mod, "spiderContent"))) {
            call_user_func(array($loc->mod, "spiderContent"), $real_object);
        }
        if ($user->is_acting_admin == 1) {
            $object->wf_type = SYS_WORKFLOW_ACTION_POSTED_ADMIN;
        } else {
            $object->wf_type = SYS_WORKFLOW_ACTION_IMPLICIT_APPROVAL;
        }
    } else {
        $info = pathos_workflow_updateInfoFromRevision($object, null);
        $info->location_data = $object->location_data;
        $info->policy_id = $policy->id;
        $info->open_slots = $policy->max_approvers;
        $info->updated = time();
        $db->insertObject($info, $table . "_wf_info");
        $object->wf_updated = time();
    }
    unset($object->id);
    $db->insertObject($object, $table . "_wf_revision");
    pathos_workflow_deleteOldRevisions($table, $object->wf_original);
    // Now that we are almost done, we need to call the onWorkflow stuff.
    if (is_callable(array($table, 'onWorkflowPost'))) {
        if (!isset($real_object)) {
            $real_object = pathos_workflow_convertToObject($object);
            $real_object->id = $object->wf_original;
        }
        call_user_func(array($table, 'onWorkflowPost'), $real_object, $is_post, $userdata);
    }
    if ($policy != null) {
        // run actions, either EDIT or POST or IMPLICIT_APPROVAL
        pathos_workflow_runActions($policy, $object->wf_type, $object);
    } else {
        // Catch-all redirect - in case its a new post, implicitly approved, with no policy
        pathos_flow_redirect();
    }
}