Пример #1
0
 public function delete($cID = false, $token = false)
 {
     if (Loader::helper('validation/token')->validate('delete', $token)) {
         $s = Stack::getByID($cID);
         if (is_object($s)) {
             $sps = new Permissions($s);
             if ($sps->canDeletePage()) {
                 $u = new User();
                 $pkr = new DeletePagePageWorkflowRequest();
                 $pkr->setRequestedPage($s);
                 $pkr->setRequesterUserID($u->getUserID());
                 $response = $pkr->trigger();
                 if ($response instanceof WorkflowProgressResponse) {
                     // we only get this response if we have skipped workflows and jumped straight in to an approve() step.
                     $this->redirect('/dashboard/blocks/stacks', 'stack_deleted');
                 } else {
                     $this->redirect('/dashboard/blocks/stacks', 'view_details', $cID, 'delete_saved');
                 }
             } else {
                 $this->error->add(t('You do not have access to delete this stack.'));
             }
         } else {
             $this->error->add(t('Invalid stack'));
         }
     } else {
         $this->error->add(Loader::helper('validation/token')->getErrorMessage());
     }
 }
Пример #2
0
$u = new User();

if ($_POST['task'] == 'delete_pages') {

	$q = Queue::get('delete_page_request');

	if ($_POST['process']) {
		$obj = new stdClass;
		$js = Loader::helper('json');
		$messages = $q->receive(DELETE_PAGES_LIMIT);
		foreach($messages as $key => $p) {
			// delete the page here
			$page = unserialize($p->body);
			$c = Page::getByID($page['cID']);
			if ($c->getCollectionID() > 1) {
				$pkr = new DeletePagePageWorkflowRequest();
				$pkr->setRequestedPage($c);
				$pkr->setRequesterUserID($u->getUserID());
				$u->unloadCollectionEdit($c);
				$pkr->trigger();
			}
			$q->deleteMessage($p);
		}
		$obj->totalItems = $q->count();	
		if ($q->count() == 0) {
			$q->deleteQueue('delete_page_request');
		}
		print $js->encode($obj);
		exit;
	} else if ($q->count() == 0) {
		if (is_array($_POST['cID'])) {
if ($_POST['task'] == 'delete_pages') {
    $json['error'] = false;
    if (is_array($_POST['cID'])) {
        foreach ($_POST['cID'] as $cID) {
            $c = Page::getByID($cID);
            $cp = new Permissions($c);
            $children = $c->getNumChildren();
            if ($children == 0 || $cp->canDeletePage()) {
                if ($cp->canApprovePageVersions()) {
                    if (ENABLE_TRASH_CAN) {
                        $c->moveToTrash();
                    } else {
                        $c->delete();
                    }
                } else {
                    $pkr = new DeletePagePageWorkflowRequest();
                    $pkr->setRequestedPage($c);
                    $pkr->trigger();
                }
            } else {
                $json['error'] = t('Unable to delete one or more pages.');
            }
        }
    }
    $js = Loader::helper('json');
    print $js->encode($json);
    exit;
}
$form = Loader::helper('form');
$pages = array();
if (is_array($_REQUEST['cID'])) {