07/09/2010, 14:55:45
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.
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.
Code :
//************************************************************************
//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 );
}
{SEO}
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)