<?php
/***************************************************************************
- * Copyright (C) 2003-2008 Polytechnique.org *
+ * Copyright (C) 2003-2011 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(User &$_user, $_asso, $_liste, $_domain, $_desc, $_advertise,
- $_modlevel, $_inslevel, $_owners, $_members, $_stamp=0)
+ public function __construct(User $_user, $_asso, $_liste, $_domain, $_desc, $_advertise,
+ $_modlevel, $_inslevel, $_owners, $_members, $_stamp = 0)
{
parent::__construct($_user, false, 'liste', $_stamp);
global $globals;
if (Env::has('listname')) {
- $this->liste = trim(Env::v('listname'));
+ $this->liste = Post::t('listname');
}
if (Env::has('domainname')) {
- $this->domain = trim(Env::v('domainname'));
+ $this->domain = Post::t('domainname');
}
if (Env::has('assotype')) {
- $this->asso = trim(Env::v('assotype'));
+ $this->asso = Post::t('assotype');
}
if (!$this->asso) {
$this->domain = $globals->mail->domain;
}
+ foreach ($this->owners as $key => &$email) {
+ $email = Post::t('owners_' . $key);
+ }
+ foreach ($this->members as $key => &$email) {
+ $email = Post::t('members_' . $key);
+ }
return true;
}
public function commit()
{
- global $globals;
+ require_once 'emails.inc.php';
- if ($this->asso == "alias") {
- $new = $this->liste . '@' . $this->domain;
- XDB::query('INSERT INTO x4dat.virtual (alias, type) VALUES({?}, "user")', $new);
+ if ($this->asso == 'alias') {
foreach ($this->members as $member) {
$user = User::get($member);
- if ($user != null) {
- XDB::query(
- "INSERT INTO x4dat.virtual_redirect (vid, redirect)
- SELECT vid, {?}
- FROM x4dat.virtual
- WHERE alias = {?}", $user->forlifeEmail(), $new);
- }
+ add_to_list_alias($user, $this->liste, $this->domain);
}
- return 1;
- }
-
- $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);
- }
- } elseif ($ret) {
- foreach (Array('', 'owner', 'admin', 'bounces', 'unsubscribe') as $app) {
- $mdir = $app == '' ? '+post' : '+' . $app;
- if (!empty($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)
- VALUES ({?}, {?})', XDB::insertId(),
- $red . $mdir . '@listes.polytechnique.org');
- $list->mass_subscribe($liste, join(' ', $this->members));
+ } else {
+ $list = new MMList(S::user(), $this->domain);
+ $success = $list->create_list($this->liste, utf8_decode($this->desc), $this->advertise,
+ $this->modlevel, $this->inslevel,
+ $this->owners, $this->members);
+ if ($success) {
+ create_list($this->liste, $this->domain);
}
+ return $success;
}
- return $ret;
}
// }}}