Submitted by jayjay1977 on
Bonjour,
En fait, je pensais que ça aurait été simple mais ... comment empecher un utilisateur d'accéder et d'éditer son profil.
Et enfin supprimer le lien Mon Compte dans le menu.
De plus ou se situe le code qui perment de modifier l'affichage du nom d'utilisateur dans le bloc menu (je voudrais rajouter espace perso de : le_login).
D'avance merci
Jérôme
Bonjour, Moi aussi j'ai le
Permalien Soumis par colibri27000 le 10 Décembre, 2007 - 15:34
Bonjour,
Moi aussi j'ai le même souci, je souhaite interdire à un utilisateur d'éditer son profil, mais je n'y arrive pas. Je suis allée voir dans les contrôles d'accès il y a juste la possibilité d'empêcher un utilisateur de changer son identifiant.
Merci pour vos réponses
Coco
Je crois me souvenir que tu
Permalien Soumis par tostinni le 10 Décembre, 2007 - 20:39
Je crois me souvenir que tu peux definir les champs du profile comme etant des champs que seul l'admin peut modifier...
Regarde dans le module profile
Bonsoir, merci pour ta
Permalien Soumis par colibri27000 le 16 Décembre, 2007 - 22:26
Bonsoir,
merci pour ta réponse, mais ça ne fait que rajouter des onglets supplémentaires où tu peux personnaliser les champs.
Comme j'ai rajouté deux blocs de menus visibles uniquement par certaines personnes, je voulais pas les utilisateurs authentifiés puissent éditer leur fiche de profil et faire afficher certains blocs de menus masqués.
Est ce que quelqu'un a déjà rencontré ce problème ?
Merci pour vos réponses
Coco
Une des solutions possible
Permalien Soumis par tomdeb le 17 Décembre, 2007 - 00:08
Une des solutions possible est de creer un module special a ton site et d'y utiliser le hook hook_form_alter.
Dans ton cas, le formulaire qui t'interesse est user_edit
Tu pourras ainsi modifier ce formulaire afin de rendre certains elements ineditables.
J'utilises cette methode afin d'empecher certains utilisateurs de modifier leur addresse email.
Salut tomdeb Je te remercie
Permalien Soumis par colibri27000 le 26 Décembre, 2007 - 22:15
Salut tomdeb
Je te remercie pour ta réponse. J'ai essayé de comprendre ce qu'il fallait faire mais en vain je n'ai vraiment rien pigé.
Est ce qu'il faut créer un nouveau module avec les codes ci-dessous ? Que fait ce module ? J'ai activé le module, mais je ne vois rien dans les paramètres d'administration.
?php
/**
* Override the printing of the forms in the user edit page
*/
function custom_user_profile_edit_page_form_alter($form_id, &$form)
{
// Is it the user_edit form we show
if($form_id == 'user_edit')
{
// Some kind of check so we don't unset the wrong variable, probably pretty stupid..
if(is_array($form['mail']['mass_contact_optout']))
{
unset($form['mail']);
}
if(is_array($form['locale']['language']))
{
unset($form['locale']);
}
if(is_array($form['timezone']['timezone']))
{
unset($form['timezone']);
}
if(is_array($form['contact']['contact']))
{
unset($form[contact]);
}
}
// When we register a new user
if($form_id == 'user_register')
{
if(is_array($form['mail']['mass_contact_optout']))
{
unset($form['mail']);
}
}
}
?>
Merci pour vos réponses
coco
Oui, t'as tout compris,
Permalien Soumis par tomdeb le 27 Décembre, 2007 - 11:10
Oui, t'as tout compris, quelque chose comme ca devrait marcher.
Je te conseille fortement t'utiliser les modules devel et devel_forminspect des que tu commence a modifier des formulaires.