X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fsurvey%2Fsurvey.inc.php;h=cfc2812b16faed051cfe14b46a8ef5d39e3e8692;hb=723d4c6b7736df20e07d2c6e32e4c37c6c80ca05;hp=7057a0dc88934cf9b663036b0ed18b89261c8ff0;hpb=cecdf74795e71ed038411915dad5e0dff6ea51fa;p=platal.git diff --git a/modules/survey/survey.inc.php b/modules/survey/survey.inc.php index 7057a0d..cfc2812 100644 --- a/modules/survey/survey.inc.php +++ b/modules/survey/survey.inc.php @@ -65,6 +65,7 @@ class Survey private $promos; private $valid; private $questions; + private $creator; public function __construct($args, $id = -1, $valid = false, $questions = null) { @@ -79,13 +80,19 @@ class Survey $this->title = $args['title']; $this->description = $args['description']; $this->end = $args['end']; - $this->mode = (isset($args['mode']))? $args['mode'] : self::MODE_ALL; + $this->mode = (isset($args['mode']))? $args['mode'] : self::MODE_ALL; + $this->creator = $args['uid']; if ($this->mode == self::MODE_ALL) { $args['promos'] = ''; } $args['promos'] = str_replace(' ', '', $args['promos']); $this->promos = ($args['promos'] == '' || preg_match('#^(\d{4}-?|(\d{4})?-\d{4})(,(\d{4}-?|(\d{4})?-\d{4}))*$#', $args['promos']))? $args['promos'] : '#'; } + + public function canSeeEarlyResults(User $user) + { + return $user->id() == $this->creator || $user->checkPerms('admin'); + } // }}} // {{{ functions to access general information @@ -356,7 +363,7 @@ class Survey // {{{ static function retrieveSurvey() : gets a survey in database (and unserialize the survey object structure) public static function retrieveSurvey($sid) { - $sql = 'SELECT questions, title, description, end, mode, promos + $sql = 'SELECT questions, title, description, end, mode, promos, uid FROM surveys WHERE id={?}'; $res = XDB::query($sql, $sid); @@ -432,7 +439,8 @@ class Survey public function vote($uid, $args) { XDB::execute('INSERT INTO survey_votes - SET survey_id = {?}, uid = {?};', $this->id, $uid); // notes the user as having voted + SET survey_id = {?}, uid = {?}', + $this->id, ($uid == 0) ? null : $uid); // notes the user as having voted $vid = XDB::insertId(); for ($i = 0; $i < count($this->questions); $i++) { $ans = $this->questions[$i]->checkAnswer($args[$i]);