Commit | Line | Data |
---|---|---|
5be526be FB |
1 | #!/usr/bin/php5 -q |
2 | <?php | |
3 | ||
4 | ini_set('include_path', '.:../include:/usr/share/php'); | |
42f5f007 SJ |
5 | require_once 'connect.db.inc.php'; |
6 | require_once 'marketing.inc.php'; | |
5be526be FB |
7 | |
8 | $opts = getopt('f:l:m:'); | |
9 | if (($opts['f'] && $opts['f'] == '-') || empty($opts['f'])) { | |
10 | $file = 'php://stdin'; | |
11 | } else { | |
12 | $file = $opts['f']; | |
13 | } | |
14 | if (empty($opts['l']) || empty($opts['m'])) { | |
15 | exit; | |
16 | } | |
17 | $matcol = intval($opts['m']); | |
18 | $logcol = intval($opts['l']); | |
19 | $handle = fopen($file, 'r'); | |
20 | ||
21 | while ($data = fgetcsv($handle)) { | |
42f5f007 SJ |
22 | $login = $data[$logcol]; |
23 | $xorgid = preg_replace('/1(\d{2})(\d{3})/', '20${1}0\2', $data[$matcol]); | |
24 | if (!is_numeric($xorgid)) { | |
25 | echo "ERROR The matricule ($xorgid) is not a numerical value.\n"; | |
5be526be FB |
26 | break; |
27 | } | |
42f5f007 SJ |
28 | $query = XDB::query("SELECT a.uid |
29 | FROM profiles AS p | |
30 | INNER JOIN account_profiles AS ap ON (p.pid = ap.pid AND FIND_IN_SET('owner', perms) | |
31 | INNER JOIN accounts AS a ON (a.uid = ap.uid) | |
32 | WHERE p.xorg_id = {?}", | |
33 | $xorgid); | |
5be526be FB |
34 | $uid = $query->fetchOneCell(); |
35 | if (!$uid) { | |
42f5f007 | 36 | echo "WARNING Can't find uid for matricule $xorgid (login $login)\n"; |
5be526be FB |
37 | continue; |
38 | } | |
39 | $market = Marketing::get($uid, "$login@poly.polytechnique.fr"); | |
40 | if (!is_null($market)) { | |
42f5f007 | 41 | echo "WARNING A marketing has already been to $xorgid on $login\n"; |
5be526be FB |
42 | continue; |
43 | } | |
44 | $market = new Marketing($uid, "$login@poly.polytechnique.fr", 'default', null, 'staff'); | |
45 | $market->add(false); | |
46 | $market->send(); | |
47 | } | |
48 | ||
49 | // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: | |
50 | ?> | |
51 |