Résumé de l'IA
Souhaitez-vous limiter l'accès à la liste des feuilles de calcul Google connectées lors de la configuration d'une connexion Google Sheets dans WPForms ? Par défaut, tout utilisateur ayant accès au générateur de formulaires peut voir toutes les feuilles de calcul associées au compte Google connecté, ce qui peut poser un problème de confidentialité sur les sites comptant plusieurs utilisateurs en arrière-plan.
Ce tutoriel vous montrera comment restreindre l'accès au sélecteur de Google Sheets à l'aide d'un extrait de code personnalisé.
Création de l'extrait
Avant de commencer, n'oubliez pas de consulter notre tutoriel sur la manière d'ajouter des extraits de code personnalisés à votre site.
Le sélecteur Google Sheets charge ses données via un point de terminaison AJAX lorsqu'un utilisateur ouvre le fournisseur Google Sheets dans le générateur de formulaires. En s'intégrant à l' wpforms_providers_settings_builder_ajax_access_token_data_get_google-sheets filtre, vous pouvez ajouter une vérification des autorisations avant que la liste des feuilles de calcul ne soit renvoyée.
Nous allons aborder ci-dessous deux cas de figure courants.
Restriction de l'accès aux administrateurs uniquement
L'extrait de code ci-dessous limite l'accès au sélecteur de Google Sheets aux utilisateurs disposant de la manage_options droit. Par défaut, ce droit est réservé aux administrateurs.
/**
* 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 );
}
}
Une fois ce bout de code ajouté à votre site, tout utilisateur non administrateur qui tentera d'ouvrir le sélecteur Google Sheets recevra une erreur 403 au lieu de voir la liste des feuilles de calcul connectées. Les administrateurs continueront à voir le sélecteur exactement comme auparavant.
Restriction de l'accès à un utilisateur spécifique
Si vous préférez limiter l'accès à un seul utilisateur, vous pouvez plutôt vérifier l'identité d'un utilisateur spécifique. Cela s'avère utile lorsque seule une personne de votre équipe doit être autorisée à gérer les connexions à Google Sheets.
/**
* 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 );
}
}
Veillez à remplacer 1 en indiquant l'identifiant de l'utilisateur que vous souhaitez autoriser. Vous pouvez trouver l'identifiant d'un utilisateur en vous rendant sur Utilisateurs dans votre interface d'administration WordPress, en passant la souris sur le nom de l'utilisateur. L'identifiant apparaît dans l'URL du lien de modification.
Et voilà ! Vous avez réussi à restreindre l'accès au sélecteur Google Sheets dans WPForms. Souhaitez-vous personnaliser d'autres aspects de l'intégration de Google Sheets ? Consultez notre tutoriel sur la configuration du module complémentaire Google Sheets avec WPForms.