web-dev-qa-db-fra.com

Authentification de groupe Active Directory (AD) pour afficher les publications wordpress?

J'essaie de configurer un site wordpress en utilisant l'authentification Active Directory. Une question qui a été soulevée concerne la possibilité de limiter la lecture de catégories/publications/blogs à des groupes AD spécifiques.

Je n'ai jamais vu cela et je n'ai pas trouvé de plug-in qui semble promettre cette fonctionnalité. Il semblerait que la meilleure option consiste simplement à donner à un groupe d'utilisateurs un rôle doté de la fonctionnalité read_private_posts, mais je ne suis pas sûr que cela va faire l'affaire.

3
dadver

Je pense que cela devrait certainement être faisable. Je pense que je voudrais d’abord essayer d’obtenir l’un des plugins d’authentification LDAP - comme Connexion LDAP simple ou Connexion LDAP Gestionnaire de mots de passe et de rôles - puis écrivez un petit plug-in personnalisé pour gérer l'autorisation de contenu.

Voici un aperçu de la logique principale du plugin personnalisé:

function checkContentAuthorization( $content )
{
    $authorization = array(
        'ldap group 1' => array(
            'authorizesCategories'  = array( 1, 14, 83 ),
            'authorizedPosts'       = array( 53, 48, 23, 432 )
        ),
        'ldap group 2' => array(
            'authorizesCategories'  = array( 54, 9, 34 ),
            'authorizedPosts'       = array( 48, 13, 29, 93 )
        ),
    )

    if( is_category() )
    {
        if( !in_array( $currentCategoryID, $authorization[ currentLDAPUser->groupName ][ 'authorizedCategories' ] )
            $content = 'Access denied';
    }
    elseif( is_single() )
    {
        if( !in_array( $currentPostID, $authorization[ currentLDAPUser->groupName ][ 'authorizedPosts' ] )
            $content = 'Access denied';
    }

    return $content;
}
add_filter( 'the_content', 'checkContentAuthorization' );

Évidemment, c'est une version allégée et il y a beaucoup de détails à remplir, mais écrire le plugin lui-même prendrait au moins une demi-journée. Cela devrait cependant vous amener dans la bonne direction.

1
Ian Dunn

Le système de rôles dans Wordpress est limité, alors ne vous attendez pas à ce qu'il fasse son travail. Surtout pas lorsque vous le combinez avec une autre structure d'informations de compte qui pourrait être organisée orthogonalement par rapport aux structures de données de base WP.

Je commencerais par la partie authentification et ensuite, lorsque la connexion ouvrira pour voir quoi et où limiter l'accès au contenu (à condition que ce soit uniquement pour lire ce que vous avez demandé).

0
hakre