[census] instead of disallowing suspicious answers, mark them
This commit is contained in:
parent
0d65127eb4
commit
ca0eaa2056
|
@ -547,6 +547,7 @@ census:
|
|||
- ['osobą niebinarną']
|
||||
- ['osobą cispłciową']
|
||||
- ['binarną osobą transpłciową']
|
||||
# - ['nie wiem']
|
||||
-
|
||||
type: 'number'
|
||||
min: 1900
|
||||
|
|
|
@ -966,7 +966,7 @@ census:
|
|||
By uniknąć tendencyjności, <strong>kolejność propozycji jest losowa</strong>.
|
||||
agree: >
|
||||
Wyrażam zgodę na przetwarzanie moich odpowiedzi
|
||||
oraz na użycie zanonimizowanej wersji mojego adresu IP oraz fingerprintu przeglądarki
|
||||
oraz na użycie mojego adresu IP oraz fingerprintu przeglądarki
|
||||
do przeciwdziałania wandalizmom i spamowi.
|
||||
Dane te nie są w stanie zidentyfikować żadnej osoby,
|
||||
zostaną użyte wyłącznie w celu zapewnienia unikalności odpowiedzi
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
-- Up
|
||||
|
||||
ALTER TABLE census ADD COLUMN ip TEXT NULL DEFAULT NULL;
|
||||
ALTER TABLE census ADD COLUMN userAgent TEXT NULL DEFAULT NULL;
|
||||
ALTER TABLE census ADD COLUMN acceptLanguage TEXT NULL DEFAULT NULL;
|
||||
ALTER TABLE census ADD COLUMN suspicious INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
-- Down
|
|
@ -168,6 +168,11 @@
|
|||
countResponses,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
if (process.client) {
|
||||
this.finished = !!parseInt(window.localStorage.getItem('census-finished') || 0);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
startSurvey() {
|
||||
this.q = 0;
|
||||
|
@ -224,6 +229,7 @@
|
|||
writins: JSON.stringify(this.writins),
|
||||
});
|
||||
this.finished = true;
|
||||
window.localStorage.setItem('census-finished', '1');
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs.questionform) {
|
||||
|
|
|
@ -38,19 +38,21 @@ router.get('/census/finished', async (req, res) => {
|
|||
});
|
||||
|
||||
router.post('/census/submit', async (req, res) => {
|
||||
if (await hasFinished(req)) {
|
||||
return res.status(401).json({error: 'Unauthorised'});
|
||||
}
|
||||
const suspicious = await hasFinished(req);
|
||||
|
||||
const id = ulid();
|
||||
await req.db.get(SQL`INSERT INTO census (id, locale, edition, userId, fingerprint, answers, writins) VALUES (
|
||||
await req.db.get(SQL`INSERT INTO census (id, locale, edition, userId, fingerprint, answers, writins, ip, userAgent, acceptLanguage, suspicious) VALUES (
|
||||
${id},
|
||||
${req.config.locale},
|
||||
${req.config.census.edition},
|
||||
${req.user ? req.user.id : null},
|
||||
${buildFingerprint(req)},
|
||||
${req.body.answers},
|
||||
${req.body.writins}
|
||||
${req.body.writins},
|
||||
${req.ip},
|
||||
${req.headers['user-agent']},
|
||||
${req.headers['accept-language']},
|
||||
${suspicious}
|
||||
)`);
|
||||
|
||||
return res.json(id);
|
||||
|
|
Reference in New Issue