Beispiel #1
0
 function ReceiveData()
 {
     global $security_actions, $security_orders;
     $res = array();
     $data = $_POST[$this->name . '_postdata'];
     $limits = db_unpack($data);
     if ($_POST[$this->name . '_inherit'] && $this->canInherit) {
         $res['inherit'] = true;
     } else {
         foreach ($limits as $l => $v) {
             if (preg_match('/\\{\\{\\{\\{GROUP[0-9]+\\}\\}\\}\\}/', $l) || !isset($this->security_limits[$l])) {
                 continue;
             }
             $limit = db_unpack($v);
             $order = $limit['order'];
             $res[$l]['order'] = $order;
             if (!isset($security_orders[$order])) {
                 continue;
             }
             $acts = db_unpack($limit['acts']);
             $i = 0;
             while (isset($acts[$i])) {
                 $act = db_unpack($acts[$i]);
                 if (isset($security_actions[$act['act']])) {
                     $res[$l]['acts'][] = array('act' => $act['act'], 'val' => $act['val']);
                 }
                 $i++;
             }
         }
     }
     $this->data = $res;
     $this->RefreshCachedData();
 }
Beispiel #2
0
 function CreateSettings()
 {
     global $XPFS;
     $cfg = db_unpack($XPFS->readFile('/tester/wt.cfg'));
     if ($cfg['initialized']) {
         return;
     }
     manage_settings_create('Имя хоста основного сервера WebTester', 'WebTester', 'WT_server_host', 'CSCText');
     manage_settings_create('IPC-порт основного сервера WebTester', 'WebTester', 'WT_server_port', 'CSCNumber');
     manage_settings_create('Логин на основной сервер WebTester', 'WebTester', 'WT_server_login', 'CSCText');
     manage_settings_create('Пароль на основной сервер WebTester', 'WebTester', 'WT_server_pass', 'CSCPassword');
     manage_setting_use('WT_server_host');
     manage_setting_use('WT_server_port');
     manage_setting_use('WT_server_login');
     manage_setting_use('WT_server_pass');
     $cfg['initialized'] = 1;
     $XPFS->createDirectory('/', 'tester');
     $XPFS->createFile('/tester', 'wt.cfg');
     $XPFS->writeBlock('/tester/wt.cfg', db_pack($cfg));
 }
Beispiel #3
0
 function GetTests($id)
 {
     $data = $this->GetByID($id);
     if ($data['id'] != $id) {
         return null;
     }
     $tests_count = count(explode(' ', $data['settings']['tests']));
     $data = db_unpack(WT_ReceiveIPCData('/tester/tests', $id . '@0', 'informatics', array('get_tests', $id, '1-' . $tests_count)));
     return array('tests' => db_unpack($data['tst']), 'answers' => db_unpack($data['ans']));
 }