Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de Cms Made Simple. Nous ne faisons de support que sur LA dernière version de CmsMadeSimple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 30/03/2012 12:51:58

jack66
Membre
Inscription : 30/03/2012
Messages : 11

Articles liés aux permissions de groupes [résolu]

#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site :
#~ Hébergeur / Soft : ovh
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Salut à tous,

Plusieurs utilisateurs peuvent modifier les pages de mon site mais avec des restrictions. J'ai donc pour cela créé des groupes d'utilisateurs avec permissions et en ce qui concerne la modification des pages, seuls les utilisateurs membres du groupe utilisateur1 pourront modifier les pages 1, 2 et 3 (c'est un exemple...).
Un autre groupe utilisateur2 ne pourra modifier que les pages 4, 5 et 6. etc...

Je voudrais qu'il en soit de même pour les articles. En gros que le groupe utilisateur1 ne puisse pas avoir accès aux articles écrits par utilisateur2 et inversement.

Cela est-il possible ?
merci d'avance.

Dernière modification par jack66 (30/03/2012 16:37:13)

Hors ligne

 

#2 30/03/2012 13:07:55

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 5 471
Site Web

Hors ligne

#3 30/03/2012 15:19:37

jack66
Membre
Inscription : 30/03/2012
Messages : 11

Re : Articles liés aux permissions de groupes [résolu]

En modifiant le code du fichier editarticle.tpl (dans le module News), il est possible de créer une condition d'affichage de la liste des articles en fonction des utilisateurs (ça relève de la bidouille mais ça marche).

J'ai créé une balise utilisateur en php qui me permet de transférer les variables dans ce template.

Dès lors, ma question se résume à comment récupérer la variable id utilisateur (backend) ou id groupe en php ?

merci.

Hors ligne

#4 30/03/2012 16:34:37

jack66
Membre
Inscription : 30/03/2012
Messages : 11

Re : Articles liés aux permissions de groupes [résolu]

Bon je me réponds.

Cela relève de la bidouille mais ça marche.

Il faut créer des catégories d'article qui ont le même nom que les utilisateurs.
Exemple : l'utilisateur 'laurent' aura une catégorie d'article s’appelant 'laurent'.

On crée une balise utilisateur test (par exemple) qui récupère le nom d'utilisateur par la fonction $_SESSION :

if(isset($_SESSION['cms_admin_username']))
{
$userjack=$_SESSION['cms_admin_username'];
}

if($userjack=='admin') // si l'utilisateur est admin alors il a le droit de voir tous les articles.
{
$userjack='all';
}

$smarty->assign('userjack', $userjack);


On fait appel à la balise utilisateur dans le fichier template des News : articlelist.tpl

à la ligne 75 :

    {foreach from=$items item=entry}

    {test} on appelle la balise utilisateur qui nous donne le nom de l'utilisateur

    {if $entry->category|strstr:$userjack or $userjack|strstr:'all'} on compare avec la catégorie qui doit porter le même nom ou all pour tout voir (admin)

        <tr class="{$entry->rowclass}">
            <td>{$entry->title}</td>
            <td>{$entry->u_postdate|cms_date_format}</td>

......
        {/if}
        {/foreach}


Voilà cela permet à l'utilisateur 'laurent' de ne voir que les articles de la catégorie 'laurent'
Rien n'empêche de créer des sous catégories avec des noms différents. L'essentiel étant que la catégorie mère porte le nom de l'utilisateur.
admin quant à lui peut tout voir.

Bon c'est sûr, c'est pas propre et cela relève d'une pirouette mais en tout cas ça fonctionne pour moi.
a++

Hors ligne

#5 30/03/2012 18:32:09

jissey
Administrateur
Lieu : Volx
Inscription : 30/10/2009
Messages : 1 700
Site Web

Re : Articles liés aux permissions de groupes [résolu]

Bonjour, bienvenue et bien joué  smile
Pour ne pas modifier la source du template qui pourrait être écrasée lors d'une mise à jour tu dois créer un dossier module_custom à la racine du site et recréer l'arborescence des modules.
Cela n'est valable que pour les dossiers lang et templates.
Dans ton cas :
module_custom/News/templates/articlelist.tpl.

Voilà voilà


Envie de remercier les autres membres pour un petit coup de main ? Facile... faites un don pour aider au financement de notre stand aux CMS Days le 25 juin à Paris !. Tout l'argent récolté est réinvesti entièrement pour vous. Tout le monde est bénévole sur ce forum !

Formateur CMSMS à Manosque, Nice, Marseille, Lyon, Dijon ...
Création de site avec CMSMS.

Module UsersGuide. Un fork de OwnersManual.

Hors ligne

#6 30/03/2012 22:00:05

jack66
Membre
Inscription : 30/03/2012
Messages : 11

Re : Articles liés aux permissions de groupes [résolu]

merci, effectivement je n'avais pas pensé aux mises à jour.

On doit également mettre l'appel à la balise {test} hors de la boucle foreach de articlelist.tpl, comme ça c'est mieux :

à la ligne 75 :

    {test} on appelle la balise utilisateur qui nous donne le nom de l'utilisateur

    {foreach from=$items item=entry}


    {if $entry->category|strstr:$userjack or $userjack|strstr:'all'} on compare avec la catégorie qui doit porter le même nom ou all pour tout voir (admin)

        <tr class="{$entry->rowclass}">
            <td>{$entry->title}</td>
            <td>{$entry->u_postdate|cms_date_format}</td>

......
        {/if}
        {/foreach}


a++

Hors ligne

#7 31/03/2012 00:41:02

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 5 471
Site Web

Re : Articles liés aux permissions de groupes [résolu]

sympa ce petit hack, c'est propre et tu touches pas au code source...

chapeau monsieur smile

Nous autoriserais tu à en faire une note sur le blog (en te nommant ça va de soi)

je te laisse de toute façon quelques jours le temps de prendre le recul sur ton propre code et éventuellement l'améliorer si tu vois que c'est nécessaire.

Hors ligne

#8 31/03/2012 20:51:42

jack66
Membre
Inscription : 30/03/2012
Messages : 11

Re : Articles liés aux permissions de groupes [résolu]

aucun problème pour le blog j'en serais même très fier pour ma première contribution wink . Il reste encore des détails à améliorer :

- Lorsqu'un utilisateur crée un article, il faut que la catégorie proposée par défaut (et ses sous-catégories) corresponde à cet utilisateur. De manière à éviter qu'il crée un article dans la catégorie d'un autre utilisateur.

- désactiver l'onglet catégories permettant de créer ou modifier des catégories existantes.

- cette astuce étant très ciblée, il faut éviter que des sous-catégories portent le même nom qu'une catégorie mère, auquel cas ça deviendrait vite la pagaille.

Je mettrai en ligne prochainement ces modifications.
a++

Jack66

Hors ligne

#9 31/03/2012 21:51:25

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 5 471
Site Web

Hors ligne

#10 31/03/2012 22:54:09

jissey
Administrateur
Lieu : Volx
Inscription : 30/10/2009
Messages : 1 700
Site Web

Re : Articles liés aux permissions de groupes [résolu]

ça me parait difficile à réaliser sans toucher au code source.
Dans ce cas, peut-être vaudrait-il mieux utiliser un générateur genre listit.
http://dev.cmsmadesimple.org/projects/listit2


Envie de remercier les autres membres pour un petit coup de main ? Facile... faites un don pour aider au financement de notre stand aux CMS Days le 25 juin à Paris !. Tout l'argent récolté est réinvesti entièrement pour vous. Tout le monde est bénévole sur ce forum !

Formateur CMSMS à Manosque, Nice, Marseille, Lyon, Dijon ...
Création de site avec CMSMS.

Module UsersGuide. Un fork de OwnersManual.

Hors ligne

#11 04/04/2012 17:06:57

jack66
Membre
Inscription : 30/03/2012
Messages : 11

Re : Articles liés aux permissions de groupes [résolu]

Exact, j'ai été obligé de modifier le code source. Ce serait bien qu'un module soit développé pour ça. Je pense que ça peut servir à pas mal de monde.
En tout cas merci pour le coup de main.
a+

Hors ligne

Pied de page des forums

  Flux Rss Twitter FaceBook
fermer

4 versions en démonstration

Ce n'est pas moins de 4 versions de CmsMadeSimple que nous vous proposons de tester de suite sur notre nouvelle plateforme de démonstration. [lire la suite]