<?php
/***************************************************************************
- * Copyright (C) 2003-2008 Polytechnique.org *
+ * Copyright (C) 2003-2010 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
public $members;
public $rules = "Refuser les listes de binets si elles ne sont pas datées (oui : apv2002@, non : apv@).
- Refuser également des listes qui pourraient nous servir (admin, postmaster,...)";
+ Refuser également des listes qui pourraient nous servir (admin, postmaster…)";
// }}}
// {{{ constructor
- public function __construct($_uid, $_asso, $_liste, $_domain, $_desc, $_advertise,
+ public function __construct(User &$_user, $_asso, $_liste, $_domain, $_desc, $_advertise,
$_modlevel, $_inslevel, $_owners, $_members, $_stamp=0)
{
- parent::__construct($_uid, false, 'liste', $_stamp);
+ parent::__construct($_user, false, 'liste', $_stamp);
$this->asso = $_asso;
$this->liste = $_liste;
protected function _mail_body($isok)
{
if ($isok) {
- return " La liste de diffusion {$this->liste}@{$this->domain} que tu avais demandée vient d'être créée.";
+ return " Suite à ta demande de création de liste de diffusion, nous avons créé l'adresse {$this->liste}@{$this->domain}, qui est maintenant à ta disposition.";
} else {
return " La demande que tu avais faite pour la liste de diffusion {$this->liste}@{$this->domain} a été refusée.";
}
if ($this->asso == "alias") {
$new = $this->liste . '@' . $this->domain;
- XDB::query('INSERT INTO x4dat.virtual (alias,type) VALUES({?}, "user")', $new);
+ XDB::query('INSERT INTO virtual (alias, type) VALUES({?}, "user")', $new);
foreach ($this->members as $member) {
- $res = XDB::query(
- "SELECT a.alias, b.alias
- FROM x4dat.aliases AS a
- LEFT JOIN x4dat.aliases AS b ON (a.id=b.id AND b.type = 'a_vie')
- WHERE a.alias={?} AND a.type!='homonyme'", $member);
- list($alias, $blias) = $res->fetchOneRow();
- $alias = empty($blias) ? $alias : $blias;
- XDB::query(
- "INSERT INTO x4dat.virtual_redirect (vid,redirect)
- SELECT vid, {?}
- FROM x4dat.virtual
- WHERE alias={?}", $alias . "@" . $globals->mail->domain, $new);
+ $user = User::get($member);
+ if ($user != null) {
+ XDB::query(
+ "INSERT INTO virtual_redirect (vid, redirect)
+ SELECT vid, {?}
+ FROM virtual
+ WHERE alias = {?}", $user->forlifeEmail(), $new);
+ }
}
return 1;
}
- $list = new MMList(S::v('uid'), S::v('password'), $this->domain);
+ $list = new MMList(S::user()->id(), $this->domain);
$ret = $list->create_list($this->liste, utf8_decode($this->desc), $this->advertise,
$this->modlevel, $this->inslevel,
$this->owners, $this->members);
$liste = strtolower($this->liste);
if ($ret && !$this->asso) {
foreach(Array($liste, $liste . "-owner", $liste . "-admin", $liste . "-bounces", $liste . "-unsubscribe") as $l) {
- XDB::execute("INSERT INTO aliases (alias,type) VALUES({?}, 'liste')", $l);
+ XDB::execute("INSERT INTO aliases (alias, type) VALUES({?}, 'liste')", $l);
}
} elseif ($ret) {
foreach (Array('', 'owner', 'admin', 'bounces', 'unsubscribe') as $app) {
$app = '-' . $app;
}
$red = $this->domain . '_' . $liste;
- XDB::execute('INSERT INTO x4dat.virtual (alias,type)
- VALUES({?},{?})', $liste . $app . '@' . $this->domain, 'list');
- XDB::execute('INSERT INTO x4dat.virtual_redirect (vid,redirect)
+ XDB::execute('INSERT INTO virtual (alias, type)
+ VALUES({?}, {?})', $liste . $app . '@' . $this->domain, 'list');
+ XDB::execute('INSERT INTO virtual_redirect (vid, redirect)
VALUES ({?}, {?})', XDB::insertId(),
$red . $mdir . '@listes.polytechnique.org');
$list->mass_subscribe($liste, join(' ', $this->members));