group = $group; $this->users = XDB::fetchAllAssoc('SELECT uid, hruid, email FROM accounts WHERE uid IN {?}', $uids); } // }}} // {{{ function formu() public function formu() { return 'include/form.valid.bulk_accounts.tpl'; } // }}} // {{{ function _mail_subj protected function _mail_subj() { return "[Polytechnique.org] Création de comptes Polytechnique.net"; } // }}} // {{{ function _mail_body protected function _mail_body($isok) { if ($isok) { return " Un email vient d'être envoyé aux personnes concernées pour qu'elles puissent activer leur compte sur Polytechnique.net."; } else { return " Nous n'avons pas jugé bon d'activer les comptes Polytechnique.net demandés."; } } // }}} // {{{ function commit() public function commit() { $values = array(); $i = 0; foreach ($this->users as $user) { $values[] = XDB::format('({?}, {?}, {?}, NOW(), {?}, {?}, {?})', $user['uid'], $user['hruid'], $user['email'], rand_url_id(12), $this->user->fullName(), $this->group); if ($i == $this->limit) { XDB::rawExecute('INSERT INTO register_pending_xnet (uid, hruid, email, date, hash, sender_name, group_name) VALUES ' . implode(', ', $values)); $i = 0; $values = array(); } else { ++$i; } } XDB::rawExecute('INSERT INTO register_pending_xnet (uid, hruid, email, date, hash, sender_name, group_name) VALUES ' . implode(', ', $values)); return true; } // }}} // {{{ function isPending() static public function isPending($uid) { $res = XDB::iterRow('SELECT data FROM requests WHERE type = \'bulk_accounts\' ORDER BY stamp'); while (list($data) = $res->next()) { $request = Validate::unserialize($data); foreach ($request->users as $user) { if ($user['uid'] == $uid) { return true; } } } return false; } // }}} } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>