+ eval {
+ require CGI::Cookie;
+ my $httpcookie = CGI::Cookie->new(
+ -name => 'login',
+ -value => join(':', @{$found}{qw( username pass )}),
+ -path => '/writer',
+ ) or die "prepared object is empty\n";
+ AddCookie($httpcookie->as_string);
+ } or Abort(["Unable to create login cookie", $@], 403);
+
+ return $found;
+} or do {
+ say '<h1>Login to edit words</h1>';
+ Alert('Access denied', $@) if $@;
+ say '<form action="?" method="post" class="inline"><ul>';
+ my $loginform = bless {%post}, 'Shiar_Sheet::FormRow';
+ say '<li>', $loginform->input(@{$_}), '</li>' for pairs (
+ username => {-label => 'User name'},
+ pass => {-label => 'Password', type => 'password'},
+ );
+ say '<li><input type="submit" value="Login" /></li>';
+ say '</ul></form>';
+ exit;
+};
+
+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'],
+ eo => ['<span style="color:green">★</span>', 'esperanto'],
+ ru => ["\N{REGIONAL INDICATOR SYMBOL LETTER R}\N{REGIONAL INDICATOR SYMBOL LETTER U}", 'русский'],
+);