global $globals;
$site = $globals->asso('site');
if (!$site) {
- $page->trig('Le groupe n\'a pas de site web');
+ $page->trig('Le groupe n\'a pas de site web.');
return $this->handler_index($page);
}
http_redirect($site);
$page->changeTpl('xnetgrp/edit.tpl');
if (Post::has('submit')) {
+ S::assert_xsrf_token();
+
if (S::has_perms()) {
if (Post::v('mail_domain') && (strstr(Post::v('mail_domain'), '.') === false)) {
$page->trig("le domaine doit être un FQDN (aucune modif effectuée) !!!");
Post::v('descr'), Post::v('site'),
Post::v('mail'), Post::v('resp'),
Post::v('forum'), Post::has('ax'),
- Post::has('pub'),
+ Post::v('pub'),
Post::v('sub_url'), Post::v('unsub_url'),
$globals->asso('id'));
}
m.perms='admin' AS admin,
m.origine='X' AS x,
u.perms!='pending' AS inscrit,
- m.uid, IF(e.email IS NULL,NULL,1) AS actif
+ m.uid, IF(e.email IS NULL AND FIND_IN_SET('googleapps', u.mail_storage) = 0, NULL, 1) AS actif
FROM groupex.membres AS m
LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid )
LEFT JOIN aliases AS a ON ( a.id = m.uid AND a.type='a_vie' )
. "j'ai le plaisir de t'annoncer que ton inscription a été validée !\n"
. "\n"
. "Bien cordialement,\n"
+ . "-- \n"
. "{$_SESSION["prenom"]} {$_SESSION["nom"]}.";
$mailer->setTxtBody($message);
$mailer->send();
- $page->kill("$prenom $nom a bien été inscrit" . ($sexe ? 'e' : '') . ".");
+ pl_redirect("member/$u");
}
elseif (Env::has('refuse'))
{
$mailer->setSubject('['.$globals->asso('nom').'] Demande d\'inscription annulée');
$mailer->setTxtBody(Env::v('motif'));
$mailer->send();
- $page->kill("la demande $prenom $nom a bien été refusée");
+ $page->kill("La demande de $prenom $nom a bien été refusée.");
} else {
$page->assign('show_form', true);
$page->assign('prenom', $prenom);
}
if (is_member()) {
- $page->kill("tu es déjà membre !");
+ $page->kill("Tu es déjà membre !");
return;
}
pl_redirect("member/$email");
}
} else {
- $page->trig("« <strong>$email</strong> » n'est pas une adresse mail valide");
+ $page->trig("« <strong>$email</strong> » n'est pas une adresse mail valide.");
}
}
}
$user_same_email = get_infos($user['email']);
$domain = $globals->asso('mail_domain');
- if (!$domain || !empty($user_same_email)) {
+ if (!$domain || (!empty($user_same_email) && $user_same_email['uid'] != $user['uid'])) {
return true;
}
if ($res->numRows() == 0) {
$x = get_not_registered_user($login);
if (!$x) {
- $page->trig("Le login $login ne correspond à aucun X");
+ $page->trig("Le login $login ne correspond à aucun X.");
return false;
} else if (count($x) > 1) {
- $page->trig("Le login $login correspond a plusieurs camarades");
+ $page->trig("Le login $login correspond a plusieurs camarades.");
return false;
}
$uid = $x[0]['user_id'];
// Update subscription to aliases
if ($email != $user['email']) {
XDB::execute("UPDATE IGNORE virtual_redirect AS vr
- INNER JOIN virtual AS v ON(vr.vid = v.vid AND SUBSTRING_INDEX(alias, '@', 2) = {?})
+ INNER JOIN virtual AS v ON(vr.vid = v.vid AND SUBSTRING_INDEX(alias, '@', -1) = {?})
SET vr.redirect = {?}
WHERE vr.redirect = {?}",
$globals->asso('mail_domain'), $email, $user['email']);
XDB::execute("DELETE vr.*
FROM virtual_redirect AS vr
- INNER JOIN virtual AS v ON(vr.vid = v.vid AND SUBSTRING_INDEX(alias, '@', 2) = {?})
+ INNER JOIN virtual AS v ON(vr.vid = v.vid AND SUBSTRING_INDEX(alias, '@', -1) = {?})
WHERE vr.redirect = {?}",
$globals->asso('mail_domain'), $user['email']);
foreach (Env::v('ml1', array()) as $ml => $state) {
$mmlist->replace_email($ml, $user['email'], $email);
}
}
- return $login;
+ if ($sub) {
+ return $login;
+ }
+ return $user['email'];
}
function handler_admin_member(&$page, $user)
$perms ? 'admin' : 'membre',
$user['uid'], $globals->asso('id'));
$user['perms'] = $perms;
- $page->trig('permissions modifiées');
+ $page->trig('Permissions modifiées !');
}
// Update ML subscriptions
if ($ask == $state) {
if ($state && $email_changed) {
$mmlist->replace_email($ml, $from_email, $user['email2']);
- $page->trig("L'abonnement de {$user['prenom']} {$user['nom']} à $ml@ a été mis à jour");
+ $page->trig("L'abonnement de {$user['prenom']} {$user['nom']} à $ml@ a été mis à jour.");
}
continue;
}
."cours sur <strong>$ml@</strong> !!!");
} elseif ($ask) {
$mmlist->mass_subscribe($ml, Array($user['email2']));
- $page->trig("{$user['prenom']} {$user['nom']} a été abonné à $ml@");
+ $page->trig("{$user['prenom']} {$user['nom']} a été abonné à $ml@.");
} else {
if ($email_changed) {
$mmlist->mass_unsubscribe($ml, Array($from_email));
} else {
$mmlist->mass_unsubscribe($ml, Array($user['email2']));
}
- $page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml@");
+ $page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml@.");
}
}
XDB::query("INSERT INTO virtual_redirect (vid,redirect)
SELECT vid,{?} FROM virtual WHERE alias={?}",
$user['email'], $ml);
- $page->trig("{$user['prenom']} {$user['nom']} a été abonné à $ml");
+ $page->trig("{$user['prenom']} {$user['nom']} a été abonné à $ml.");
} else {
XDB::query("DELETE FROM virtual_redirect
USING virtual_redirect
INNER JOIN virtual USING(vid)
WHERE redirect={?} AND alias={?}",
$user['email'], $ml);
- $page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml");
+ $page->trig("{$user['prenom']} {$user['nom']} a été désabonné de $ml.");
}
}
}
$page->assign('user', $user);
+ echo $user['email2'];
$listes = $mmlist->get_lists($user['email2']);
$page->assign('listes', $listes);
$res = XDB::query(
'SELECT alias, redirect IS NOT NULL as sub
FROM virtual AS v
- LEFT JOIN virtual_redirect AS vr ON(v.vid=vr.vid AND redirect={?})
+ LEFT JOIN virtual_redirect AS vr ON(v.vid=vr.vid AND (redirect = {?} OR redirect = {?}))
WHERE alias LIKE {?} AND type="user"',
- $user['email'], '%@'.$globals->asso('mail_domain'));
+ $user['email'], $user['email2'], '%@'.$globals->asso('mail_domain'));
$page->assign('alias', $res->fetchAllAssoc());
}
if ($uid) {
$rss = XDB::iterator("SELECT a.id, a.titre, a.texte, a.contacts, a.create_date,
- IF(u2.nom_usage != '', u2.nom_usage, u2.nom) AS nom, u2.prenom, u2.promo
+ IF(u2.nom_usage != '', u2.nom_usage, u2.nom) AS nom, u2.prenom, u2.promo,
+ FIND_IN_SET('photo', a.flags) AS photo
FROM auth_user_md5 AS u
INNER JOIN groupex.announces AS a ON ( (a.promo_min = 0 OR a.promo_min <= u.promo)
AND (a.promo_max = 0 OR a.promo_max <= u.promo))
$art = array();
if (Post::v('valid') == 'Visualiser' || Post::v('valid') == 'Enregistrer'
- || Post::v('valid') == 'Supprimer l\'image') {
+ || Post::v('valid') == 'Supprimer l\'image' || Post::v('valid') == 'Pas d\'image') {
if (!is_null($aid)) {
$art['id'] = $aid;
}
($art['promo_min'] != 0 && ($art['promo_min'] <= 1900 || $art['promo_min'] >= 2020)) ||
($art['promo_max'] != 0 && ($art['promo_max'] <= 1900 || $art['promo_max'] >= 2020))))
{
- $page->trig("L'intervalle de promotions est invalide");
+ $page->trig("L'intervalle de promotions est invalide.");
Post::kill('valid');
}
if (!trim($art['titre']) || !trim($art['texte'])) {
- $page->trig("L'article doit avoir un titre et un contenu");
+ $page->trig("L'article doit avoir un titre et un contenu.");
Post::kill('valid');
}
$upload->rm();
Post::kill('valid');
}
- $art['photo'] = $upload->exists();
+ $art['photo'] = $upload->exists() || Post::i('photo');
+ if (Post::v('valid') == 'Pas d\'image' && !is_null($aid)) {
+ XDB::query("DELETE FROM groupex.announces_photo WHERE eid = {?}", $aid);
+ $upload->rm();
+ Post::kill('valid');
+ $art['photo'] = false;
+ }
}
if (Post::v('valid') == 'Enregistrer') {
$art['promo_min'], $art['promo_max'], $art['peremption'], "", S::v('uid'),
$upload);
$article->submit();
- $page->trig("L'affichage sur la page d'accueil de Polytechnique.org est en attente de validation");
+ $page->trig("L'affichage sur la page d'accueil de Polytechnique.org est en attente de validation.");
} else if ($upload && $upload->exists()) {
$upload->rm();
}
$article = new NLReq(S::v('uid'), $globals->asso('nom') . " : " .$art['titre'],
$art['texte'], $art['contact_html']);
$article->submit();
- $page->trig("La parution dans la Lettre Mensuelle est en attente de validation");
+ $page->trig("La parution dans la Lettre Mensuelle est en attente de validation.");
}
} else {
XDB::query("UPDATE groupex.announces
$art['titre'], $art['texte'], $art['contacts'], $art['peremption'],
$promo_min, $promo_max, $flags,
$art['id'], $globals->asso('id'));
+ if ($art['photo'] && $upload->exists()) {
+ list($imgx, $imgy, $imgtype) = $upload->imageInfo();
+ XDB::execute("REPLACE INTO groupex.announces_photo
+ SET eid = {?}, attachmime = {?}, x = {?}, y = {?}, attach = {?}",
+ $aid, $imgtype, $imgx, $imgy, $upload->getContents());
+ $upload->rm();
+ }
}
}
if (Post::v('valid') == 'Enregistrer' || Post::v('valid') == 'Annuler') {
if (empty($art) && !is_null($aid)) {
$res = XDB::query("SELECT a.*, u.nom, u.prenom, u.promo, l.alias AS forlife,
- FIND_IN_SET('public', a.flags) AS public
+ FIND_IN_SET('public', a.flags) AS public,
+ FIND_IN_SET('photo', a.flags) AS photo
FROM groupex.announces AS a
INNER JOIN auth_user_md5 AS u USING(user_id)
INNER JOIN aliases AS l ON (l.id = u.user_id AND l.type = 'a_vie')
$art = $res->fetchOneAssoc();
$art['contact_html'] = $art['contacts'];
} else {
- $page->kill("Aucun article correspond à l'identifiant indiqué");
+ $page->kill("Aucun article correspond à l'identifiant indiqué.");
}
}