Compare commits

..

2 Commits

Author SHA1 Message Date
Matthieu Lamalle 7bf6ffd417 improve ui 2019-11-28 10:46:32 +01:00
Matthieu Lamalle d53fd64121 set ldap auth 2019-11-28 10:21:17 +01:00
7 changed files with 20 additions and 16 deletions

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
foods.db foods.db
server.conf server.conf
server

View File

@ -4,5 +4,4 @@ FOODOLES
Projet Go de vote pour choisir ce qu'on mange au déjeuner Projet Go de vote pour choisir ce qu'on mange au déjeuner
TODO : TODO :
Afficher une liste de restaurants locaux répondant au vote du jour Afficher une liste de restaurants locaux répondant au vote du jour
Afficher le résultat du vote

View File

@ -11,7 +11,7 @@ import (
// LogIn auth the client // LogIn auth the client
func LogIn(username string, password string) (ok bool, user map[string]string) { func LogIn(username string, password string) (ok bool, user map[string]string) {
var configFile = "../server.conf" var configFile = "server.conf"
var conf *config.Config var conf *config.Config
var conferr error var conferr error
conf, conferr = config.NewFromFile(configFile) conf, conferr = config.NewFromFile(configFile)
@ -30,6 +30,7 @@ func LogIn(username string, password string) (ok bool, user map[string]string) {
GroupFilter: "(memberUid=%s)", GroupFilter: "(memberUid=%s)",
Attributes: conf.LDAP.Attributes, Attributes: conf.LDAP.Attributes,
} }
log.Print(ldapclient)
defer ldapclient.Close() defer ldapclient.Close()
ok, user, err := ldapclient.Authenticate(username, password) ok, user, err := ldapclient.Authenticate(username, password)

BIN
foods.db

Binary file not shown.

BIN
server

Binary file not shown.

View File

@ -1,6 +1,7 @@
package main package main
import ( import (
"cadoles/foodoles/auth"
"cadoles/foodoles/bdd" "cadoles/foodoles/bdd"
"cadoles/foodoles/config" "cadoles/foodoles/config"
"cadoles/foodoles/foodlist" "cadoles/foodoles/foodlist"
@ -51,12 +52,14 @@ func main() {
// ServerHTTP is the entry point to all requests // ServerHTTP is the entry point to all requests
func (u *User) ServeHTTP(w http.ResponseWriter, r *http.Request) { func (u *User) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if err := r.ParseForm(); err != nil { if err := r.ParseForm(); err != nil {
log.Printf("ParseForm() err: %v", err) log.Printf("ParseForm() err: %v", err)
} else { } else {
u.Auth(r.FormValue("user"), r.FormValue("password")) u.Auth(r.FormValue("user"), r.FormValue("password"))
} }
if u.Name == "" { if u.Name == "" {
LogInPage(w, r) LogInPage(w, r)
return return
} }
@ -77,14 +80,14 @@ func (u *User) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// Auth is the login page for user // Auth is the login page for user
func (u *User) Auth(user string, pass string) bool { func (u *User) Auth(user string, pass string) bool {
// auth, _ := auth.LogIn(user, pass) auth, _ := auth.LogIn(user, pass)
// if auth { if auth {
// u.Name = user u.Name = user
// u.Password = pass u.Password = pass
// } }
u.Name = "mlamalle" // auth := true
u.Password = "password" // u.Name = "mlamalle"
var auth = true // u.Password = "pass"
return auth return auth
} }

View File

@ -1,12 +1,12 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8">
<title>Foodoles written in Go</title> <title>Foodoles written in Go</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.min.css"> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.min.css">
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script> <script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.min.js"></script>
<style type="text/css"> h2 { margin: 2em 0em; } .ui.container { padding-top: 5em; padding-bottom: 5em; } </style> <style type="text/css">body { font-family: arial } h2 { margin: 2em 0em; } .ui.container { padding-top: 5em; padding-bottom: 5em; } </style>
<script type="text/javascript"> <script type="text/javascript">
function vote(option){$.post( "/", {option}, ( data ) => { $('.modal').modal('show');});} function vote(option){$.post( "/", {option}, ( data ) => { $('.modal').modal('show');});}
function reload(){document.location.reload(true);} function reload(){document.location.reload(true);}
@ -16,9 +16,9 @@
<div class="ui container"> <div class="ui container">
<h1 class="ui header">Foodoles - {{.Foods.Date}}</h1><br/> <h1 class="ui header">Foodoles - {{.Foods.Date}}</h1><br/>
<h2 class="ui header">Pick Your Preferred Lunch's Food For Today</h2><br/> <h2 class="ui header">Pick Your Preferred Lunch's Food For Today</h2><br/>
<div class="ui compact menu"> <div class="ui ">
{{ range .Foods.Foods }} {{ range .Foods.Foods }}
<a onclick="vote('{{ .Title }}')" class="ui item label massive"> <a onclick="vote('{{ .Title }}')" class="ui label massive" data-tooltip="{{ .Title }}" data-variation="basic" data-position="bottom left">
{{$cur := .Title}} {{$cur := .Title}}
{{ .Icon }} {{ .Icon }}
{{ range $.Votes.Votes }} {{ range $.Votes.Votes }}