+ $page->changeTpl('platal/preferences.tpl');
+ $page->setTitle('Mes préférences');
+
+ if (Post::has('email_format')) {
+ $fmt = Post::s('email_format');
+ XDB::execute("UPDATE accounts
+ SET email_format = {?}
+ WHERE uid = {?}",
+ $fmt, S::v('uid'));
+ S::set('email_format', $fmt);
+ }
+
+ if (Post::has('rss')) {
+ $this->__set_rss_state(Post::b('rss'));
+ }
+
+ # FIXME: this code is not multi-domain compatible. We should decide how
+ # carva will extend to users not in the main domain.
+ $res = XDB::query("SELECT alias
+ FROM aliases
+ WHERE id = {?} AND FIND_IN_SET('bestalias', flags)",
+ S::user()->id());
+ $page->assign('bestalias', $res->fetchOneCell());
+ }
+
+ function handler_webredir(&$page)
+ {
+ $page->changeTpl('platal/webredirect.tpl');
+ $page->setTitle('Redirection de page WEB');
+
+ if (Env::v('submit') == 'Valider' && !Env::blank('url')) {
+ if (Env::blank('url')) {
+ $page->trigError('URL invalide');
+ } else {
+ $url = Env::t('url');
+ XDB::execute('REPLACE INTO carvas (uid, url)
+ VALUES ({?}, {?})',
+ S::i('uid'), $url);
+ S::logger()->log('carva_add', 'http://' . $url);
+ $page->trigSuccess("Redirection activée vers <a href='http://$url'>$url</a>");
+ }
+ } elseif (Env::v('submit') == 'Supprimer') {
+ XDB::execute('DELETE FROM carvas
+ WHERE uid = {?}', S::i('uid'));
+ Post::kill('url');
+ S::logger()->log('carva_del');
+ $page->trigSuccess('Redirection supprimée');
+ }
+
+ $url = XDB::fetchOneCell('SELECT url
+ FROM carvas
+ WHERE uid = {?}', S::i('uid'));
+ $page->assign('carva', $url);
+
+ # FIXME: this code is not multi-domain compatible. We should decide how
+ # carva will extend to users not in the main domain.
+ $res = XDB::query("SELECT alias
+ FROM aliases
+ WHERE id = {?} AND FIND_IN_SET('bestalias', flags)",
+ S::user()->id());
+ $page->assign('bestalias', $res->fetchOneCell());
+ }
+
+ function handler_prefs_rss(&$page)
+ {
+ $page->changeTpl('platal/filrss.tpl');
+
+ $page->assign('goback', Env::v('referer', 'login'));
+
+ if (Env::v('act_rss') == 'Activer') {
+ $this->__set_rss_state(true);
+ $page->trigSuccess("Ton Fil RSS est activé.");
+ }
+ }
+
+ function handler_password(&$page)
+ {
+ global $globals;
+
+ if (Post::has('response2')) {
+ S::assert_xsrf_token();
+
+ S::set('password', $password = Post::v('response2'));
+ XDB::execute('UPDATE accounts
+ SET password = {?}
+ WHERE uid={?}', $password,
+ S::i('uid'));
+
+ // If GoogleApps is enabled, and the user did choose to use synchronized passwords,
+ // updates the Google Apps password as well.
+ if ($globals->mailstorage->googleapps_domain) {
+ require_once 'googleapps.inc.php';
+ $account = new GoogleAppsAccount(S::user());
+ if ($account->active() && $account->sync_password) {
+ $account->set_password($password);
+ }
+ }
+
+ S::logger()->log('passwd');
+ Platal::session()->setAccessCookie(true);
+
+ $page->changeTpl('platal/motdepasse.success.tpl');
+ $page->run();
+ }
+
+ $page->changeTpl('platal/motdepasse.tpl');
+ $page->addJsLink('motdepasse.js');
+ $page->setTitle('Mon mot de passe');
+ }
+
+ function handler_smtppass(&$page)
+ {
+ $page->changeTpl('platal/acces_smtp.tpl');
+ $page->setTitle('Acces SMTP/NNTP');
+
+ $wp = new PlWikiPage('Xorg.SMTPSécurisé');
+ $wp->buildCache();
+ $wp = new PlWikiPage('Xorg.NNTPSécurisé');
+ $wp->buildCache();
+
+ $uid = S::i('uid');
+ $pass = Env::v('smtppass1');
+
+ if (Env::v('op') == "Valider" && strlen($pass) >= 6
+ && Env::v('smtppass1') == Env::v('smtppass2')) {
+ XDB::execute('UPDATE accounts
+ SET weak_password = {?}
+ WHERE uid = {?}', $pass, $uid);
+ $page->trigSuccess('Mot de passe enregistré');
+ S::logger()->log("passwd_ssl");
+ } elseif (Env::v('op') == "Supprimer") {
+ XDB::execute('UPDATE accounts
+ SET weak_password = NULL
+ WHERE uid = {?}', $uid);
+ $page->trigSuccess('Compte SMTP et NNTP supprimé');
+ S::logger()->log("passwd_del");
+ }
+
+ $res = XDB::query("SELECT weak_password IS NOT NULL
+ FROM accounts
+ WHERE uid = {?}", $uid);
+ $page->assign('actif', $res->fetchOneCell());
+ }
+
+ function handler_recovery(&$page)
+ {