Limitare l'accesso al selettore di Google Sheets in WPForms

Desideri limitare gli utenti autorizzati a visualizzare l'elenco dei fogli di lavoro Google collegati quando configuri una connessione a Google Sheets in WPForms? Per impostazione predefinita, qualsiasi utente con accesso al generatore di moduli può visualizzare tutti i fogli di lavoro associati all'account Google collegato, il che potrebbe rappresentare un problema di privacy nei siti con più utenti nel backend.

Questo tutorial ti mostrerà come limitare l'accesso al selettore di Google Fogli utilizzando un frammento di codice personalizzato.


Creazione dello snippet

Prima di iniziare, assicurati di dare un'occhiata al nostro tutorial su come aggiungere frammenti di codice personalizzati al tuo sito.

Il selettore di Google Sheets carica i dati tramite un endpoint AJAX quando un utente apre il provider di Google Sheets nel generatore di moduli. Collegandosi al wpforms_providers_settings_builder_ajax_access_token_data_get_google-sheets filtro, è possibile aggiungere un controllo delle autorizzazioni prima che venga restituito l'elenco dei fogli di calcolo.

Di seguito tratteremo due scenari comuni.

Limitare l'accesso ai soli amministratori

Il frammento di codice riportato di seguito limita l'accesso al selettore di Google Sheets agli utenti con il manage_options funzionalità. Per impostazione predefinita, questa è riservata agli amministratori.

/**
 * Restrict the Google Sheets picker to administrators only.
 *
 * @link  https://wpforms.com/developers/
 */

add_filter( 'wpforms_providers_settings_builder_ajax_access_token_data_get_google-sheets', 'wpf_restrict_picker_access_admins_only', 9 );

function wpf_restrict_picker_access_admins_only(): void {

    // Restrict access to users with manage_options capability (administrators by default).
    if ( ! current_user_can( 'manage_options' ) ) {
        wp_send_json_error( 403 );
    }
}

Una volta aggiunto questo snippet al tuo sito, qualsiasi utente non amministratore che tenti di aprire il selettore di Fogli Google riceverà un errore 403 invece di visualizzare l'elenco dei fogli di calcolo collegati. Gli amministratori continueranno a visualizzare il selettore esattamente come prima.

Limitare l'accesso a un utente specifico

Se preferisci limitare l'accesso a un singolo utente, puoi invece effettuare la verifica in base a un ID utente specifico. Ciò è utile quando solo una persona del tuo team deve essere autorizzata a gestire le connessioni a Fogli Google.

/**
 * Restrict the Google Sheets picker to a specific user.
 *
 * @link  https://wpforms.com/developers/
 */

add_filter( 'wpforms_providers_settings_builder_ajax_access_token_data_get_google-sheets', 'wpf_restrict_picker_access_single_user', 9 );

function wpf_restrict_picker_access_single_user(): void {

    // Restrict access to a specific user ID. Replace 1 with the desired user ID.
    if ( get_current_user_id() !== 1 ) {
        wp_send_json_error( 403 );
    }
}

Assicurarsi di sostituire 1 con l'ID dell'utente a cui desideri concedere l'autorizzazione. Puoi trovare l'ID di un utente andando su Utenti nell'area di amministrazione di WordPress, passando il mouse sul nome dell'utente. L'ID compare nell'URL del link di modifica.

Ecco fatto! Hai limitato con successo l'accesso al selettore di Google Sheets in WPForms. Vuoi personalizzare altre parti dell'integrazione con Google Sheets? Dai un'occhiata al nostro tutorial su come configurare l'add-on di Google Sheets con WPForms.