From 2988595b143be4b6cac12967754cf131afc42643 Mon Sep 17 00:00:00 2001 From: jan Date: Fri, 18 Dec 2015 15:13:45 +0100 Subject: =?UTF-8?q?basis=20f=C3=BCr=20charakterin.=20Als=20n=C3=A4chstes?= =?UTF-8?q?=20m=C3=BCsste=20der=20Loginprozess=20folgen,=20daf=C3=BCr=20br?= =?UTF-8?q?auchen=20wir=20jedoch=20erst=20eine=20Datenbank.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/README b/README new file mode 100644 index 0000000..e0fce0f --- /dev/null +++ b/README @@ -0,0 +1 @@ +Charakterin ist das krasse Login- und Accountframework für Grilist und anderes(soon!) \ No newline at end of file diff --git a/charakterin.go b/charakterin.go new file mode 100644 index 0000000..15f2a6c --- /dev/null +++ b/charakterin.go @@ -0,0 +1,56 @@ +package charakterin + +import ( + "log" + "net/http" +) + +// Renderer wird verwendet, um die Routen (bspw. Login-Route) zu rendern. Damit bleibt Charakterin selbst ohne Template. +type Renderer interface { + // RenderLoginPage zeigt die Login-Seite an. + RenderLoginPage(w http.ResponseWriter, data map[string]interface{}) +} + +// Charakterin ist das tolle Login- und Accountmanagementsystem. +type Charakterin struct { + renderer Renderer + FallbackRoute string +} + +// New erstellt eine neue Instanz von Charakterin. +func New() *Charakterin { + return &Charakterin{ + nil, + "/", + } +} + +// UseRenderer sagt charakterin, welchen Renderer es benutzen soll. +func (c *Charakterin) UseRenderer(renderer Renderer) { + c.renderer = renderer +} + +// DisplayLogin zeigt die Route für den Login an, wenn der User nicht bereits eingeloggt ist. +func (c *Charakterin) DisplayLogin(w http.ResponseWriter, r *http.Request) { + if c.IsLoggedIn(r) { + http.Redirect(w, r, c.FallbackRoute, 302) + return + } + + if c.renderer == nil { + log.Println("charakterin: no renderer set") + return + } + + c.renderer.RenderLoginPage(w, make(map[string]interface{})) +} + +// Login versucht einen Charakter einzuloggen. +func (c *Charakterin) Login(w http.ResponseWriter, r *http.Request) { + +} + +// IsLoggedIn überprüft anhand eines Request, ob der Charakter eingeloggt ist. +func (c *Charakterin) IsLoggedIn(r *http.Request) bool { + return false +} -- cgit v0.10.1