/**
  * Checks if current user has access to import item management (edit, remove...)
  * @return bool
  */
 public function userHasAccess()
 {
     // Check if user has access to handler alteration
     $aLimitation = array('SQLIImport_Type' => $this->attribute('handler'));
     $userHasAccess = SQLIImportUtils::hasAccessToLimitation('sqliimport', 'manageimports', $aLimitation);
     return $userHasAccess;
 }
$Module = $Params['Module'];
$Result = array();
$tpl = SQLIImportUtils::templateInit();
try {
    $user = eZUser::currentUser();
    $userID = $user->attribute('contentobject_id');
    $userLogin = $user->attribute('login');
    $action = $Params['Action'];
    $importID = $Params['ImportID'];
    $import = SQLIImportItem::fetch($importID);
    if (!$import instanceof SQLIImportItem) {
        throw new SQLIImportBaseException(SQLIImportUtils::translate('extension/sqliimport/error', "No import item found with ID #%importID", null, array('%importID' => $importID)));
    }
    // Check if user has access to handler alteration
    $aLimitation = array('SQLIImport_Type' => $import->attribute('handler'));
    $hasAccess = SQLIImportUtils::hasAccessToLimitation($Module->currentModule(), 'manageimports', $aLimitation);
    if (!$hasAccess) {
        return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel');
    }
    switch ($action) {
        case 'cancel':
            // Check if import is already running. Maybe user has not refreshed import list in the admin...
            $status = $import->attribute('status') == SQLIImportItem::STATUS_RUNNING ? SQLIImportItem::STATUS_INTERRUPTED : SQLIImportItem::STATUS_CANCELED;
            SQLIImportLogger::logNotice('User "' . $userLogin . '" (#' . $userID . ') requested cancelation of pending import #' . $importID . ' on ' . date('Y-m-d H:i'), false);
            $import->setAttribute('status', $status);
            $import->store();
            break;
        case 'interrupt':
            SQLIImportLogger::logNotice('User "' . $userLogin . '" (#' . $userID . ') requested interruption of running import #' . $importID . ' on ' . date('Y-m-d H:i'), false);
            $import->setAttribute('status', SQLIImportItem::STATUS_INTERRUPTED);
            $import->store();