$list = Mail::_readFile(); array_push($list, $newmail['title']); array_push($list, $newmail['content']); Mail::_writeFile($list); } /** * Manually send an email to all addresses. * @param string mailto address * @param string mail content * @param array word replace rules * */ public static function manualsend($maillist = null, $title, $content, $attachment = null)
/** * Get the number of users of each university. * @return array 'university' => 'number of users' */ public static function statUniversityUser() { $model = D('cernet_university'); $ulist = $model->select(); $res = array(); $model = D('cernet_user'); foreach ($ulist as $u) { $uid = $u['id']; $result = xassert($model->join('cernet_university ON cernet_university.id = cernet_user.university')->where("cernet_university = '{$uid}'")->count(), $Error['count']); $res[$u['name']] = $result; } return $res; }
/** * Report Edit page. */ public function edit_report() { eval(USER); $this->assign("less", "new_report.less"); try { $rid = xassert(unsafeget('show'), Error('get')); $res = DBModel::getReportDetail($rid); $types = DBModel::getByFields('cernet_report_type'); $this->assign('type', $types); $this->assign('team', $res); } catch (Exception $e) { throw_exception($e->getMessage()); } eval(NDSP); }
function check_paper1($paper1) { global $user_chair, $user_estrin, $user_kohler, $user_marina, $user_van, $user_nobody; xassert_neqq($paper1, null); xassert($user_chair->can_view_paper($paper1)); xassert($user_estrin->can_view_paper($paper1)); xassert($user_marina->can_view_paper($paper1)); xassert($user_van->can_view_paper($paper1)); xassert(!$user_kohler->can_view_paper($paper1)); xassert(!$user_nobody->can_view_paper($paper1)); xassert($user_chair->allow_administer($paper1)); xassert(!$user_estrin->allow_administer($paper1)); xassert(!$user_marina->allow_administer($paper1)); xassert(!$user_van->allow_administer($paper1)); xassert(!$user_kohler->allow_administer($paper1)); xassert(!$user_nobody->allow_administer($paper1)); xassert($user_chair->can_administer($paper1)); xassert(!$user_estrin->can_administer($paper1)); xassert(!$user_marina->can_administer($paper1)); xassert(!$user_van->can_administer($paper1)); xassert(!$user_kohler->can_administer($paper1)); xassert(!$user_nobody->can_administer($paper1)); xassert($user_chair->can_view_tags($paper1)); xassert(!$user_estrin->can_view_tags($paper1)); xassert($user_marina->can_view_tags($paper1)); xassert(!$user_van->can_view_tags($paper1)); xassert(!$user_kohler->can_view_tags($paper1)); xassert(!$user_nobody->can_view_tags($paper1)); xassert($user_chair->can_view_tag($paper1, "foo")); xassert($user_chair->can_view_tag($paper1, "~foo")); xassert($user_chair->can_view_tag($paper1, $user_chair->contactId . "~foo")); xassert($user_chair->can_view_tag($paper1, "~~foo")); xassert($user_chair->can_view_tag($paper1, $user_estrin->contactId . "~foo")); xassert(!$user_estrin->can_view_tag($paper1, "foo")); xassert(!$user_estrin->can_view_tag($paper1, "~foo")); xassert(!$user_estrin->can_view_tag($paper1, $user_chair->contactId . "~foo")); xassert(!$user_estrin->can_view_tag($paper1, "~~foo")); xassert(!$user_estrin->can_view_tag($paper1, $user_estrin->contactId . "~foo")); xassert($user_marina->can_view_tag($paper1, "foo")); xassert($user_marina->can_view_tag($paper1, "~foo")); xassert(!$user_marina->can_view_tag($paper1, $user_chair->contactId . "~foo")); xassert(!$user_marina->can_view_tag($paper1, "~~foo")); xassert(!$user_marina->can_view_tag($paper1, $user_estrin->contactId . "~foo")); xassert($user_marina->can_view_tag($paper1, $user_marina->contactId . "~foo")); xassert($user_chair->can_update_paper($paper1)); xassert($user_estrin->can_update_paper($paper1)); xassert(!$user_marina->can_update_paper($paper1)); xassert($user_van->can_update_paper($paper1)); xassert(!$user_kohler->can_update_paper($paper1)); xassert(!$user_nobody->can_update_paper($paper1)); }
/** * Get a list of fields from database. * @param string table name * @param array conditions * @return int count result */ public static function countByCond($table, $cond = array()) { $model = D($table); $result = $model->where($cond)->count(); // dump($model->getLastSql()); return xassert($result, Error('count')); }
function call_api($fn, $user, $qreq, $prow) { if (!$qreq instanceof Qobject) { $qreq = new Qobject($qreq); } xassert(isset(SiteLoader::$api_map[$fn])); $uf = SiteLoader::$api_map[$fn]; JsonResultException::$capturing = true; $result = null; try { call_user_func($uf[0], $user, $qreq, $prow); } catch (JsonResultException $jre) { $result = new Qobject($jre->result); } JsonResultException::$capturing = false; return $result; }
<?php // test05.php -- HotCRP paper submission tests // HotCRP is Copyright (c) 2006-2016 Eddie Kohler and Regents of the UC // Distributed under an MIT-like license; see LICENSE global $ConfSitePATH; $ConfSitePATH = preg_replace(",/[^/]+/[^/]+\$,", "", __FILE__); require_once "{$ConfSitePATH}/test/setup.php"; $Conf->save_setting("sub_open", 1); $Conf->save_setting("sub_update", $Now + 100); $Conf->save_setting("sub_sub", $Now + 100); // load users $user_estrin = Contact::find_by_email("*****@*****.**"); // pc $user_nobody = new Contact(); $ps = new PaperStatus($user_estrin); $paper1a = $ps->paper_json(1); xassert_eqq($paper1a->title, "Scalable Timers for Soft State Protocols"); $ps->save_paper_json((object) ["id" => 1, "title" => "Scalable Timers? for Soft State Protocols"]); xassert(!$ps->nerrors); $paper1b = $ps->paper_json(1); xassert_eqq($paper1b->title, "Scalable Timers? for Soft State Protocols"); $paper1b->title = $paper1a->title; $paper1b->submitted_at = $paper1a->submitted_at; xassert_eqq(json_encode($paper1b), json_encode($paper1a)); $doc = Filer::file_upload_json(["error" => UPLOAD_ERR_OK, "name" => "amazing-sample.pdf", "tmp_name" => "{$ConfSitePATH}/src/sample.pdf", "tmp_name_safe" => true, "type" => "application/pdf"]); $ps->save_paper_json((object) ["id" => 1, "submission" => $doc]); xassert(!$ps->nerrors); $paper1c = $ps->paper_json(1); xassert_eqq($paper1c->submission->sha1, "2f1bccbf1e0e98004c01ef5b26eb9619f363e38e"); xassert_exit();
/** * Get name by a given id of a specific table. * @param string table name without prefix * @param mixed(string/array) id / id list * @return mixed(string/array) name / name list */ function getNameById($table, $id) { assert($table != null && $table != ''); assert($id != null && $id != '' && $id != 0); $model = D($table); $conf = array(); if (is_array($id)) { assert(count($id) > 0); $ans = array(); foreach ($id as $i) { $conf['id'] = $i; $name = xassert($model->where($conf)->find(), Error('select')); $name = $name['name']; if (!isset($name['name'])) { $name = $name['title']; } array_push($ans, $name); } } else { $conf['id'] = $id; $name = xassert($model->where($conf)->find(), Error('select')); $ans = $name['name']; if (!isset($name['name'])) { $ans = $name['title']; } } if ($ans == null || $ans == '') { $ans = $id; } return $ans; }
/** * Add new quizs into DB */ public function readQuizFromExcelNSave() { $this->rewriteExcel(); require_once "powerdream/Common/PHPExcel.php"; require_once "powerdream/Common/PHPExcel/Reader/Excel2003XML.php"; require_once "powerdream/Common/PHPExcel/Reader/Excel5.php"; require_once "powerdream/Common/PHPExcel/Reader/Excel2007.php"; $excel = new PHPExcel(); $reader = new PHPExcel_Reader_Excel2007(); # Judge excel type. // $filename = str_replace('\\','/',getcwd()) . $this->filename; $filename = "Downloads/excel/rewrite.xls"; if (!$reader->canRead($filename)) { $reader = new PHPExcel_Reader_Excel5(); if (!$reader->canRead($filename)) { $reader = new PHPExcel_Reader_Excel2003XML(); if (!$reader->canRead($filename)) { throwex(Error('import')); } } } #debug(1); $excel = $reader->load($filename); $cursheet = $excel->getSheet(0); $cols = $cursheet->getHighestColumn(); $rows = $cursheet->getHighestRow(); if (strlen($cols) == 2) { $cols = 'Z'; } $count = 1; $map = array('quiz', 'answer', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'); # Traverse the excel table and insert them into DB for ($currow = 2; $currow <= $rows; $currow++) { $quiz = array(); $i = 0; $empty = false; $choice = array(); # Traverse the columns for each row for ($curcol = 'A'; $curcol <= $cols; $curcol++) { $now = $curcol . $currow; $value = $cursheet->getCell($now)->getValue(); if ($value instanceof PHPExcel_RichText) { //富文本转换字符串 $value = $value->__toString(); } if (trim($value) == '' && $curcol == 'A') { $empty = true; break; } if (trim($value) == '' && $curcol != 'A') { break; } if ($i >= 2) { // $choice .= ($this->sep).chr(63+$i).' . '.$value; $choice[$map[$i]] = $value; } else { $quiz[$map[$i]] = $value; } //$quiz[$map[$i]] = $value; $i++; } if ($empty) { break; } $quiz['answer'] = $this->formatAnswer($quiz['answer']); $quiz['choice'] = json_encode($choice); if ($quiz['answer'] != '') { $c = '' . $count; while (strlen($c) < 4) { $c = '0' . $c; } $quiz["id"] = 'Q' . date("ym") . $c; $count++; $result = $this->model->add($quiz); } // $fp = fopen('debug.txt','a'); // $fp.fwrite($fp,$this->model->getLastSql()."#\n"); // fclose($fp); } if ($count == 1) { return; } # Update meta information $data['stat_total_all'] = $this->model->count(); xassert($this->metamod->where(array('id' => 1))->save($data), Error('update')); }
xassert(Contact::is_anonymous_email("anonymous10")); xassert(Contact::is_anonymous_email("anonymous9")); xassert(!Contact::is_anonymous_email("*****@*****.**")); xassert(!Contact::is_anonymous_email("example@anonymous")); // Mailer::allow_send tests $Opt["sendEmail"] = true; xassert(Mailer::allow_send("*****@*****.**")); xassert(Mailer::allow_send("*****@*****.**")); xassert(!Mailer::allow_send("ass")); xassert(!Mailer::allow_send("ass@_.com")); xassert(!Mailer::allow_send("ass@_.co.uk")); xassert(!Mailer::allow_send("*****@*****.**")); xassert(!Mailer::allow_send("*****@*****.**")); xassert(!Mailer::allow_send("*****@*****.**")); xassert(!Mailer::allow_send("*****@*****.**")); xassert(!Mailer::allow_send("*****@*****.**")); xassert(!Mailer::allow_send("*****@*****.**")); $Opt["sendEmail"] = false; xassert(!Mailer::allow_send("*****@*****.**")); xassert(!Mailer::allow_send("*****@*****.**")); // NavigationState tests $ns = new NavigationState(["SERVER_PORT" => 80, "SCRIPT_FILENAME" => __FILE__, "SCRIPT_NAME" => __FILE__, "REQUEST_URI" => "/fart/barf/?butt", "HTTP_HOST" => "butt.com", "SERVER_SOFTWARE" => "nginx"]); xassert_eqq($ns->host, "butt.com"); xassert_eqq($ns->make_absolute("https://foo/bar/baz"), "https://foo/bar/baz"); xassert_eqq($ns->make_absolute("http://fooxxx/bar/baz"), "http://fooxxx/bar/baz"); xassert_eqq($ns->make_absolute("//foo/bar/baz"), "http://foo/bar/baz"); xassert_eqq($ns->make_absolute("/foo/bar/baz"), "http://butt.com/foo/bar/baz"); xassert_eqq($ns->make_absolute("after/path"), "http://butt.com/fart/barf/after/path"); xassert_eqq($ns->make_absolute("../after/path"), "http://butt.com/fart/after/path"); xassert_eqq($ns->make_absolute("?confusion=20"), "http://butt.com/fart/barf/?confusion=20"); xassert_exit();
xassert_eqq($te2_cdb->affiliation, "String"); // borrow from cdb $acct = $us->save((object) ["email" => "te@_.com"]); xassert(!!$acct); $te = user("te@_.com"); xassert_eqq($te->email, "te@_.com"); xassert_eqq($te->firstName, "Te"); xassert_eqq($te->lastName, "Thamrongrattanarit"); xassert_eqq($te->affiliation, "Brandeis University"); xassert_eqq($te->collaborators, "Computational Linguistics Magazine"); // create a user in cdb: create, then delete from local db $anna = "*****@*****.**"; xassert(!user($anna)); $acct = $us->save((object) ["email" => $anna, "first" => "Anna", "last" => "Akhmatova"]); xassert(!!$acct); Dbl::qe("delete from ContactInfo where email=?", $anna); save_password($anna, "aquablouse", true); xassert(!user($anna)); $user_estrin = user("*****@*****.**"); $user_floyd = user("*****@*****.**"); $user_van = user("*****@*****.**"); $ps = new PaperStatus(null); $ps->save_paper_json((object) ["id" => 1, "authors" => ["*****@*****.**", $user_estrin->email, $user_floyd->email, $user_van->email, $anna]]); $paper1 = $Conf->paperRow(1, $user_chair); $user_anna = user($anna); xassert(!!$user_anna); xassert($user_anna->act_author_view($paper1)); xassert($user_estrin->act_author_view($paper1)); xassert($user_floyd->act_author_view($paper1)); xassert($user_van->act_author_view($paper1)); xassert_exit();
public function second_teacher() { eval(ADMIN); $userId = xassert(safeget("show"), Error("get")); $list = DBModel::getByFields('second_teacher', array('id' => $userId)); $this->assign('list', $list[0]); eval(NDSP); }