* @version $Id$
* @access public
* @license http://opensource.org/licenses/gpl-3.0.html
*/
?>
GetSessionElement('logout_token')) exit('no way !');
$GLOBALS['l21auth']->logOut();
header("Location: ".get_referer(true));
exit;
}
SetHTMLTitle(_t('user','section')); // set HTML title
//////////////////////////////////////////
/////affichage formulaire Password
//////////////////////////////////////////
if(ActiveItemKey($GLOBALS['activeitem']) == 'forgot-password') {
include_once(override('../mail/mail_actions.php'));
include_once(override('../mail/send.php'));
$a = array();
setBreadcrumb(array(ucfirst(_t('user', 'forgot_pass')) => HrefMaker(array('rub'=> $GLOBALS['links'][U_L][ActiveItemKey($GLOBALS['activeitem'])]['linkvalue']))));
SetHTMLTitle(ucfirst(_t('user', 'forgot_pass'))); // set HTML title
echo '
'.ucfirst(_t('user', 'forgot_pass')).'
';
if(isset($_REQUEST['token'])) {
$r=$GLOBALS['sql_object']->DBSelect(SQL_get_UserInfoPK($_REQUEST['token']));
if($r != 0) {
$user_email=$r[0]['profile_email'];
$user_login=$r[0]['user_login'];
$user_id=$r[0]['user_id'];
include_once('../class/class.user.php');
$user = new user;
$a['password'] = $user->GetNewPassword();
$res = $user->UpdateUserPassword($user_id, $a['password'], $GLOBALS['sql_object']);
if($res) {
$user->resetPasskey($user_id, $GLOBALS['sql_object']);
$a['action'] = 'change_pass';
$a['recipient'] = $user_email;
$a['login'] = $user_login;
$emailContainer = prepare_email($a);
$r = send_email($emailContainer);
echo ''._t('user', 'new_password_confirmation').'
';
}
} else {
ReloadIndex('public');
}
} else {
echo forgotPass();
}
}
//////////////////////////////////////////
/////affichage profil utilisateur
//////////////////////////////////////////
if(ActiveItemKey($GLOBALS['activeitem']) == 'user-profile') {
setBreadcrumb(array(ucfirst(_t('user', 'profile')) => HrefMaker(array('rub'=> $GLOBALS['links'][U_L][ActiveItemKey($GLOBALS['activeitem'])]['linkvalue']))));
/** préparation des variables
* $id -> default -1
**/
if(isset($_REQUEST['id'])) $id=$_REQUEST['id']; else $id=-1;
/** Détail d'un utilisateur
*/
if(isset($_REQUEST['id'])) {
// set HTML Title
$result=$GLOBALS['sql_object']->DBSelect(SQL_getUserLogin($id));
if(!is_array($result)) error_redirect(); // if no record found, we redirect to error page
SetHTMLTitle(formatText($result[0]['user_login'], '2HTML'));
DisplayInfoUser($id);
}
}
//////////////////////////////////////////
/////affichage formulaire inscription utilisateur
//////////////////////////////////////////
if(ActiveItemKey($GLOBALS['activeitem']) == 'user-registration') {
include_once('../class/class.user.php');
$user_object= new user;
if(defined('FREE_REGISTRATION') && FREE_REGISTRATION == 0) ReloadIndex('public');
if(isset($_POST['valid']) || isset($_POST['valid_x'])) {
$fired = true;
include_once(override('../mail/mail_actions.php'));
include_once(override('../mail/send.php'));
$a = array();
$data_table_user[0] = $_POST['login'];
$data_table_user[1] = $_POST['email'];
$data_table_user[2] = 'N'; // Affichage public de l'email (par défaut Non)
$data_table_user[3] = $_POST['firstname'];
$data_table_user[4] = $_POST['lastname'];
if(isset($_POST['leisures'])) $data_table_user['leisures'] = $_POST['leisures'];
if(isset($_POST['job'])) $data_table_user['job'] = $_POST['job'];
if(!empty($_POST['password'])) $data_table_user[5] = $_POST['password'];
else $data_table_user[5] = $user_object -> GetNewPassword();
if(defined('PASSWD_CONFIRM') && PASSWD_CONFIRM != 0) $pass_check = $_POST['password_check'];
else $pass_check = $data_table_user[5];
$result = $user_object->checkPasswordValidity($data_table_user[5], $pass_check);
if($result === true ) $result=$user_object->CheckDataIntegrity($data_table_user, $GLOBALS['sql_object']);
$data_table_right=$user_object->InitUserRight('SIMPLE_USER');
if(!isset($_POST['gdpr-ok'])) $result = _t('user', 'accept_gdpr');
// prevent spam only if enabled
if(defined('REGISTRATION_ANTISPAM') && REGISTRATION_ANTISPAM ==1) {
if($_SESSION['securityaction']!=md5($_POST['securitycode'])) {
$result =_t('security','message');
}
}
if($result===true) {
/** include envoi de mail */
$a['login'] = $data_table_user[0];
$a['recipient'] = $data_table_user[1];
$a['password'] = _t('user', 'secret_password'); // $data_table_user[5];
$a['action'] = 'add_user';
$emailContainer = prepare_email($a);
$r = send_email($emailContainer);
/** end mail */
$result=$user_object->AddUser($data_table_user, $data_table_right, $GLOBALS['sql_object']);
if(is_numeric($result)) $msg=''._t('user','confirm_public').'
'.PHP_EOL;
}
}
SetHTMLTitle(_t('divers','user_inscription'));
echo ''._t('divers','user_inscription').'
'.PHP_EOL;
echo '';
echo _t('user','h1_public_comment_insc');
echo '
';
if(isset($result) && !is_numeric($result)) {
echo ''.PHP_EOL;
echo $result.PHP_EOL;
echo '
'.PHP_EOL;
} else {
if(isset($msg)) echo $msg;
}
if(!isset($result) || (isset($result) && !is_numeric($result))) echo AuthForm('SUBSCRIBE', 1, $user_object);
}
//////////////////////////////////////////
/////affichage prefs utilisateurs
//////////////////////////////////////////
if(ActiveItemKey($GLOBALS['activeitem']) == 'user-prefs') {
setBreadcrumb(array(ucfirst(_t('divers', 'myprofile')) => HrefMaker(array('rub'=> $GLOBALS['links'][U_L][ActiveItemKey($GLOBALS['activeitem'])]['linkvalue']))));
SetHTMLTitle(_t('divers','auth'). ' / '._t('user','p_mod'));
$submitted = -1;
if(isset($_REQUEST['login'])) {
include_once('../class/class.auth.php');
if(isset($_POST['rememberme'])) {
$rememberme = true;
} else {
$rememberme = false;
}
$auth_value= $GLOBALS['l21auth']->logIn($_POST['login'], $_POST['password'], 'PUBLIC', $rememberme);
// be sure the referer starts with the right URL before using it
if(Stringy\Stringy::create($_POST['referer'], CHARSET)->startsWith(CURRENT_APP_URL)) {
$redirect = $_POST['referer'];
} else {
// handle redirect when user is not authenticated
if(isset($_GET['refer'])) $redirect = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
else $redirect = CURRENT_APP_URL;
}
if($auth_value === true) {
header("Location: ".safe_redirect($redirect));
exit;
}
}
if(isset($_SESSION['authenticated'])) {
if(isset($_REQUEST['current_email'])) {
$update_msg = ModifyProfile();
$submitted=1;
}
$content =''._t('user','p_mod'). ' - ' .$_SESSION['userlogin']. '
'.PHP_EOL;
$content.='';
$content.=_t('user','h1_public_comment');
$content.='
';
echo GetLinkSeeUserInfo(base64_decode($_SESSION['userid']));
echo $content;
// confirmation messages on deleting avatar
if(isset($_REQUEST['delavatar'])) {
deleteUserAvatar();
}
// confirmation message on changes
if(isset($_REQUEST['notifyUpdate'])) {
ChangeNotifySettings(base64_decode($_SESSION['userid']));
}
if(isset($update_msg)) {
echo $update_msg;
}
DisplayFormProfileUser(base64_decode($_SESSION['userid']), $submitted);
echo ''._t('user','preferences').'
'.PHP_EOL;
DisplayWorkgroupsSettings(base64_decode($_SESSION['userid']));
if(commentEnabled('contribute')) {
echo '
';
DisplayMyContribs(base64_decode($_SESSION['userid']));
}
} else {
echo ''._t('divers','auth').'
'.PHP_EOL;
echo '';
echo _t('user','h1_public_comment_auth');
echo '
';
if(isset($auth_value)) {
echo ''.PHP_EOL;
echo $auth_value.PHP_EOL;
echo '
'.PHP_EOL;
}
echo '';
echo '';
echo AuthForm('LOGON');
DisplayAuthTextInfo();
}
}
?>