UserEditProfileController.class [Réglé]
modification de ce fichier
Support Général
petitnouveau Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre petitnouveau
- Inscrit le : 23/03/2015
- Groupes :
Je travaille actuellement sur le fichier UserEditProfileController.class.
Afin que certaines rubriques ne soient visibles que par le modérateur au minimum.
Voilà où j'en suis pour l'instant.

A partir de là mes différents essais me retournent une page blanche.
J'utilise if (AppContext::get_current_user()->check_level(User::MODERATOR_LEVEL))
Je tiens à préciser que j'ai trouvé le test en fouillant dans les autres php
J'aimerais supprimer les rubriques Nouveau mot de passe et confirmer le mot de passe, ainsi que Newsletters et supprimer l'avatar courant.
Voici mon fichier UserEditProfileController.class. actuel.
Caché :
<?php
/*##################################################
* UserEditProfileController.class.php
* -------------------
* begin : October 09, 2011
* copyright : (C) 2011 K�vin MASSY
* email : kevin.massy@phpboost.com
*
*
###################################################
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
###################################################*/
class UserEditProfileController extends AbstractController
{
private $lang;
/**
* @var HTMLForm
*/
private $form;
/**
* @var FormButtonDefaultSubmit
*/
private $submit_button;
private $user;
public function execute(HTTPRequestCustom $request)
{
$this->init();
$user_id = $request->get_getint('user_id', AppContext::get_current_user()->get_attribute('user_id'));
try {
$this->user = UserService::get_user('WHERE user_aprob = 1 AND user_id=:id', array('id' => $user_id));
} catch (RowNotFoundException $e) {
$error_controller = PHPBoostErrors::unexisting_member();
DispatchManager::redirect($error_controller);
}
if (!$this->check_authorizations($user_id))
{
$error_controller = PHPBoostErrors::user_not_authorized();
DispatchManager::redirect($error_controller);
}
$this->build_form();
if ($this->submit_button->has_been_submited() && $this->form->validate())
{
$this->save();
}
$this->tpl->put('FORM', $this->form->display());
return $this->build_response();
}
private function init()
{
$this->lang = LangLoader::get('user-common');
$this->tpl = new StringTemplate('# INCLUDE MSG # # INCLUDE FORM #');
$this->tpl->add_lang($this->lang);
$this->user_accounts_config = UserAccountsConfig::load();
}
private function check_authorizations()
{
return AppContext::get_current_user()->get_id() == $this->user->get_id() || AppContext::get_current_user()->check_level(User::ADMIN_LEVEL);
}
private function build_form()
{
$form = new HTMLForm('member_edit_profile');
$fieldset = new FormFieldsetHTML('edit_profile', $this->lang['profile.edit']);
$form->add_fieldset($fieldset);
if (AppContext::get_current_user()->check_level(User::MODERATOR_LEVEL)) //Si il n'est pas modérateur supprime la ligne email
{//Si il n'est pas modérateur supprime la ligne email
$fieldset->add_field(new FormFieldTextEditor('email', $this->lang['email'], $this->user->get_email(), array(
'required' => true, 'maxlength' => 255, 'description' => LangLoader::get_message('valid', 'main')),
array(new FormFieldConstraintMailAddress(), new FormFieldConstraintMailExist($this->user->get_id()))
));
}//Fin Si il n'est pas modérateur supprime la ligne email
if (AppContext::get_current_user()->check_level(User::MODERATOR_LEVEL)) //Si il n'est pas modérateur supprime la ligne old password
{//Si il n'est pas modérateur supprime la ligne old password
$fieldset->add_field(new FormFieldPasswordEditor('old_password', $this->lang['password.old'], '', array(
'maxlength' => 25, 'description' => $this->lang['password.old.explain']))
);
}//Fin Si il n'est pas modérateur supprime la ligne old password
$fieldset->add_field($new_password = new FormFieldPasswordEditor('new_password', $this->lang['password.new'], ''));
$fieldset->add_field($new_password_bis = new FormFieldPasswordEditor('new_password_bis', $this->lang['password.confirm'], ''));
if (AppContext::get_current_user()->check_level(User::MODERATOR_LEVEL)) //Si il n'est pas modérateur supprime le paragraphe options
{ //Si il n'est pas modérateur supprime le paragraphe options
$fieldset->add_field(new FormFieldCheckbox('user_hide_mail', $this->lang['email.hide'], !$this->user->get_show_email()));
$fieldset->add_field(new FormFieldCheckbox('delete_account', $this->lang['delete-account'], FormFieldCheckbox::UNCHECKED));
$options_fieldset = new FormFieldsetHTML('options', LangLoader::get_message('options', 'main'));
$form->add_fieldset($options_fieldset);
$options_fieldset->add_field(new FormFieldTimezone('timezone', $this->lang['timezone.choice'],
$this->user->get_timezone(), array('description' => $this->lang['timezone.choice.explain'])
));
if (count(ThemesManager::get_activated_and_authorized_themes_map()) > 1)
{
$options_fieldset->add_field(new FormFieldThemesSelect('theme', $this->lang['theme'], $this->user->get_theme(),
array('check_authorizations' => true, 'events' => array('change' => $this->build_javascript_picture_themes()))
));
$options_fieldset->add_field(new FormFieldFree('preview_theme', $this->lang['theme.preview'], '<img id="img_theme" src="'. $this->get_picture_theme($this->user->get_theme()) .'" alt="" style="vertical-align
; max-height:180px;" />'));
}
$options_fieldset->add_field(new FormFieldEditors('text-editor', $this->lang['text-editor'], $this->user->get_editor()));
$options_fieldset->add_field(new FormFieldLangsSelect('lang', $this->lang['lang'], $this->user->get_locale(), array('check_authorizations' => true)));
}//fin si il n'est pas modérateur supprime le paragraphe options
$member_extended_field = new MemberExtendedField();
$member_extended_field->set_template($form);
$member_extended_field->set_user_id($this->user->get_id());
MemberExtendedFieldsService::display_form_fields($member_extended_field);
$this->submit_button = new FormButtonDefaultSubmit();
$form->add_constraint(new FormConstraintFieldsEquality($new_password, $new_password_bis));
$form->add_button($this->submit_button);
$form->add_button(new FormButtonReset());
$this->form = $form;
}
private function save()
{
$redirect = true;
$user_id = $this->user->get_id();
if ($this->form->get_value('delete_account'))
{
UserService::delete_account('WHERE user_id=:user_id', array('user_id' => $user_id));
$upload = new Uploads();
$upload->Empty_folder_member($user_id);
}
else
{
if ($this->form->has_field('theme'))
{
$this->user->set_theme($this->form->get_value('theme')->get_raw_value());
AppContext::get_current_user()->set_theme($this->form->get_value('theme')->get_raw_value());
}
$this->user->set_locale($this->form->get_value('lang')->get_raw_value());
AppContext::get_current_user()->set_locale($this->form->get_value('lang')->get_raw_value());
$this->user->set_email($this->form->get_value('email'));
$this->user->set_locale($this->form->get_value('lang')->get_raw_value());
$this->user->set_editor($this->form->get_value('text-editor')->get_raw_value());
$this->user->set_show_email(!$this->form->get_value('user_hide_mail'));
$this->user->set_timezone($this->form->get_value('timezone')->get_raw_value());
UserService::update($this->user, 'WHERE user_id=:id', array('id' => $user_id));
}
try {
MemberExtendedFieldsService::register_fields($this->form, $user_id);
} catch (MemberExtendedFieldErrorsMessageException $e) {
$redirect = false;
$this->tpl->put('MSG', MessageHelper::display($e->getMessage(), MessageHelper::NOTICE));
}
$old_password = $this->form->get_value('old_password');
$new_password = $this->form->get_value('new_password');
if (!empty($old_password) && !empty($new_password))
{
$old_password_hashed = KeyGenerator::string_hash($old_password);
$user_authentification = UserService::get_user_authentification('WHERE user_id=:user_id', array('user_id' => $user_id));
if ($old_password_hashed == $user_authentification->get_password_hashed())
{
UserService::change_password(KeyGenerator::string_hash($new_password), 'WHERE user_id=:user_id', array('user_id' => $user_id));
$redirect = false;
$this->tpl->put('MSG', MessageHelper::display(LangLoader::get_message('process.success', 'status-messages-common'), MessageHelper::SUCCESS, 6));
}
else
{
$redirect = false;
$this->tpl->put('MSG', MessageHelper::display($this->lang['profile.edit.password.error'], MessageHelper::NOTICE));
}
}
StatsCache::invalidate();
if ($redirect)
{
AppContext::get_response()->redirect(UserUrlBuilder::edit_profile($user_id));
}
}
private function build_response()
{
$response = new UserDisplayResponse();
$response->set_page_title($this->lang['profile.edit']);
$response->add_breadcrumb($this->lang['user'], UserUrlBuilder::users()->rel());
$response->add_breadcrumb($this->lang['profile.edit'], UserUrlBuilder::edit_profile($this->user->get_id())->rel());
return $response->display($this->tpl);
}
private function build_javascript_picture_themes()
{
$text = 'var theme = new Array;' . "n";
foreach (ThemesManager::get_activated_themes_map() as $theme)
{
$picture = $theme->get_configuration()->get_first_picture();
$text .= 'theme["' . $theme->get_id() . '"] = "' . TPL_PATH_TO_ROOT .'/templates/' . $theme->get_id() . '/' . $picture . '";' . "n";
}
$text .= 'var theme_id = HTMLForms.getField("theme").getValue(); document.images['img_theme'].src = theme[theme_id];';
return $text;
}
private function get_picture_theme($user_theme)
{
$picture = ThemesManager::get_theme($user_theme)->get_configuration()->get_first_picture();
return TPL_PATH_TO_ROOT .'/templates/' . $user_theme . '/' . $picture;
}
}
?>
/*##################################################
* UserEditProfileController.class.php
* -------------------
* begin : October 09, 2011
* copyright : (C) 2011 K�vin MASSY
* email : kevin.massy@phpboost.com
*
*
###################################################
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
###################################################*/
class UserEditProfileController extends AbstractController
{
private $lang;
/**
* @var HTMLForm
*/
private $form;
/**
* @var FormButtonDefaultSubmit
*/
private $submit_button;
private $user;
public function execute(HTTPRequestCustom $request)
{
$this->init();
$user_id = $request->get_getint('user_id', AppContext::get_current_user()->get_attribute('user_id'));
try {
$this->user = UserService::get_user('WHERE user_aprob = 1 AND user_id=:id', array('id' => $user_id));
} catch (RowNotFoundException $e) {
$error_controller = PHPBoostErrors::unexisting_member();
DispatchManager::redirect($error_controller);
}
if (!$this->check_authorizations($user_id))
{
$error_controller = PHPBoostErrors::user_not_authorized();
DispatchManager::redirect($error_controller);
}
$this->build_form();
if ($this->submit_button->has_been_submited() && $this->form->validate())
{
$this->save();
}
$this->tpl->put('FORM', $this->form->display());
return $this->build_response();
}
private function init()
{
$this->lang = LangLoader::get('user-common');
$this->tpl = new StringTemplate('# INCLUDE MSG # # INCLUDE FORM #');
$this->tpl->add_lang($this->lang);
$this->user_accounts_config = UserAccountsConfig::load();
}
private function check_authorizations()
{
return AppContext::get_current_user()->get_id() == $this->user->get_id() || AppContext::get_current_user()->check_level(User::ADMIN_LEVEL);
}
private function build_form()
{
$form = new HTMLForm('member_edit_profile');
$fieldset = new FormFieldsetHTML('edit_profile', $this->lang['profile.edit']);
$form->add_fieldset($fieldset);
if (AppContext::get_current_user()->check_level(User::MODERATOR_LEVEL)) //Si il n'est pas modérateur supprime la ligne email
{//Si il n'est pas modérateur supprime la ligne email
$fieldset->add_field(new FormFieldTextEditor('email', $this->lang['email'], $this->user->get_email(), array(
'required' => true, 'maxlength' => 255, 'description' => LangLoader::get_message('valid', 'main')),
array(new FormFieldConstraintMailAddress(), new FormFieldConstraintMailExist($this->user->get_id()))
));
}//Fin Si il n'est pas modérateur supprime la ligne email
if (AppContext::get_current_user()->check_level(User::MODERATOR_LEVEL)) //Si il n'est pas modérateur supprime la ligne old password
{//Si il n'est pas modérateur supprime la ligne old password
$fieldset->add_field(new FormFieldPasswordEditor('old_password', $this->lang['password.old'], '', array(
'maxlength' => 25, 'description' => $this->lang['password.old.explain']))
);
}//Fin Si il n'est pas modérateur supprime la ligne old password
$fieldset->add_field($new_password = new FormFieldPasswordEditor('new_password', $this->lang['password.new'], ''));
$fieldset->add_field($new_password_bis = new FormFieldPasswordEditor('new_password_bis', $this->lang['password.confirm'], ''));
if (AppContext::get_current_user()->check_level(User::MODERATOR_LEVEL)) //Si il n'est pas modérateur supprime le paragraphe options
{ //Si il n'est pas modérateur supprime le paragraphe options
$fieldset->add_field(new FormFieldCheckbox('user_hide_mail', $this->lang['email.hide'], !$this->user->get_show_email()));
$fieldset->add_field(new FormFieldCheckbox('delete_account', $this->lang['delete-account'], FormFieldCheckbox::UNCHECKED));
$options_fieldset = new FormFieldsetHTML('options', LangLoader::get_message('options', 'main'));
$form->add_fieldset($options_fieldset);
$options_fieldset->add_field(new FormFieldTimezone('timezone', $this->lang['timezone.choice'],
$this->user->get_timezone(), array('description' => $this->lang['timezone.choice.explain'])
));
if (count(ThemesManager::get_activated_and_authorized_themes_map()) > 1)
{
$options_fieldset->add_field(new FormFieldThemesSelect('theme', $this->lang['theme'], $this->user->get_theme(),
array('check_authorizations' => true, 'events' => array('change' => $this->build_javascript_picture_themes()))
));
$options_fieldset->add_field(new FormFieldFree('preview_theme', $this->lang['theme.preview'], '<img id="img_theme" src="'. $this->get_picture_theme($this->user->get_theme()) .'" alt="" style="vertical-align
; max-height:180px;" />'));}
$options_fieldset->add_field(new FormFieldEditors('text-editor', $this->lang['text-editor'], $this->user->get_editor()));
$options_fieldset->add_field(new FormFieldLangsSelect('lang', $this->lang['lang'], $this->user->get_locale(), array('check_authorizations' => true)));
}//fin si il n'est pas modérateur supprime le paragraphe options
$member_extended_field = new MemberExtendedField();
$member_extended_field->set_template($form);
$member_extended_field->set_user_id($this->user->get_id());
MemberExtendedFieldsService::display_form_fields($member_extended_field);
$this->submit_button = new FormButtonDefaultSubmit();
$form->add_constraint(new FormConstraintFieldsEquality($new_password, $new_password_bis));
$form->add_button($this->submit_button);
$form->add_button(new FormButtonReset());
$this->form = $form;
}
private function save()
{
$redirect = true;
$user_id = $this->user->get_id();
if ($this->form->get_value('delete_account'))
{
UserService::delete_account('WHERE user_id=:user_id', array('user_id' => $user_id));
$upload = new Uploads();
$upload->Empty_folder_member($user_id);
}
else
{
if ($this->form->has_field('theme'))
{
$this->user->set_theme($this->form->get_value('theme')->get_raw_value());
AppContext::get_current_user()->set_theme($this->form->get_value('theme')->get_raw_value());
}
$this->user->set_locale($this->form->get_value('lang')->get_raw_value());
AppContext::get_current_user()->set_locale($this->form->get_value('lang')->get_raw_value());
$this->user->set_email($this->form->get_value('email'));
$this->user->set_locale($this->form->get_value('lang')->get_raw_value());
$this->user->set_editor($this->form->get_value('text-editor')->get_raw_value());
$this->user->set_show_email(!$this->form->get_value('user_hide_mail'));
$this->user->set_timezone($this->form->get_value('timezone')->get_raw_value());
UserService::update($this->user, 'WHERE user_id=:id', array('id' => $user_id));
}
try {
MemberExtendedFieldsService::register_fields($this->form, $user_id);
} catch (MemberExtendedFieldErrorsMessageException $e) {
$redirect = false;
$this->tpl->put('MSG', MessageHelper::display($e->getMessage(), MessageHelper::NOTICE));
}
$old_password = $this->form->get_value('old_password');
$new_password = $this->form->get_value('new_password');
if (!empty($old_password) && !empty($new_password))
{
$old_password_hashed = KeyGenerator::string_hash($old_password);
$user_authentification = UserService::get_user_authentification('WHERE user_id=:user_id', array('user_id' => $user_id));
if ($old_password_hashed == $user_authentification->get_password_hashed())
{
UserService::change_password(KeyGenerator::string_hash($new_password), 'WHERE user_id=:user_id', array('user_id' => $user_id));
$redirect = false;
$this->tpl->put('MSG', MessageHelper::display(LangLoader::get_message('process.success', 'status-messages-common'), MessageHelper::SUCCESS, 6));
}
else
{
$redirect = false;
$this->tpl->put('MSG', MessageHelper::display($this->lang['profile.edit.password.error'], MessageHelper::NOTICE));
}
}
StatsCache::invalidate();
if ($redirect)
{
AppContext::get_response()->redirect(UserUrlBuilder::edit_profile($user_id));
}
}
private function build_response()
{
$response = new UserDisplayResponse();
$response->set_page_title($this->lang['profile.edit']);
$response->add_breadcrumb($this->lang['user'], UserUrlBuilder::users()->rel());
$response->add_breadcrumb($this->lang['profile.edit'], UserUrlBuilder::edit_profile($this->user->get_id())->rel());
return $response->display($this->tpl);
}
private function build_javascript_picture_themes()
{
$text = 'var theme = new Array;' . "n";
foreach (ThemesManager::get_activated_themes_map() as $theme)
{
$picture = $theme->get_configuration()->get_first_picture();
$text .= 'theme["' . $theme->get_id() . '"] = "' . TPL_PATH_TO_ROOT .'/templates/' . $theme->get_id() . '/' . $picture . '";' . "n";
}
$text .= 'var theme_id = HTMLForms.getField("theme").getValue(); document.images['img_theme'].src = theme[theme_id];';
return $text;
}
private function get_picture_theme($user_theme)
{
$picture = ThemesManager::get_theme($user_theme)->get_configuration()->get_first_picture();
return TPL_PATH_TO_ROOT .'/templates/' . $user_theme . '/' . $picture;
}
}
?>
Merci d'avance pour vos réponses.
Édité par petitnouveau Le 31/07/2015 à 18h43
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
Hum pourquoi faire une tel modification qui handicape l'utilisateur ?
Sinon je pense que vous avez une page blanche car la fonction save() n'arrive pas à lire les champs que vous masquer vu qu'il ne s'affiche plus sur le site (hors la fonction save() souhaite les lire, même si ils sont vide).
Sinon pour faire disparaitre les newsletter c'est programmable dans l'administration (sans toucher à PHP), pour l'avatar actuelle on peu tout simplement le masquer en CSS (je vois pas pourquoi vous voulez le masquer, mais soit), et enfin empêcher un membre de changer son mot de passe me parrait un peu extrême et surtout pas très légale en France.
P.S. là sur votre screen c'est la vue administrateur que seul les administrateur peuvent avoir, si d'autre membres ont cette vue c'est que vous avez dégager les permission dans les fichiers PHP.
Cordialement, janus57
petitnouveau Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre petitnouveau
- Inscrit le : 23/03/2015
- Groupes :
j'aurais peut être dû préciser que le site ne sera pas sur internet que je suis le seul à pouvoir inscrire et donc je donne le mot de passe.
J'essaie de "sécuriser" au maximum, car je connais le public qui va avoir accès au site donc .......
Si c trop complexe je vais rendre inaccessible aux membres "mon profil" du fichier UserHomeProfileController.tpl
Si c réalisable sans trop de difficultés merci de m'aiguiller
Merci d'avance
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
tout est possible, mais pourquoi ne pas simplement masquer les champs via du CSS ?
Cela évite de toucher au PHP et seule un utilisateur qui regarde le code source et sait comment modifier les champs (ou la requête de POST) pourra à la limite utiliser les fonctions masqué via CSS (cependant je comprend toujours pas en quoi c'est sécurisé de ne pas laisser le choix à l'utilisateur de changer son password, même dans les lycée/collège on laisse l'élève changer son password de session).
Perso je cherche toujours les moyens les plus simple avant de passer au modifs PHP qui empêche ou rend difficile un upgrade du CMS.
Cordialement, janus57
Édité par janus57 Le 27/07/2015 à 18h40
petitnouveau Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre petitnouveau
- Inscrit le : 23/03/2015
- Groupes :
Quand je parle de "sécurité" c plus pour les incivilités et encore je reste poli, si je pouvais me passer de ces modifications je m'en passerais bien mais ....... je connais malheureusement trop bien le public à qui j'ai affaire donc.
J'ai déjà modifié les messages privées, pour les mêmes raisons.
Pourrais tu me dire quel css je dois toucher et dans quelle partie, merci d'avance pour ta collaboration.
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
après vérification je confirme que en CSS c'est possible (les champs n'ont pas les même ID pour les admins et les simple membres).
Donc niveau CSS je dirais que ceci devrait fonctionner (et donc va masquer les champs, sans les supprimer) :
Code CSS :
#member_edit_profile_old_password_field, #member_edit_profile_new_password_field, #member_edit_profile_new_password_bis_field, #member_edit_profile_current_avatar_field { display: none; }
Cela va masquer "Ancien mot de passe" + "Nouveau mot de passe" + "Confirmer le mot de passe" + "Avatar actuel"
Cordialement, janus57
petitnouveau Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre petitnouveau
- Inscrit le : 23/03/2015
- Groupes :
Malheureusement cela masque aussi pour les admins.
Mais cela ne me pose pas de problème car je peux passer par l'interface admin.
En tout cas j'ai appris une nouvelle chose grâce à toi.
Merci encore Janus
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
Citation :
Malheureusement cela masque aussi pour les admins.
non pas dans la partie administrateur ou en édition sur un profil autre que son propre profil.
Les ID CSS sont présent uniquement sur notre propre profil (j'ai vérifié) qu'on soit simple membre ou admin, donc si on veux éditer le profil d'un membre on tombe forcément sur l'interface admin qui déjà n'a pas 3 cases (ancien/nouveau et confirmation du nouveau pass) et surtout n'a pas les même ID CSS.
Ce test a été réalisé sur la demo public (http://demo.phpboost.com/), en étant connecté avec le compte "admin1" et en voulant éditer "member1" (http://demo.phpboost.com/admin/member/?url=/6/edit/), on tombe directe en interface admin et idem avec le profil "admin1" (http://demo.phpboost.com/admin/member/?url=/2/edit/).
Cordialement, janus57
petitnouveau Membre non connecté
Booster Fronde
-
Booster Fronde
- Voir le profil du membre petitnouveau
- Inscrit le : 23/03/2015
- Groupes :
tout a fait d'accord avec toi si je suis connecté en admin et que je modifie un profil.
par contre moi je parle de l' édition du profil dans ce cas là

voila ce que j'obtiens et ceci est valable de l'admin aux membres en passant par le modo.

donc mot de passe et le reste sont bien cachés.
Comme je te l'ai déjà dit cela ne me pose aucun pb, j'ai ce que je voulais les membres ne pourront pas changer leur mot de passe
Merci encore
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie