Webform trick & tips: autocomplete e accesso ai risultati

Webform trick & tips: autocomplete e accesso ai risultatiQui spiego come ottenere l’autocomplete di un field all’interno di una form creata usando il modulo Webform di Drupal. Illustro sia la strada della scrittura di un modulo custom, che quella dell’utilizzo di un modulo contrib.

Avete mai desiderato di concedere l’accesso ai risultati degli inserimenti effettuati con Webform ad un determinato gruppo di utenti? Le autorizzazioni predefinite che vengono con Webform non forniscono molta granularità in questo scenario, quindi una soluzione personalizzata è l’unica strada percorribile.

Fortunatamente Webform ha a disposizione due hook che ci semplificano la vita:

  • hook_webform_results_access
  • hook_webform_submission_access

/**
* Implementation of hook_webform_results_access().
*/
function my_module_webform_results_access($node, $account = NULL) {
return my_module_webform_access($node, $account);
}

/**
* Implementation of hook_webform_submission_access().
*/
function my_module_webform_submission_access($node, $submission, $op = 'view', $account = NULL) {
return my_module_webform_access($node, $account);
}

/**
* Returns true if account is a value in the webform results user
* reference field on the webform content type.
*
* @param object $node
* The webform node.
* @param object $account
* The user account, optional. Defaults to current user.
*
* @return bool
* Returns true if user is listed, false otherwise.
*/
function my_module_webform_access ($node, $account = NULL) {
global $user;
$account = isset($account) ? $account : $user;
$access = false;

if (user_access("administer nodes") || user_access("edit any webform content")) {
$access = true;
}

//a questo punto possiamo inserire tutte le nostre logiche per il controllo
//esempio: filtrare gli accessi in base al role di appartenenza

if ($user->roles == 'webmaster'){
$access = true;
}

return $access;
}

One thought on “Webform trick & tips: autocomplete e accesso ai risultati

Rispondi