12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package main
- import (
- "net/http"
- "sparrow/pkg/server"
- "github.com/go-martini/martini"
- "github.com/martini-contrib/render"
- "github.com/martini-contrib/sessions"
- "github.com/xyproto/permissionsql"
- )
- func main() {
- // init server
- err := server.Init("apiprovidor")
- if err != nil {
- server.Log.Fatal(err)
- return
- }
- DSN := *confDBUser + ":" + *confDBPass + "@tcp(" + *confDBHost + ":" + *confDBPort + ")/" + *confDBName + "?charset=utf8&parseTime=True"
- // martini setup
- store := sessions.NewCookieStore([]byte("secret123"))
- store.Options(sessions.Options{
- MaxAge: 0,
- })
- martini.Env = martini.Prod
- handler := martini.Classic()
- perm, err := permissionsql.NewWithDSN(DSN, *confDBName)
- if err != nil {
- server.Log.Fatal(err)
- return
- }
- handler.Use(render.Renderer())
- permissionHandler := func(w http.ResponseWriter, req *http.Request, c martini.Context) {
- // Check if the user has the right admin/user rights
- if perm.Rejected(w, req) {
- // Deny the request
- http.Error(w, "Permission denied!", http.StatusForbidden)
- // Reject the request by not calling the next handler below
- return
- }
- // Call the next middleware handler
- c.Next()
- }
- handler.Use(permissionHandler)
- route(handler, perm)
- // register a http handler
- err = server.RegisterHTTPHandler(handler)
- if err != nil {
- server.Log.Errorf("RegisterHTTPHandler Error: %s", err)
- return
- }
- // run notifier
- // err = RunNotifier()
- // if err != nil {
- // server.Log.Fatalf("Run Notifier Error: %s", err)
- // }
- // go
- err = server.Run()
- if err != nil {
- server.Log.Fatal(err)
- }
- }
|