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 CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. 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 07/09/2010 14:55:45

jissey
Administrateur
Lieu : Volx
Inscription : 30/10/2009
Messages : 2 532
Site Web

Autoriser du contenu en fonction des groupes de FEU

Bonjour,
j'ai fait un petit tag pour indiquer en début de contenu les groupes FEU autorisés à afficher la page.
Si l'utilisateur est logué et qu'il appartient au groupe ou à un des groupes autorisés, il verra le contenu, sinon, il sera redirigé.
C'est le principe de customContent mais en une seule balise pour facilité la saisie par l'utilisateur.
On peut mettre le tag dans le dropdown personnalisable de tinymce.
J'ai appelé le tag 'visible': {visible groupes='admin' redirect='login'} ou bien {visible groupes='admin,clients' redirect='non_autorise'}
Si redirect n'est pas renseigné, prévoir une redirection par défaut à la dernière ligne de code.
Comme l'autorisation peut se faire dans le contenu, la sécurité est mieux assurée.

//************************************************************************
//use to authorize to see a content with FEU
//parameters:
//groupes: the groups auhorized to see the content (separate with comma)
//redirect: the alias of the page to redirect if not authorized.
// use like this: {visible groupes='grp1,[grp2,...]' redirect='home'}
//you can put this tag at the begining of your content or template, or gabarit.
//************************************************************************
global $gCms;
$gn=array();
$authorized=false;
$feusers = $gCms->modules['FrontEndUsers']['object'];

//* we verify that user is logged in
if($uid = $feusers->LoggedInId()) {

//* we retrieve the groups of the user
$groupes=$feusers->GetMemberGroupsArray($uid);
//* the goupes are registered in an array
    foreach( $groupes as $grp )  {
     $gn[] = $feusers->GetGroupName($grp['groupid']);
        }
//* we retrieve the authorized groups for this page in an array.
$auth=(explode(',',$params['groupes']));

//* we search if there is intersection bettween the two groups
$intersec=array_intersect($auth, $gn);

//* the user is authorized if we find an intersection
if(count($intersec) > 0) $authorized=true;
}
if(!$authorized) {

//* if not authorized, we redirect to the page from redirect parameter.
if(isset($params['redirect'])) {
$id = ContentManager::GetPageIDFromAlias( $params['redirect'] );
    if( $id )
      {
    redirect_to_alias( $id );
    return;
      }
}
//* if no redirect parameter, we redirect to alias of the login page.
    redirect_to_alias( 43 );
}

Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)

Hors ligne

 

#2 07/09/2010 15:27:59

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : Autoriser du contenu en fonction des groupes de FEU

l'idée est intéressante smile

merci jissey pour ton partage d'info. Je tenterais de l'utiliser quand l'occasion s'en ferra ressentir smile

Je t'invites à le partager sur le wiki français et anglais wink

http://wiki.cmsmadesimple.org/index.php … _tags_here
http://wiki.cmsmadesimple.org/index.php … gs_here/fr

Hors ligne

#3 30/09/2010 18:27:51

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Re : Autoriser du contenu en fonction des groupes de FEU

Je l'utilise, c'est parfait.
Merci jissey smile

Hors ligne

#4 30/09/2010 21:25:42

jissey
Administrateur
Lieu : Volx
Inscription : 30/10/2009
Messages : 2 532
Site Web

Re : Autoriser du contenu en fonction des groupes de FEU

Merci JLV, c'est un honneur!
puisque c'est ça, j'en ai un autre.
C'est une déclinaison de celui-ci pour menu.
L'utilisateur renseigne dans la zone extra3 les groupes autorisés à voir la page dans le menu.
J'ai appelé ma balise visible_menu, donc, dans le gabarit du menu, il faut mettre {visible_menu groupes=$node->extra3}

//************************************************************************
//use to authorize a page to appear in the admin menu
//parameters:
// take parameter from the extra3 of the page that containthe groups auhorized to see the content (separate with comma)
//you must put this tag in the gabarit of your menu
//************************************************************************
global $gCms;
$gn=array();
$grps=$params['groupes'];
$autho=false;
print_r($node);
//we assume that there is something in extra3.
if($grps == '') {
$gCms->smarty->assign('autho', false);
return;
}

$feusers = $gCms->modules['FrontEndUsers']['object'];

//* we verify that user is logged in
if($uid = $feusers->LoggedInId()) {

//* if groupes parameter equal *, that mean that no matter the group.
if($grps == '*') {
$gCms->smarty->assign('autho', true);
return;
}

//* we retrieve the groups of the user
$groupes=$feusers->GetMemberGroupsArray($uid);
//* the goupes are registered in an array
    foreach( $groupes as $grp )  {
     $gn[] = $feusers->GetGroupName($grp['groupid']);
        }
//* we retrieve the authorized groups for this page in an array.
$auth=(explode(',',$grps));

//* we search if there is intersection bettween the two groups
$intersec=array_intersect($auth, $gn);

//* the user is authorized if we find an intersection
if(count($intersec) > 0) {
$gCms->smarty->assign('autho', true);
return;
}
}
$gCms->smarty->assign('autho', false);

et le gabarit de mon menu :

{* administration menu: call to visible_menu tag with extra3 parameter *} 
{if $count > 0}
<ul>
{foreach from=$nodelist item=node name="menu"}
{visible_menu groupes=$node->extra3}
{if $autho}
<li><a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if} class="menu_admin">{$node->menutext}</a></li>
{/if}
{/foreach}
<li>{cms_module module=FEUajaxplorer}</li>
</ul>
{/if}

Dernière modification par jissey (30/09/2010 21:30:00)


Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)

Hors ligne

#5 30/09/2010 21:31:19

jissey
Administrateur
Lieu : Volx
Inscription : 30/10/2009
Messages : 2 532
Site Web

Re : Autoriser du contenu en fonction des groupes de FEU

Bess, je n'ai pas trouvé comment les mettre dans les wikis! C'est ballot hein?


Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)

Hors ligne

#6 30/09/2010 21:51:23

square
Membre
Lieu : Toulouse
Inscription : 10/09/2008
Messages : 113
Site Web

Re : Autoriser du contenu en fonction des groupes de FEU

Très intéressant tout ça !

Merci jissey pour le partage

Hors ligne

#7 30/09/2010 22:08:52

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Re : Autoriser du contenu en fonction des groupes de FEU

@Jissey
Il me semble que tu n'as qu'à te loguer et tu pourras éditer.

Hors ligne

#8 01/10/2010 00:08:05

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 094
Site Web

Re : Autoriser du contenu en fonction des groupes de FEU

il te faut te connecter avec un identifiant : celui du forum anglais

ensuite tu vas sur mes liens : editer le contenu et hop !

Hors ligne

Pied de page des forums

  Flux Rss Twitter FaceBook