Commit 44e677f6 authored by Dominik Hebeler's avatar Dominik Hebeler

Merge branch '862-member-key-cannot-be-used-with-the-search-plugin' into 'development'

Resolve "Member Key cannot be used with the search plugin"

Closes #862

See merge request !1378
parents 7f0a3d8b bc75dfea
<?php
namespace App\Http\Controllers;
use Cookie;
use Illuminate\Http\Request;
use LaravelLocalization;
class KeyController extends Controller
{
public function index(Request $request)
{
$redirUrl = $request->input('redirUrl', "");
return view('key')
->with('title', trans('titles.key'));
}
public function setKey(Request $request)
{
$redirUrl = $request->input('redirUrl', "");
$key = $request->input('key', '');
if ($this->authorizeKey($key)) {
# Valid Key
$host = $request->header("X_Forwarded_Host", "");
if (empty($host)) {
$host = $request->header("Host", "");
}
Cookie::queue('key', $key, 525600, '/meta/', null, false, false);
return redirect($redirUrl);
} else {
return view('key')
->with('title', trans('titles.key'))
->with('keyValid', false);
}
}
public function removeKey(Request $request)
{
$redirUrl = $request->input('redirUrl', "");
Cookie::queue('key', '', 0, '/meta/', null, false, false);
$url = LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('KeyController@index', ['redirUrl' => $redirUrl]));
return redirect($url);
}
private function authorizeKey($key)
{
$postdata = http_build_query(array(
'dummy' => rand(),
));
$opts = array('http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata,
),
);
$context = stream_context_create($opts);
try {
$link = "https://key.metager3.de/" . urlencode($key) . "/request-permission/api-access";
$result = json_decode(file_get_contents($link, false, $context));
if ($result->{'api-access'} == true) {
return true;
} else {
return false;
}
} catch (\ErrorException $e) {
return false;
}
}
}
......@@ -35,6 +35,12 @@ class Kernel extends HttpKernel
'bindings',
],
'enableCookies' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
],
'session' => [
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
......
......@@ -12,6 +12,6 @@ class EncryptCookies extends BaseEncrypter
* @var array
*/
protected $except = [
//
'key',
];
}
......@@ -1029,7 +1029,15 @@ class MetaGer
$this->queryFilter = [];
$this->verificationId = $request->input('verification_id', null);
$this->verificationCount = intval($request->input('verification_count', '0'));
$this->apiKey = $request->input('key', '');
if (empty($this->apiKey)) {
$this->apiKey = \Cookie::get('key');
if (empty($this->apiKey)) {
$this->apiKey = "";
}
}
// Remove Inputs that are not used
$this->request = $request->replace($request->except(['verification_id', 'uid', 'verification_count']));
......
......@@ -2,8 +2,8 @@
namespace App\Providers;
use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Route;
class RouteServiceProvider extends ServiceProvider
{
......@@ -41,6 +41,8 @@ class RouteServiceProvider extends ServiceProvider
$this->mapSessionRoutes();
$this->mapEnableCookieRoutes();
//
}
......@@ -86,6 +88,23 @@ class RouteServiceProvider extends ServiceProvider
*
* @return void
*/
protected function mapEnableCookieRoutes()
{
Route::group([
'middleware' => 'enableCookies',
'namespace' => $this->namespace,
], function ($router) {
require base_path('routes/cookie.php');
});
}
/**
* Define the "session" routes for the application.
*
* These routes can all set cookies.
*
* @return void
*/
protected function mapSessionRoutes()
{
Route::group([
......
<?php
return [
'head' => 'Datenschutz und Privatsphäre',
'head' => 'Datenschutz und Privatsphäre',
'general.1' => 'Datenschutz und Privatsphäre gehören für uns zu den wichtigsten Gütern im Internet. Sie sind absolut schützenswert und dürfen keinesfalls kommerziell genutzt werden. Im Folgenden eine kurze Auflistung unserer Vorgehensweise. Eine ausführliche Darstellung mit Hintergrund-Informationen, warum wir die einzige wirklich sichere Suchmaschine betreiben, finden Sie <a href="https://suma-ev.de/presse/Sicher-suchen-UND-finden-mit-MetaGer.html">in unserem Blog</a>.',
'general.3' => 'Nur Software, dessen Quellcode öffentlich zugänglich ist, kann von jedem überprüft werden. In allen anderen Fällen müssen User <em>glauben</em>, was Betreiber oder "Gütesiegel"-Verkäufer behaupten. MetaGer ist Freie Software unter der GNU-AGPLv3-Lizenz (siehe dazu die <a href="http://heise.de/-3295586" target="_blank" rel="noopener"> Nachricht im Heise-Ticker</a>). Der MetaGer-Quellcode steht Ihnen unter folgendem Link zur Verfügung: <a href="https://gitlab.metager3.de/open-source/MetaGer" target="_blank" rel="noopener">https://gitlab.metager3.de/open-source/MetaGer</a><br />Sie müssen uns nichts glauben: Sie können es selber kontrollieren!',
'policy.1' => 'Unsere Vorgehensweise/Policy:',
'policy.2' => 'Wir speichern weder Ihre IP-Adresse, noch den
'policy.1' => 'Unsere Vorgehensweise/Policy:',
'policy.2' => 'Wir speichern weder Ihre IP-Adresse, noch den
<a href="http://www.heise.de/security/meldung/Fingerprinting-Viele-Browser-sind-ohne-Cookies-identifizierbar-1982976.html" target="_blank" rel="noopener">"Fingerabdruck" Ihres Browsers</a> (Ausnahme: Kurzfristige Speicherung gegen Hacking- und Bot-Attacken).',
'policy.5' => 'Wir setzen keine Cookies oder benutzen Tracking-Pixel oder ähnliche Technologien, um unsere Nutzer zu "tracken" (tracken = Verfolgen der Bewegungen im Internet).',
'policy.6' => 'Die Datenübertragung von MetaGer erfolgt ausschlie&szlig;lich automatisch verschlüsselt über das https-Protokoll.',
'policy.7' => 'Wir bieten einen Zugang über das anonyme TOR-Netzwerk, den <a href="http://forum.suma-ev.de/viewtopic.php?f=3&amp;t=43&amp;sid=c994b628153235dfef098ba6fea3d60e" target="_blank" rel="noopener">MetaGer-TOR-hidden Service.</a>',
'policy.5' => 'Wir setzen keine Tracking-Cookies oder benutzen Tracking-Pixel oder ähnliche Technologien, um unsere Nutzer zu "tracken" (tracken = Verfolgen der Bewegungen im Internet).',
'policy.6' => 'Die Datenübertragung von MetaGer erfolgt ausschlie&szlig;lich automatisch verschlüsselt über das https-Protokoll.',
'policy.7' => 'Wir bieten einen Zugang über das anonyme TOR-Netzwerk, den <a href="http://forum.suma-ev.de/viewtopic.php?f=3&amp;t=43&amp;sid=c994b628153235dfef098ba6fea3d60e" target="_blank" rel="noopener">MetaGer-TOR-hidden Service.</a>',
'policy.9' => 'Da der Zugang über das TOR-Netzwerk vielen Nutzern kompliziert erscheint, manchmal auch langsam ist, haben wir einen weiteren Weg implementiert, die Ergebnis-Webseiten ebenfalls anonym erreichen zu können: durch Anklicken des Links "anonym öffnen". Dadurch sind Ihre persönlichen Daten beim Klick auf MetaGer-Ergebnisse und sogar bei allen Folge-Klicks danach geschützt.',
'policy.9' => 'Da der Zugang über das TOR-Netzwerk vielen Nutzern kompliziert erscheint, manchmal auch langsam ist, haben wir einen weiteren Weg implementiert, die Ergebnis-Webseiten ebenfalls anonym erreichen zu können: durch Anklicken des Links "anonym öffnen". Dadurch sind Ihre persönlichen Daten beim Klick auf MetaGer-Ergebnisse und sogar bei allen Folge-Klicks danach geschützt.',
'policy.10' => 'Wir machen möglichst wenig Werbung, kennzeichnen diese klar und eindeutig, und vertrauen für unsere Finanzierung auf unsere Nutzer, Ihre <a href="/spende/">Spenden</a> und Mitgliedsbeträge zum <a href="http://suma-ev.de/" target="_blank" rel="noopener">SUMA-EV</a>.',
'policy.13' => 'MetaGer wird von der deutschen gemeinnützigen Organisation <a href="http://suma-ev.de/" target="_blank" rel="noopener">SUMA-EV</a> in Zusammenarbeit mit der <a href="http://www.uni-hannover.de/" target="_blank" rel="noopener">Leibniz Universität Hannover</a> betrieben und weiterentwickelt.',
......@@ -24,5 +24,5 @@ return [
'policy.18' => 'Wir schützen nicht nur Ihre Daten, sondern auch die Umwelt: Unsere Server werden ausschließlich mit Ökostrom betrieben.',
'policy.19' => 'Nach den <a href="http://www.heise.de/newsticker/meldung/Bericht-US-Regierung-zapft-Kundendaten-von-Internet-Firmen-an-1884264.html" target="_blank" rel="noopener">Enthüllungen von Edward Snowden im Juni 2013</a> positionierten sich etliche Suchmaschinen mit der Selbstbeschreibung, dass Suchen bei ihnen sicher sei, weil die IP-Adressen der Nutzer nicht gespeichert würden. So ehrenwert und auch ehrlich gemeint diese Selbstbeschreibungen sein mögen - Fakt ist, dass viele dieser Suchmaschinen zumindest einen Teil ihrer Server in den USA hosten. Das gilt auch für diejenigen, die von manchen Datenschützern immer noch als "besonders empfehlenswert" gelobt und als Empfehlung verbreitet werden. Denn diese Suchmaschinen <a href="http://de.wikipedia.org/wiki/USA_PATRIOT_Act" target="_blank" rel="noopener">unterliegen nach dem Patriot Act und US-Recht dem vollen Zugriff der dortigen Behörden.</a> Sie können also gar keine geschützte Privatsphäre bieten (selbst dann nicht, wenn sie selber sich noch so sehr darum bemühen).',
'twitter' => 'Was andere über unser Privacy-Konzept auf Twitter sagen:',
'twitter' => 'Was andere über unser Privacy-Konzept auf Twitter sagen:',
];
This diff is collapsed.
This diff is collapsed.
......@@ -30,7 +30,7 @@ return [
'slogan.title' => 'Besser&nbsp;suchen, schneller&nbsp;finden',
'slogan.1' => 'Datenschutz & Privatsphäre: Bei uns einfach und selbstverständlich. Wir arbeiten nicht gewinnorientiert, wir sind ein gemeinnütziger Verein: <a href="/beitritt">Werden Sie Mitglied</a> oder <a href="/spende">spenden Sie</a>!',
'slogan.2' => 'Mit MetaGer bewahren Sie einen neutralen Blick auf’s Web!',
'preredesign' => '<a href="https://klassik.metager.org">Rückblick auf die letzte MetaGer Version</a>',
'preredesign' => '<a href="https://klassik.metager.org">Rückblick auf die vorige MetaGer Version</a>',
'sponsors.head' => 'Sponsoren',
'sponsors.woxikon' => 'SEO Agentur',
......
<?php
return [
'h1' => "Schlüssel für Ihre werbefreie Suche",
'p1' => 'MetaGer bietet <a href=":url1">SUMA-EV Mitgliedern</a> und großzügigen <a href=":url2">Spendern</a> einen Schlüssel an, mit dem die Suchmaschine komplett werbefrei verwendet werden kann.',
'p2' => 'Auf dieser Seite können Sie Ihren Schlüssel (sofern bekannt) eingeben. Wir speichern diesen mit Hilfe eines Cookies auf Ihrem PC. Auf diese Weise sendet Ihr Browser den Schlüssel automatisch bei jeder durchgeführten Suche an uns, sodass wir die Werbung für Sie entfernen können.',
'p3' => 'Wenn Sie sich den Cookie anschauen steht dort drin "key=xxxx". Wir verwenden diesen dementsprechend nicht für Tracking-Zwecke. Er wird auch zu keinem Zeitpunkt in irgendeiner Form von uns gespeichert oder geloggt.',
'p4' => 'Wichtig: Um diese Funktion nutzen zu können, müssen Sie Cookies in Ihrem Browser zugelassen haben. Die Einstellung bleibt dann solange gespeichert, wie Ihr Browser Cookies speichert.',
'placeholder1' => 'Schlüssel eingeben...',
'removeKey' => 'aktuellen Schlüssel entfernen',
'invalidKey' => 'Der eingegebene Schlüssel ist ungültig',
'backLink' => 'Zurück zur letzten Seite',
];
<?php
return [
'index' => 'MetaGer - Mehr als eine Suchmaschine',
'impressum' => 'Impressum - MetaGer',
'about' => 'Über Uns - MetaGer',
'team' => 'Team - MetaGer',
'kontakt' => 'Kontakt - MetaGer',
'spende' => 'Spenden - MetaGer',
'datenschutz' => 'Datenschutz und Privatsphäre - MetaGer',
'hilfe' => 'Hilfe - MetaGer',
'widget' => 'MetaGer Widget',
'settings' => 'Einstellungen',
'websearch' => 'Websuche-Widget - MetaGer',
'sitesearch' => 'Sitesearch-Widget - MetaGer',
'beitritt' => 'SUMA-EV Beitrittsformular',
'faq' => 'FAQ - MetaGer',
'partnershops' => 'Partnershops - MetaGer',
'languages' => 'Übersetzungstool - MetaGer',
'index' => 'MetaGer - Mehr als eine Suchmaschine',
'impressum' => 'Impressum - MetaGer',
'about' => 'Über Uns - MetaGer',
'team' => 'Team - MetaGer',
'kontakt' => 'Kontakt - MetaGer',
'spende' => 'Spenden - MetaGer',
'datenschutz' => 'Datenschutz und Privatsphäre - MetaGer',
'hilfe' => 'Hilfe - MetaGer',
'widget' => 'MetaGer Widget',
'settings' => 'Einstellungen',
'websearch' => 'Websuche-Widget - MetaGer',
'sitesearch' => 'Sitesearch-Widget - MetaGer',
'beitritt' => 'SUMA-EV Beitrittsformular',
'faq' => 'FAQ - MetaGer',
'partnershops' => 'Partnershops - MetaGer',
'languages' => 'Übersetzungstool - MetaGer',
'languages.edit' => 'Sprachdateien bearbeiten - MetaGer',
'app' => 'Apps - MetaGer',
'faktencheck' => 'Fakten-Prüfung contra Fake-News',
'jugendschutz' => 'Jugendschutz',
'ad-info' => 'Werbung bei MetaGer',
'asso' => 'Assoziator - MetaGer',
'plugin' => 'Plugin - MetaGer',
'app' => 'Apps - MetaGer',
'faktencheck' => 'Fakten-Prüfung contra Fake-News',
'jugendschutz' => 'Jugendschutz',
'ad-info' => 'Werbung bei MetaGer',
'asso' => 'Assoziator - MetaGer',
'plugin' => 'Plugin - MetaGer',
'key' => 'Mitgliederschlüssel - MetaGer',
];
<?php
return [
"head" => "Privacy",
"head" => "Privacy",
"general.1" => "For us, privacy is one of the most important goods on the internet. It needs to be preserved and is not to be used for profit. The following is a small summary of our approach.",
"general.3" => "Only free software with open source code is under control of any user. In\r\nall other cases the users have to <em>believe</em> what the maintainers tell about\r\nwhat is going on inside. If maintainers claim that they have strictly\r\nimplemented privacy and data protecion, users have to believe them.\r\nMetaGer is free software under GNU-AGPLv3 Licence. It is available to\r\nanyone at <a href=\"https://gitlab.metager3.de/open-source/MetaGer\">https://gitlab.metager3.de/open-source/MetaGer</a>.",
"policy.1" => "Our Approach/Policy:",
"policy.2" => "Neither do we save your IP, nor the\r\n<a href=\"https://en.wikipedia.org/wiki/Canvas_fingerprinting\" target=\"_blank\" rel=\"noopener\">\"fingerprint\" of your Browser</a> (For the purpose of securing our servers against Hacking- and Bot-Attacks, we need to store these information for a short period of time. It will be then automatically deleted afterwards).",
"policy.5" => "We do not set cookies or use tracking-pixels or similar technology, to \"track\" our users (tracking = following a users digital movement on the internet).",
"policy.6" => "Data transmission is only done encrypted via the https protocol.",
"policy.7" => "We offer access via the anonymous TOR network, the <a href=\"http://forum.suma-ev.de/viewtopic.php?f=3&t=1029&sid=eae857f3102365f76636508ca030dc56\" target=\"_blank\" rel=\"noopener\">MetaGer hidden service</a>.",
"policy.9" => "Since access via the TOR-network seems complicated to many users and often slow, we offer a proxy server, to visit the result pages anonymously: By clicking on the link \"open anonymously\" your personal information will be protected on this click and even on all following clicks.",
"policy.1" => "Our Approach/Policy:",
"policy.2" => "Neither do we save your IP, nor the\r\n<a href=\"https://en.wikipedia.org/wiki/Canvas_fingerprinting\" target=\"_blank\" rel=\"noopener\">\"fingerprint\" of your Browser</a> (For the purpose of securing our servers against Hacking- and Bot-Attacks, we need to store these information for a short period of time. It will be then automatically deleted afterwards).",
"policy.5" => "We do not set tracking-cookies or use tracking-pixels or similar technology, to \"track\" our users (tracking = following a users digital movement on the internet).",
"policy.6" => "Data transmission is only done encrypted via the https protocol.",
"policy.7" => "We offer access via the anonymous TOR network, the <a href=\"http://forum.suma-ev.de/viewtopic.php?f=3&t=1029&sid=eae857f3102365f76636508ca030dc56\" target=\"_blank\" rel=\"noopener\">MetaGer hidden service</a>.",
"policy.9" => "Since access via the TOR-network seems complicated to many users and often slow, we offer a proxy server, to visit the result pages anonymously: By clicking on the link \"open anonymously\" your personal information will be protected on this click and even on all following clicks.",
"policy.10" => "We show as few advertisements as possible, clearly marking them, and financially rely on our users, their <a href=\"/en/spende/\">Donations</a> and membership fees for <a href=\"http://suma-ev.de/en/\" target=\"_blank\" rel=\"noopener\">SUMA-EV</a>.",
"policy.13" => "Metager is operated and developed by the charitable german organisation <a href=\"http://suma-ev.de/en/\" target=\"_blank\" rel=\"noopener\">SUMA-EV</a> in cooperation with the <a href=\"http://www.uni-hannover.de/\" target=\"_blank\" rel=\"noopener\">Leibniz University Hanover</a>.",
"policy.17" => "Our Servers are located exclusively in germany. Therefore they are governed by the german privacy law, which is among the strictest world wide.",
"policy.18" => "We don't even protect data but also the environment: we only use green electricity for our servers.",
"policy.19" => "Since the <a href=\"http://www.heise.de/newsticker/meldung/Bericht-US-Regierung-zapft-Kundendaten-von-Internet-Firmen-an-1884264.html\" target=\"_blank\" rel=\"noopener\">revealments of Edward Snowden in June 2013</a> numerous search engines claim that they protect their users' privacy, because the users' IP adresses are not saved. No matter how honorable these descriptions are - many search engines at least partially host their servers in the USA. Because these search engines are, <a href=\"http://de.wikipedia.org/wiki/USA_PATRIOT_Act\" target=\"_blank\" rel=\"noopener\">as per the Patriot Act and US law</a>, unprotected against the access of local authorities. Thus they cannot provide protection of personal data (even if they really try to).",
"twitter" => "What others say about our privacy-concept on twitter:",
"twitter" => "What others say about our privacy-concept on twitter:",
];
This diff is collapsed.
This diff is collapsed.
......@@ -30,7 +30,7 @@ return [
'slogan.title' => 'MetaGer: Privacy protected Search and Find',
'slogan.1' => 'We provide privacy & data protection and we are a non profit NGO. <a href="/beitritt">Become a member</a> oder <a href="/spende">donate</a>! Our source code is open: <a href="https://gitlab.metager3.de/open-source/MetaGer">gitlab.metager3.de</a>',
'slogan.2' => 'You keep a neutral view on the web by using MetaGer',
'preredesign' => '<a href="https://klassik.metager.org/en">Flashback to the last MetaGer version</a>',
'preredesign' => '<a href="https://klassik.metager.org/en">Flashback to the previous MetaGer version</a>',
"sponsors.head" => "Sponsors",
'sponsors.woxikon' => 'Tagesgeld jetzt!',
......
<?php
return [
'h1' => "Key for your ad-free search",
'p1' => 'MetaGer offers <a href=":url1">SUMA-EV members</a> and generous <a href=":url2">donors</a> a key that allows the search engine to be used completely ad-free.',
'p2' => 'On this page you can enter your key (if known). We save it with the help of a cookie on your PC. This way, your browser automatically sends the key to us every time you search, so we can remove the ad for you.',
'p3' => 'If you look at the cookie there is "key = xxxx" in there. We do not use it for tracking purposes. It is also never stored or logged by us in any way.',
'p4' => 'Important: In order to use this function, you must have allowed cookies in your browser. The setting will remain saved as long as your browser saves cookies.',
'placeholder1' => 'Enter key ...',
'removeKey' => 'remove current key',
'invalidKey' => 'The entered key is invalid',
'backLink' => 'Back to the last page',
];
<?php
return [
"index" => "MetaGer: Privacy Protected Search & Find",
"impressum" => "Site Notice - MetaGer",
"about" => "About Us - MetaGer",
"team" => "Team - MetaGer",
"kontakt" => "Contact - MetaGer",
"spende" => "Donation - MetaGer",
"datenschutz" => "Privacy - MetaGer",
"hilfe" => "Help - MetaGer",
"widget" => "MetaGer Widget",
"settings" => "Settings",
"websearch" => "Websearch-Widget - MetaGer",
"sitesearch" => "Sitesearch-Widget - MetaGer",
"beitritt" => "Application Formular - MetaGer",
"faq" => "FAQ - MetaGer",
"partnershops" => "Partnershops - MetaGer",
"languages" => "translation tool - MetaGer",
"index" => "MetaGer: Privacy Protected Search & Find",
"impressum" => "Site Notice - MetaGer",
"about" => "About Us - MetaGer",
"team" => "Team - MetaGer",
"kontakt" => "Contact - MetaGer",
"spende" => "Donation - MetaGer",
"datenschutz" => "Privacy - MetaGer",
"hilfe" => "Help - MetaGer",
"widget" => "MetaGer Widget",
"settings" => "Settings",
"websearch" => "Websearch-Widget - MetaGer",
"sitesearch" => "Sitesearch-Widget - MetaGer",
"beitritt" => "Application Formular - MetaGer",
"faq" => "FAQ - MetaGer",
"partnershops" => "Partnershops - MetaGer",
"languages" => "translation tool - MetaGer",
"languages.edit" => "Edit language files - MetaGer",
"app" => "Apps - MetaGer",
"faktencheck" => "Fact-checks versus fake news",
'jugendschutz' => 'Youth protection',
'ad-info' => 'MetaGer Advertisements',
'asso' => 'Associator - MetaGer',
'plugin' => 'Plugin - MetaGer',
"app" => "Apps - MetaGer",
"faktencheck" => "Fact-checks versus fake news",
'jugendschutz' => 'Youth protection',
'ad-info' => 'MetaGer Advertisements',
'asso' => 'Associator - MetaGer',
'plugin' => 'Plugin - MetaGer',
'key' => 'Ad-Free-Key - MetaGer',
];
<?php
return [
"head" => "Protección de datos y privacidad",
"general.1" => "Protección de datos y privacidad son para nosotros los bienes más importantes del internet. Son dignos de ser protegidos y no se debería usarlos comercialmente. Aquí una corta lista de nuestro modo de proceder. Una extensa presentación con información trasfondo, porque nosotros mantenemos el único buscador realmente seguro, encuentra en <a href=\"https://suma-ev.de/presse/Sicher-suchen-UND-finden-mit-MetaGer.html\">aquí.</a> ",
"general.3" => "Solo software que esta libre y el código fuente disponible, puede ser revisado por cualquier persona. En los demás casos el usuario tiene que CREER, lo que dice la compañía operadora o el vendedor del sello de calidad. MetaGer es software libre bajo licencia GNU-AGPLv3 (vea la noticia relacionada en alemán en el Heise Ticker <a href=\"http://heise.de/-3295586\" target=\"_blank\" rel=\"noopener\">http://heise.de/-3295586</a>). Usted puede descargar el código fuente de MetaGer aquí: <a href=\"https://gitlab.metager3.de/open-source/MetaGer\" target=\"_blank\" rel=\"noopener\">https://gitlab.metager3.de/open-source/MetaGer</a><br /> No necesita creernos nada: USTED mismo lo puede controlar!",
"policy.1" => "Nuestro procedimiento / política:",
"policy.2" => "No guardamos suya dirección IP, ni suyo \"Browser-Fingerprint\" (<a href=\"http://www.heise.de/security/meldung/Fingerprinting-Viele-Browser-sind-ohne-Cookies-identifizierbar-1982976.html\" target=\"_blank\" rel=\"noopener\">)Excepción : a corto plazo con ocasión de bot/hacking.",
"policy.5" => "No usamos Cookies o un Tracking-Pixel o tecnologías similares, para perseguir a nuestros usuarios (Tracking = Seguir los movimientos en el internet).",
"policy.6" => "La transmisión de datos en MetaGer se hace únicamente cifrado con el protocolo https.",
"policy.7" => "Ofrecemos un acceso sobre la red anónimo TOR, el <a href=\"http://forum.suma-ev.de/viewtopic.php?f=3&t=43&sid=c994b628153235dfef098ba6fea3d60e\" target=\"_blank\" rel=\"noopener\">MetaGer-TOR-hidden Service.</a>",
"policy.9" => "Porque el acceso sobre la red TOR les parece a muchos usuarios complicado, aveces esta lento, nosotros hemos implementado un camino alterno, con lo cual puede llegar hasta las páginas de destino guardando su anonimato : Haciendo click en el link \"abrir anónimo\". Mediante esto sus datos personales están protegidos al hacer click sobre resultados en MetaGer y incluso en todos los clicks que siguen.",
"policy.10" => "Hacemos muy poca publicidad, la marcamos claramente, y confiamos para nuestra financiación en nuestros usuarios, sus <a href=\"/spende/\">donaciones</a> y membresías para el <a href=\"http://suma-ev.de/\" target=\"_blank\" rel=\"noopener\">SUMA-EV</a>. ",
"policy.13" => "La organización sin fines de lucro <a href=\"http://suma-ev.de/\" target=\"_blank\" rel=\"noopener\">SUMA-EV</a> en cooperación con la <a href=\"http://www.uni-hannover.de/\" target=\"_blank\" rel=\"noopener\">Leibniz Universität Hannover</a> mantienen y desarrollan MetaGer. ",
"policy.17" => "Nuestros servidores están exclusivamente en Alemania. Estan bajo de la ley de protección de datos alemán, lo cual es considerado uno de los más estrictos del mundo.",
"policy.18" => "No solamente protegemeos suyos datos, pero el ambiente. Llevamos nuestros servidores con electricidad verde.",
"policy.19" => "Después de las revelaciones de Edward Snowden en Junio 2013 se han posicionado varios buscadores con la autoproclamación que sus búsquedas estuvieron seguras porque no guardan los IP de los usuarios. Suponiendo honestos intensiones en estos autodescripciones, es un hecho que muchos de estos buscadores hostean al menos una parte de sus servidores en EEUU. Esto incluye algunos que aun están recomendados por protectores de datos. Estos buscadores están<a href=\"http://de.wikipedia.org/wiki/USA_PATRIOT_Act\" target=\"_blank\" rel=\"noopener\"> bajo de la ley Patriot Act y bajo derecho de EEUU y las autoridades tienen acceso completo a la data</a> y por ende no puede garantizar la privacidad de sus usuarios (a pesar de los esfuerzos de ellos mismos).",
"twitter" => "Lo que otros dicen sobre nuestro concepto de privacidad en Twitter:"
];
\ No newline at end of file
"head" => "Protección de datos y privacidad",
"general.1" => "Protección de datos y privacidad son para nosotros los bienes más importantes del internet. Son dignos de ser protegidos y no se debería usarlos comercialmente. Aquí una corta lista de nuestro modo de proceder. Una extensa presentación con información trasfondo, porque nosotros mantenemos el único buscador realmente seguro, encuentra en <a href=\"https://suma-ev.de/presse/Sicher-suchen-UND-finden-mit-MetaGer.html\">aquí.</a> ",
"general.3" => "Solo software que esta libre y el código fuente disponible, puede ser revisado por cualquier persona. En los demás casos el usuario tiene que CREER, lo que dice la compañía operadora o el vendedor del sello de calidad. MetaGer es software libre bajo licencia GNU-AGPLv3 (vea la noticia relacionada en alemán en el Heise Ticker <a href=\"http://heise.de/-3295586\" target=\"_blank\" rel=\"noopener\">http://heise.de/-3295586</a>). Usted puede descargar el código fuente de MetaGer aquí: <a href=\"https://gitlab.metager3.de/open-source/MetaGer\" target=\"_blank\" rel=\"noopener\">https://gitlab.metager3.de/open-source/MetaGer</a><br /> No necesita creernos nada: USTED mismo lo puede controlar!",
"policy.1" => "Nuestro procedimiento / política:",
"policy.2" => "No guardamos suya dirección IP, ni suyo \"Browser-Fingerprint\" (<a href=\"http://www.heise.de/security/meldung/Fingerprinting-Viele-Browser-sind-ohne-Cookies-identifizierbar-1982976.html\" target=\"_blank\" rel=\"noopener\">)Excepción : a corto plazo con ocasión de bot/hacking.",
"policy.5" => "No usamos Tracking-Cookies o un Tracking-Pixel o tecnologías similares, para perseguir a nuestros usuarios (Tracking = Seguir los movimientos en el internet).",
"policy.6" => "La transmisión de datos en MetaGer se hace únicamente cifrado con el protocolo https.",
"policy.7" => "Ofrecemos un acceso sobre la red anónimo TOR, el <a href=\"http://forum.suma-ev.de/viewtopic.php?f=3&t=43&sid=c994b628153235dfef098ba6fea3d60e\" target=\"_blank\" rel=\"noopener\">MetaGer-TOR-hidden Service.</a>",
"policy.9" => "Porque el acceso sobre la red TOR les parece a muchos usuarios complicado, aveces esta lento, nosotros hemos implementado un camino alterno, con lo cual puede llegar hasta las páginas de destino guardando su anonimato : Haciendo click en el link \"abrir anónimo\". Mediante esto sus datos personales están protegidos al hacer click sobre resultados en MetaGer y incluso en todos los clicks que siguen.",
"policy.10" => "Hacemos muy poca publicidad, la marcamos claramente, y confiamos para nuestra financiación en nuestros usuarios, sus <a href=\"/spende/\">donaciones</a> y membresías para el <a href=\"http://suma-ev.de/\" target=\"_blank\" rel=\"noopener\">SUMA-EV</a>. ",
"policy.13" => "La organización sin fines de lucro <a href=\"http://suma-ev.de/\" target=\"_blank\" rel=\"noopener\">SUMA-EV</a> en cooperación con la <a href=\"http://www.uni-hannover.de/\" target=\"_blank\" rel=\"noopener\">Leibniz Universität Hannover</a> mantienen y desarrollan MetaGer. ",
"policy.17" => "Nuestros servidores están exclusivamente en Alemania. Estan bajo de la ley de protección de datos alemán, lo cual es considerado uno de los más estrictos del mundo.",
"policy.18" => "No solamente protegemeos suyos datos, pero el ambiente. Llevamos nuestros servidores con electricidad verde.",
"policy.19" => "Después de las revelaciones de Edward Snowden en Junio 2013 se han posicionado varios buscadores con la autoproclamación que sus búsquedas estuvieron seguras porque no guardan los IP de los usuarios. Suponiendo honestos intensiones en estos autodescripciones, es un hecho que muchos de estos buscadores hostean al menos una parte de sus servidores en EEUU. Esto incluye algunos que aun están recomendados por protectores de datos. Estos buscadores están<a href=\"http://de.wikipedia.org/wiki/USA_PATRIOT_Act\" target=\"_blank\" rel=\"noopener\"> bajo de la ley Patriot Act y bajo derecho de EEUU y las autoridades tienen acceso completo a la data</a> y por ende no puede garantizar la privacidad de sus usuarios (a pesar de los esfuerzos de ellos mismos).",
"twitter" => "Lo que otros dicen sobre nuestro concepto de privacidad en Twitter:",
];
// Variables
@import "../variables.less";
@import "../general/cards.less";
#key-site {
.section {
.card-medium;
margin: 8px 0;
.error {
color: red;
text-align: center;
font-weight: bold;
}
}
#form-wrapper {
margin-top: 8px;
form {
text-align: center;
}
}
#back-link {
text-align: center;
margin-top: 16px;
}
}
\ No newline at end of file
......@@ -23,56 +23,16 @@
display: flex;
max-width: 600px;
#search-key {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
z-index: 1;
#input-key {
margin: 0;
padding: 0px;
border: none;
-webkit-box-shadow: none;
box-shadow: none;
height: 40px;
width: 0px;
outline-color: green;
-webkit-transition: width 0.5s, padding 0.5s, outline-color 0s, border-color 0s, -webkit-box-shadow 0s;
transition: width 0.5s, padding 0.5s, outline-color 0s, border-color 0s, -webkit-box-shadow 0s;
transition: width 0.5s, padding 0.5s, outline-color 0s, border-color 0s, box-shadow 0s;
transition: width 0.5s, padding 0.5s, outline-color 0s, border-color 0s, box-shadow 0s, -webkit-box-shadow 0s;
&:focus {
width: 200px;
padding: 6px 10px 6px 10px;
outline-color: @metager-orange;
-webkit-box-shadow: 0px 0px 2px 2px rgba(255, 128, 0, 1);
box-shadow: 0px 0px 2px 2px rgba(255, 128, 0, 1);
border-color: rgba(255, 128, 0, 1);
border-radius: 4px;
+#key-label {
visibility: hidden;
width: 0px;
}
justify-content: center;
align-items: center;
> a {
padding: 8px 16px;
color: #777;
&.authorized {
color:green;
}
}
#key-label {
cursor: pointer;
height: 40px;
width: 40px;
margin: 0;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-transition: width 0s, visibility 0s;
transition: width 0s, visibility 0s;
-webkit-transition-delay: 0.3s;
transition-delay: 0.3s;
}
}
.search-input {
position: relative;
......
@extends('layouts.subPages', ['page' => 'key'])
@section('title', $title )
@section('content')
<link type="text/css" rel="stylesheet" href="{{ mix('/css/key.css') }}" />
<div id="key-site">
<div class="section">
<h1>{{ trans('key.h1')}}</h1>
<p>{!! trans('key.p1', ['url1' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), '/beitritt'), 'url2' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), '/spende')])!!}</p>
<p>{{ trans('key.p2') }}</p>
<p>{{ trans('key.p3') }}</p>
<p>{{ trans('key.p4') }}</p>
</div>
<div class="section">
<div id="form-wrapper">
<form method="post">
<input type="hidden" name="redirUrl" value="{{ Request::input('redirUrl', '') }}" />
<input type="text" name="key" value="{{Cookie::get('key')}}" placeholder="@lang('key.placeholder1')" autofocus>
<button type="submit" class="btn btn-success">OK</button>
</form>
@if(Cookie::get('key') !== NULL)
<form method="post" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('KeyController@removeKey', ['redirUrl' => url()->full()])) }}">
<input type="hidden" name="redirUrl" value="{{ Request::input('redirUrl', '') }}" />
<button type="submit" class="btn btn-error">@lang('key.removeKey')</button>
</form>
@endif
</div>
@if(isset($keyValid) && $keyValid === false)
<p class="error">@lang('key.invalidKey')</p>
@endif
@if(Request::input('redirUrl', '') !== '')
<div id="back-link"><a href="{{Request::input('redirUrl')}}">@lang('key.backLink')</a></div>
@endif
</div>
</div>
@endsection
......@@ -4,10 +4,9 @@
<div class="searchbar {{$class ?? ''}}">
<div class="search-input-submit">
<div id="search-key">
<input id="input-key" type="text" name="key" placeholder="{{ trans ('index.key.placeholder') }}" tabindex="1">
<label id="key-label" for="input-key" data-tooltip="{{ trans ('index.key.tooltip') }}">
<a id="key-link" @if(isset($apiAuthorized) && $apiAuthorized)class="authorized" @else class="unauthorized"@endif href="{{ action('KeyController@index', ['redirUrl' => url()->full() ]) }}" data-tooltip="{{ trans ('index.key.tooltip') }}">
<i class="fa fa-key" aria-hidden="true"></i>
</label>
</a>
</div>
<div class="search-input">
<input type="search" name="eingabe" value="@if(isset($eingabe)){{$eingabe}}@endif" required="" @if(\Request::is('/')) autofocus @endif autocomplete="off" class="form-control" placeholder="{{ trans('index.placeholder') }}" tabindex="2">
......
<?php
Route::group(
[
'prefix' => LaravelLocalization::setLocale(), /*,
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect' ]*/
],
function () {
Route::get('meta/key', "KeyController@index");
Route::post('meta/key', 'KeyController@setKey');
Route::post('meta/key/remove', 'KeyController@removeKey');
}
);
......@@ -203,7 +203,6 @@ Route::group(
Route::post('synoptic/{exclude?}/{chosenFile?}', 'LanguageController@processSynopticPageInput');
Route::get('languages/edit/{from}/{to}/{exclude?}/{email?}', 'LanguageController@createEditPage');
Route::post('languages/edit/{from}/{to}/{exclude?}/{email?}', 'MailController@sendLanguageFile');
Route::get('berlin', 'StartpageController@berlin');
Route::group(['prefix' => 'app'], function () {
Route::get('/', function () {
......
......@@ -37,6 +37,12 @@ mix
strictMath: true
}
)
.less(
"resources/less/metager/pages/key.less",
"public/css/key.css", {
strictMath: true
}
)
.less("resources/less/utility.less", "public/css/utility.css", {
strictMath: true
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment