From 5fa19223a9171de924fff96be880babc8d9a9a9b Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sat, 19 Nov 2016 16:26:23 +0100 Subject: [PATCH] admin: can change the baseurl interface --- admin/index.go | 54 +++++ admin/main.go | 22 +- admin/static/index.html | 4 +- admin/static/js/angular-route.min.js | 16 +- admin/static/js/angular.min.js | 296 +-------------------------- admin/static/js/bootstrap.min.js | 8 +- admin/static/js/jquery.min.js | 6 +- frontend/static/js/d3.v3.min.js | 5 + 8 files changed, 82 insertions(+), 329 deletions(-) create mode 100644 admin/index.go mode change 100644 => 120000 admin/static/js/angular-route.min.js mode change 100644 => 120000 admin/static/js/angular.min.js mode change 100644 => 120000 admin/static/js/bootstrap.min.js mode change 100644 => 120000 admin/static/js/jquery.min.js create mode 100644 frontend/static/js/d3.v3.min.js diff --git a/admin/index.go b/admin/index.go new file mode 100644 index 00000000..b3a75929 --- /dev/null +++ b/admin/index.go @@ -0,0 +1,54 @@ +package main + +const indextpl = ` + + + + Challenge Forensic - Administration + + + + + + + +
+
+
+
+
+ + + + + + + + + +` diff --git a/admin/main.go b/admin/main.go index 3fb57f91..7016874e 100644 --- a/admin/main.go +++ b/admin/main.go @@ -6,7 +6,9 @@ import ( "log" "net/http" "os" + "path" "path/filepath" + "text/template" "srs.epita.fr/fic-server/libfic" ) @@ -21,7 +23,7 @@ var CloudPassword string func main() { var bind = flag.String("bind", "127.0.0.1:8081", "Bind port/socket") var dsn = flag.String("dsn", "fic:fic@/fic", "DSN to connect to the MySQL server") - flag.StringVar(&BaseURL, "baseurl", "http://fic.srs.epita.fr/", "URL prepended to each URL") + flag.StringVar(&BaseURL, "baseurl", "/", "URL prepended to each URL") flag.StringVar(&SubmissionDir, "submission", "./submissions/", "Base directory where save submissions") flag.StringVar(&PKIDir, "pki", "./pki/", "Base directory where found PKI scripts") flag.StringVar(&fic.FilesDir, "files", "./FILES/", "Base directory where found challenges files, local part") @@ -63,14 +65,24 @@ func main() { log.Fatal("Cannot create database: ", err) } + log.Println("Changing base url...") + if file, err := os.OpenFile(path.Join(staticDir, "index.html"), os.O_CREATE|os.O_WRONLY|os.O_TRUNC, os.FileMode(0644)); err != nil { + log.Println("Unable to open index.html: ", err) + } else if indexTmpl, err := template.New("index").Parse(indextpl); err != nil { + log.Println("Cannot create template: ", err) + } else if err := indexTmpl.Execute(file, map[string]string{"urlbase": path.Clean(path.Join(BaseURL, "nuke"))[:len(path.Clean(path.Join(BaseURL, "nuke"))) - 4]}); err != nil { + log.Println("An error occurs during template execution: ", err) + } + + os.Chdir(PKIDir) log.Println("Registering handlers...") mux := http.NewServeMux() - mux.Handle("/api/", http.StripPrefix("/api", ApiHandler())) - mux.Handle("/teams/", StaticHandler(staticDir)) - mux.Handle("/themes/", StaticHandler(staticDir)) - mux.Handle("/", http.FileServer(http.Dir(staticDir))) + mux.Handle(path.Join(BaseURL, "api") + "/", http.StripPrefix(path.Join(BaseURL, "api"), ApiHandler())) + mux.Handle(path.Join(BaseURL, "teams") + "/", http.StripPrefix(BaseURL, StaticHandler(staticDir))) + mux.Handle(path.Join(BaseURL, "themes") + "/", http.StripPrefix(BaseURL, StaticHandler(staticDir))) + mux.Handle(BaseURL, http.StripPrefix(BaseURL, http.FileServer(http.Dir(staticDir)))) log.Println(fmt.Sprintf("Ready, listening on %s", *bind)) if err := http.ListenAndServe(*bind, mux); err != nil { diff --git a/admin/static/index.html b/admin/static/index.html index c409ffa9..67c1f462 100644 --- a/admin/static/index.html +++ b/admin/static/index.html @@ -5,7 +5,7 @@ Challenge Forensic - Administration - +