public function rollback() {
		// Check permission
		if(!$this->canTriggerRollback()) {
			return Security::permissionFailure(
				null,
				_t("EmergencyRollbackStep.DENYROLLBACKED",
				"You do not have permission to rollback this pipeline")
			);
		}

		if ($this->Status == 'Queued') {
			$this->start();
		}

		// Write down some metadata.
		$this->RolledBack = SS_Datetime::now()->Rfc2822();
		$this->log(_t('EmergencyRollbackStep.BEINGROLLEDBACK', "{$this->Title} is being rolled back"));
		$this->ResponderID = Member::currentUserID();
		$this->write();

		// Rollback itself is handled by the Pipeline object. This step will be marked as failed.
		if ($this->Pipeline()->isRunning()) {
			$this->Pipeline()->markFailed();
			return true;
		} else {
			return false;
		}
	}