word edit: restrict access by login cookie
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 13 Jun 2020 11:43:43 +0000 (13:43 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 20 Oct 2020 20:49:11 +0000 (22:49 +0200)
tools/word.pg.sql
writer.plp

index 55de8ecd2415c24c3444e9c967ffe9aa7f97b1be..99664c9036b23f2d6ef15c3d81e717d7c5fbb90e 100644 (file)
@@ -1,3 +1,11 @@
+CREATE TABLE login (
+       username   text        NOT NULL UNIQUE,
+       pass       text,
+       email      text,
+       fullname   text,
+       id         serial      NOT NULL PRIMARY KEY
+);
+
 CREATE TABLE word (
        form       text        NOT NULL,
        alt        text[],
index 3f9ed98bc647c1e7b2a909a6f920c3fdf8568c93..fd2fc867ad7fc3677f746d8e2190ccbe95890cea 100644 (file)
@@ -115,6 +115,13 @@ my $db = eval {
 } or Abort('Database error', 501, $@);
 $db->abstract->{array_datatypes}++;
 
+my $user = eval {
+       my $cookiedata = $cookie{login} or return;
+       my ($name, $key) = split /[:\v]/, DecodeURI($cookiedata);
+       my %rowmatch = (username => $name, pass => $key);
+       $db->select(login => '*', \%rowmatch)->hash;
+} or Abort('Login required', 403);
+
 my %lang = (
        nl => ["\N{REGIONAL INDICATOR SYMBOL LETTER N}\N{REGIONAL INDICATOR SYMBOL LETTER L}", 'nederlands'],
        en => ["\N{REGIONAL INDICATOR SYMBOL LETTER G}\N{REGIONAL INDICATOR SYMBOL LETTER B}", 'english'],