示例#1
0
        $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)
示例#2
0
 /**
  * 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;
 }
示例#3
0
 /**
  * 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);
 }
示例#4
0
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));
}
示例#5
0
 /**
  * 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'));
 }
示例#6
0
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;
}
示例#7
0
<?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();
示例#8
0
文件: common.php 项目: sysuzjz/soya
/**
 * 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;
}
示例#9
0
 /**
  * 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'));
 }
示例#10
0
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();
示例#11
0
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();
示例#12
0
 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);
 }