Giter VIP home page Giter VIP logo

cheldt / landingpage-freifunkfranken Goto Github PK

View Code? Open in Web Editor NEW

This project forked from freifunkfranken/landingpage-freifunkfranken

0.0 4.0 0.0 354 KB

Eine Startseite, die einem Benutzer von Freifunk-Franken angezeigt wird, bevor er Zugriff auf das Internet bekommt.

Home Page: http://freifunkfranken.github.io/landingpage-freifunkfranken/

HTML 23.03% CSS 22.74% JavaScript 39.11% Processing 15.13%

landingpage-freifunkfranken's Introduction

landingpage-freifunkfranken

Eine Startseite, die einem Benutzer von Freifunk-Franken angezeigt wird, bevor er Zugriff auf das Internet bekommt. Informationen gibt es unter www.freifunk-franken.de .

Lizenz: CC-BY-SA 2014 by Alexander Wunschik, https://creativecommons.org/licenses/by-sa/2.0/de/

Status

Diese Seite befindet sich in aktiver Entwicklung und wird noch nicht produktiv eingesetzt.
Der aktuelle Stand ist einsehbar auf http://freifunkfranken.github.io/landingpage-freifunkfranken/

Mitmachen

Es dürfen gerne aussagekräftige Issues angelegt werden. Bitte für jedes Problem ein eigenes Ticket.
Es werden auch Pull-Requets angenommen. Die Request dabei möglich klein halten und immer nur ein Issue auf einmal fixen.
Commit-Messages und Source-Comments bitte auf Englisch.
Danke!

Installation

git clone https://github.com/FreifunkFranken/landingpage-freifunkfranken.git
cd landingpage-freifunkfranken
git checkout gh-pages
npm install connect
node server.js

Nun kann die Landingpage unter http://localhost:8080 geöffnet werden.

Serverseitig

Grob gesagt funktioniert das so: Es wird in einer Datenbank nachgeschaut, ob der Nutzer schon "eingeloggt" ist. Wenn nein, dann wird er auf die URL in deny_info umgeleitet. Auf alle URLs die "freifunk" im Namen haben, kann man immer zugreifen, deshalb kann auch die Splashpage geladen werden. Wenn der Nutzer auf die URL http://freifunkfranken.github.io/landingpage-freifunkfranken/FreifunkFrankenAccess.html geht, wird er in die Datenbank geschrieben und somit für 86400 Sekunden freigeschaltet.

Hier ist der relevante Teil der squid.conf:

#für alles was nicht ein Browser ist den Durchgang erlauben
acl brs browser Mozilla
http_access allow !brs

#Das hier definiert eine Datenbank gegen die Nutzer abgeglichen werden, da steht quasi für jede IP-Adresse drin, ob das freigeschaltet ist oder nicht. Nach 86400 Sekunden wird der Eintrag rausgeworfen
external_acl_type session ttl=2 concurrency=100 %SRC /usr/lib/squid3/squid_session -a -t 86400 -b /var/lib/squid/session.db
acl session_login external session LOGIN
acl session_is_active external session

#URL zum Einloggen
acl clicked_login_url url_regex -i http://freifunkfranken.github.io/landingpage-freifunkfranken/FreifunkFrankenAccess.html

#Wenn die URL zum einloggen verwendet wurde, einloggen
http_access allow clicked_login_url session_login

#Immer Zugriff zu Freifunk Franken erlauben
acl freifunk_franken_url url_regex -i freifunk
http_access allow freifunk_franken_url
#sonst
http_access deny !session_is_active

#URL der Landingpage
deny_info http://freifunkfranken.github.io/landingpage-freifunkfranken/ session_is_active

landingpage-freifunkfranken's People

Contributors

mojoaxel avatar stilgarbf avatar sebastian-schmid avatar

Watchers

 avatar James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.