diff --git a/app.go b/app.go
index 00c0055..f5abddd 100644
--- a/app.go
+++ b/app.go
@@ -2,56 +2,49 @@ package main
import (
"fmt"
- "log"
- "net/http"
-
- c "git.1248.nz/1248/Otfe/controllers"
- a "git.1248.nz/1248/Otfe/misc/auth"
- "git.1248.nz/1248/Otfe/misc/helpers"
- "github.com/husobee/vestigo"
)
func main() {
fmt.Println("Starting")
- log.Fatal(http.ListenAndServe(":8080", router()))
+ //log.Fatal(http.ListenAndServe(":8080", router()))
}
-func router() *vestigo.Router {
- router := vestigo.NewRouter()
+// func router() *vestigo.Router {
+// router := vestigo.NewRouter()
- var static c.Static
- router.Get("/", a.User(static.Home))
+// var static c.Static
+// router.Get("/", a.User(static.Home))
- router.Get("/public/*", http.FileServer(
- http.Dir(helpers.GetAssets())).ServeHTTP)
+// router.Get("/public/*", http.FileServer(
+// http.Dir(helpers.GetAssets())).ServeHTTP)
- //User routes
- var user c.User
- router.Get("/user", c.User{}.Index)
- router.Get("/user/:username", a.Perm(user.Show, user.ShowSelf,
- "user.show"))
- router.Get("/user/new", user.New)
- router.Post("/user/new", user.Create)
- router.Get("/user/:username/edit", user.Edit)
- router.Post("/user/:username/edit", user.Update)
- router.Post("/user/:username/delete", user.Delete)
- router.Get("/register", user.New)
+// //User routes
+// var user c.User
+// router.Get("/user", c.User{}.Index)
+// router.Get("/user/:username", a.Perm(user.Show, user.ShowSelf,
+// "user.show"))
+// router.Get("/user/new", user.New)
+// router.Post("/user/new", user.Create)
+// router.Get("/user/:username/edit", user.Edit)
+// router.Post("/user/:username/edit", user.Update)
+// router.Post("/user/:username/delete", user.Delete)
+// router.Get("/register", user.New)
- //Session routes
- var session c.Session
- router.Get("/login", session.New)
- router.Post("/login", session.Create)
- router.Post("/logout", session.Delete)
+// //Session routes
+// var session c.Session
+// router.Get("/login", session.New)
+// router.Post("/login", session.Create)
+// router.Post("/logout", session.Delete)
- //Post routes
- router.Get("/post", c.Post{}.Index)
- router.Get("/user/:id", c.Post{}.Show)
- router.Get("/post/new", c.Post{}.New)
- router.Post("/post/new", c.Post{}.Create)
- router.Get("/post/:id/edit", c.Post{}.Edit)
- router.Post("/post/:id/edit", c.Post{}.Update)
- router.Post("/post/:id/delete", c.Post{}.Delete)
+// //Post routes
+// router.Get("/post", c.Post{}.Index)
+// router.Get("/user/:id", c.Post{}.Show)
+// router.Get("/post/new", c.Post{}.New)
+// router.Post("/post/new", c.Post{}.Create)
+// router.Get("/post/:id/edit", c.Post{}.Edit)
+// router.Post("/post/:id/edit", c.Post{}.Update)
+// router.Post("/post/:id/delete", c.Post{}.Delete)
- return router
-}
+// return router
+// }
diff --git a/app/seed_test.go b/app/seed_test.go
index 9a11154..3e32d89 100644
--- a/app/seed_test.go
+++ b/app/seed_test.go
@@ -3,8 +3,8 @@ package main
import (
"testing"
- "git.1248.nz/1248/Otfe/misc/helpers"
- "git.1248.nz/1248/Otfe/models"
+ "git.technical.kiwi/go/otfe/misc/helpers"
+ "git.technical.kiwi/go/otfe/models"
"github.com/globalsign/mgo/bson"
)
diff --git a/controllers/controller.go b/controllers/controller.go
index b273c2f..82ccd7b 100644
--- a/controllers/controller.go
+++ b/controllers/controller.go
@@ -1,33 +1,33 @@
-package controllers
+// package controllers
-import (
- "html/template"
- "net/http"
+// import (
+// "html/template"
+// "net/http"
- "git.1248.nz/1248/Otfe/misc/helpers"
- "github.com/globalsign/mgo/bson"
-)
+// "git.technical.kiwi/go/otfe/misc/helpers"
+// "github.com/globalsign/mgo/bson"
+// )
-/*type Controller interface {
- Index(w http.ResponseWriter, r *http.Request)
- Show(w http.ResponseWriter, r *http.Request)
- New(w http.ResponseWriter, r *http.Request)
- Create(w http.ResponseWriter, r *http.Request)
- Edit(w http.ResponseWriter, r *http.Request)
- Update(w http.ResponseWriter, r *http.Request)
- Delete(w http.ResponseWriter, r *http.Request)
-}*/
+// /*type Controller interface {
+// Index(w http.ResponseWriter, r *http.Request)
+// Show(w http.ResponseWriter, r *http.Request)
+// New(w http.ResponseWriter, r *http.Request)
+// Create(w http.ResponseWriter, r *http.Request)
+// Edit(w http.ResponseWriter, r *http.Request)
+// Update(w http.ResponseWriter, r *http.Request)
+// Delete(w http.ResponseWriter, r *http.Request)
+// }*/
-var funcMap = template.FuncMap{
- "getId": func(id bson.ObjectId) string {
- return "1"
- },
-}
+// var funcMap = template.FuncMap{
+// "getId": func(id bson.ObjectId) string {
+// return "1"
+// },
+// }
-func t(w http.ResponseWriter, data interface{}, layout string) {
- views := helpers.GetRootDir() + "/views/"
- tmpl := template.Must(template.New("layout").Funcs(funcMap).
- ParseFiles(views+"/layouts/layout.gtpl", views+"/layouts/header.gtpl", views+"/layouts/footer.gtpl", views+"/layouts/nav.gtpl", views+layout))
- tmpl.ExecuteTemplate(w, "layout", data)
+// func t(w http.ResponseWriter, data interface{}, layout string) {
+// views := helpers.GetRootDir() + "/views/"
+// tmpl := template.Must(template.New("layout").Funcs(funcMap).
+// ParseFiles(views+"/layouts/layout.gtpl", views+"/layouts/header.gtpl", views+"/layouts/footer.gtpl", views+"/layouts/nav.gtpl", views+layout))
+// tmpl.ExecuteTemplate(w, "layout", data)
-}
+// }
diff --git a/controllers/post.go b/controllers/post.go
index 695b943..2d61c59 100644
--- a/controllers/post.go
+++ b/controllers/post.go
@@ -1,66 +1,66 @@
-package controllers
+// package controllers
-import (
- "fmt"
- "net/http"
+// import (
+// "fmt"
+// "net/http"
- "git.1248.nz/1248/Otfe/misc/helpers"
- "git.1248.nz/1248/Otfe/models"
- "github.com/husobee/vestigo"
-)
+// "git.technical.kiwi/go/otfe/misc/helpers"
+// "git.technical.kiwi/go/otfe/models"
+// "github.com/husobee/vestigo"
+// )
-//User handlers
-type Post struct {
- Title string
-}
+// //User handlers
+// type Post struct {
+// Title string
+// }
-//Index of posts
-func (p Post) Index(w http.ResponseWriter, r *http.Request) {
- p.Title = "Posts"
- t(w, p, "/post/posts.gtpl")
-}
+// //Index of posts
+// func (p Post) Index(w http.ResponseWriter, r *http.Request) {
+// p.Title = "Posts"
+// t(w, p, "/post/posts.gtpl")
+// }
-//Show given user
-func (p Post) Show(w http.ResponseWriter, r *http.Request) {
- t(w, p, "/post/post.gtpl")
-}
+// //Show given user
+// func (p Post) Show(w http.ResponseWriter, r *http.Request) {
+// t(w, p, "/post/post.gtpl")
+// }
-//New user form
-func (p Post) New(w http.ResponseWriter, r *http.Request) {
- t(w, p, "/post/new.gtpl")
-}
+// //New user form
+// func (p Post) New(w http.ResponseWriter, r *http.Request) {
+// t(w, p, "/post/new.gtpl")
+// }
-//Create new a user
-func (p Post) Create(w http.ResponseWriter, r *http.Request) {
- r.ParseForm()
- var user models.User
- var err error
- user.Username = r.Form.Get("username")
- user.Email = r.Form.Get("email")
- user.Password, err = helpers.HashPassword(r.Form.Get("password"))
- helpers.CheckError(err)
- user.Create()
- http.Redirect(w, r, "/user/"+user.Username, http.StatusFound)
+// //Create new a user
+// func (p Post) Create(w http.ResponseWriter, r *http.Request) {
+// r.ParseForm()
+// var user models.User
+// var err error
+// user.Username = r.Form.Get("username")
+// user.Email = r.Form.Get("email")
+// user.Password, err = helpers.HashPassword(r.Form.Get("password"))
+// helpers.CheckError(err)
+// user.Create()
+// http.Redirect(w, r, "/user/"+user.Username, http.StatusFound)
-}
+// }
-//Edit form
-func (p Post) Edit(w http.ResponseWriter, r *http.Request) {
- var data userData
- data.User.Read("username", vestigo.Param(r, "username"))
+// //Edit form
+// func (p Post) Edit(w http.ResponseWriter, r *http.Request) {
+// var data userData
+// data.User.Read("username", vestigo.Param(r, "username"))
-}
+// }
-//Update user
-func (p Post) Update(w http.ResponseWriter, r *http.Request) {
+// //Update user
+// func (p Post) Update(w http.ResponseWriter, r *http.Request) {
-}
+// }
-//Delete user
-func (p Post) Delete(w http.ResponseWriter, r *http.Request) {
- fmt.Println("Deleting " + vestigo.Param(r, "username"))
- var user models.User
- user.Delete("username", vestigo.Param(r, "username"))
- http.Redirect(w, r, "/user", http.StatusFound)
+// //Delete user
+// func (p Post) Delete(w http.ResponseWriter, r *http.Request) {
+// fmt.Println("Deleting " + vestigo.Param(r, "username"))
+// var user models.User
+// user.Delete("username", vestigo.Param(r, "username"))
+// http.Redirect(w, r, "/user", http.StatusFound)
-}
+// }
diff --git a/controllers/session.go b/controllers/session.go
index 88f1c5f..58bdae3 100644
--- a/controllers/session.go
+++ b/controllers/session.go
@@ -1,72 +1,72 @@
-package controllers
+// package controllers
-import (
- "errors"
- "net/http"
+// import (
+// "errors"
+// "net/http"
- "git.1248.nz/1248/Otfe/misc/cookie"
- "git.1248.nz/1248/Otfe/misc/helpers"
- "git.1248.nz/1248/Otfe/misc/rand"
- "git.1248.nz/1248/Otfe/models"
-)
+// "git.technical.kiwi/go/otfe/misc/cookie"
+// "git.technical.kiwi/go/otfe/misc/helpers"
+// "git.technical.kiwi/go/otfe/misc/rand"
+// "git.technical.kiwi/go/otfe/models"
+// )
-//Session controllers
-type Session struct{}
+// //Session controllers
+// type Session struct{}
-type pageData struct {
- Title string
- Err string
- User models.User
-}
+// type pageData struct {
+// Title string
+// Err string
+// User models.User
+// }
-//New login form
-func (s *Session) New(w http.ResponseWriter, r *http.Request) {
- var err error
- data := pageData{Title: "Login"}
- data.Err, err = cookie.Read(r, "error")
- if err == nil {
- cookie.Delete(w, "error")
- }
- t(w, data, "/static/login.gtpl")
-}
+// //New login form
+// func (s *Session) New(w http.ResponseWriter, r *http.Request) {
+// var err error
+// data := pageData{Title: "Login"}
+// data.Err, err = cookie.Read(r, "error")
+// if err == nil {
+// cookie.Delete(w, "error")
+// }
+// t(w, data, "/static/login.gtpl")
+// }
-//Create a new session
-func (s *Session) Create(w http.ResponseWriter, r *http.Request) {
- r.ParseForm()
- //Get email and password and check they are not empty
- email := r.Form.Get("email")
- password := r.Form.Get("password")
+// //Create a new session
+// func (s *Session) Create(w http.ResponseWriter, r *http.Request) {
+// r.ParseForm()
+// //Get email and password and check they are not empty
+// email := r.Form.Get("email")
+// password := r.Form.Get("password")
- //Check if user exists
- var user models.User
+// //Check if user exists
+// var user models.User
- //Check password is correct
- if user.Read("email", email) == nil &&
- helpers.CheckPasswordHash(password, user.Password) == nil {
- id, _ := rand.B64String(32)
- sess := models.Session{ID: id, UserID: user.ID}
- sess.Create()
- cookie.Create(w, "session", sess.ID)
- http.Redirect(w, r, "/", http.StatusFound)
- } else {
- loginFail(w, r, errors.New("Email or password incorrect"))
- }
-}
+// //Check password is correct
+// if user.Read("email", email) == nil &&
+// helpers.CheckPasswordHash(password, user.Password) == nil {
+// id, _ := rand.B64String(32)
+// sess := models.Session{ID: id, UserID: user.ID}
+// sess.Create()
+// cookie.Create(w, "session", sess.ID)
+// http.Redirect(w, r, "/", http.StatusFound)
+// } else {
+// loginFail(w, r, errors.New("Email or password incorrect"))
+// }
+// }
-//Delete session
-func (s *Session) Delete(w http.ResponseWriter, r *http.Request) {
- id, err := cookie.Read(r, "session")
- //Check user is logged in
- if err == nil {
- cookie.Delete(w, "session")
- var session models.Session
- session.Delete(id)
- http.Redirect(w, r, "/", http.StatusFound)
- }
+// //Delete session
+// func (s *Session) Delete(w http.ResponseWriter, r *http.Request) {
+// id, err := cookie.Read(r, "session")
+// //Check user is logged in
+// if err == nil {
+// cookie.Delete(w, "session")
+// var session models.Session
+// session.Delete(id)
+// http.Redirect(w, r, "/", http.StatusFound)
+// }
-}
+// }
-func loginFail(w http.ResponseWriter, r *http.Request, err error) {
- cookie.Create(w, "error", err.Error())
- http.Redirect(w, r, "/login", http.StatusFound)
-}
+// func loginFail(w http.ResponseWriter, r *http.Request, err error) {
+// cookie.Create(w, "error", err.Error())
+// http.Redirect(w, r, "/login", http.StatusFound)
+// }
diff --git a/controllers/session_test.go b/controllers/session_test.go
index 913a61a..95da5a6 100644
--- a/controllers/session_test.go
+++ b/controllers/session_test.go
@@ -1,102 +1,102 @@
-package controllers_test
+// package controllers_test
-import (
- "net/http"
- "net/http/httptest"
- "net/url"
- "strings"
- "testing"
+// import (
+// "net/http"
+// "net/http/httptest"
+// "net/url"
+// "strings"
+// "testing"
- "git.1248.nz/1248/Otfe/controllers"
- "git.1248.nz/1248/Otfe/misc/b64"
- "git.1248.nz/1248/Otfe/misc/helpers"
- "git.1248.nz/1248/Otfe/models"
-)
+// "git.technical.kiwi/go/otfe/controllers"
+// "git.technical.kiwi/go/otfe/misc/b64"
+// "git.technical.kiwi/go/otfe/misc/helpers"
+// "git.technical.kiwi/go/otfe/models"
+// )
-func TestSessionNew(t *testing.T) {
- var s controllers.Session
- handler := http.HandlerFunc(s.New)
- req, err := http.NewRequest("GET", "/login", nil)
- w := httptest.NewRecorder()
- if err != nil {
- t.Fatal(err)
- }
- handler(w, req)
- body := w.Body.String()
- if !strings.Contains(body, "
Login") {
- t.Fail()
- }
-}
+// func TestSessionNew(t *testing.T) {
+// var s controllers.Session
+// handler := http.HandlerFunc(s.New)
+// req, err := http.NewRequest("GET", "/login", nil)
+// w := httptest.NewRecorder()
+// if err != nil {
+// t.Fatal(err)
+// }
+// handler(w, req)
+// body := w.Body.String()
+// if !strings.Contains(body, "Login") {
+// t.Fail()
+// }
+// }
-func TestSessionCreate(t *testing.T) {
- //Create test user
+// func TestSessionCreate(t *testing.T) {
+// //Create test user
- var s controllers.Session
- handler := http.HandlerFunc(s.Create)
- req, w := setup(t, "POST", "/login")
+// var s controllers.Session
+// handler := http.HandlerFunc(s.Create)
+// req, w := setup(t, "POST", "/login")
- addTofForm(req, "email=test", "password=test")
- handler(w, req)
+// addTofForm(req, "email=test", "password=test")
+// handler(w, req)
- errorMessage := getCookie("error", w.Header()["Set-Cookie"])
- t.Log(errorMessage)
- t.Log(b64.Decode(errorMessage))
+// errorMessage := getCookie("error", w.Header()["Set-Cookie"])
+// t.Log(errorMessage)
+// t.Log(b64.Decode(errorMessage))
- header := w.Header()
- sessionid := getCookie("session", header["Set-Cookie"])
- var session models.Session
- if session.Read(sessionid) != nil {
- t.Fatal("Could not find session")
- }
+// header := w.Header()
+// sessionid := getCookie("session", header["Set-Cookie"])
+// var session models.Session
+// if session.Read(sessionid) != nil {
+// t.Fatal("Could not find session")
+// }
-}
+// }
-/*func testloginFail(t *testing.T) {
+// /*func testloginFail(t *testing.T) {
-}*/
+// }*/
-func setup(t *testing.T, method string, url string) (*http.Request, *httptest.ResponseRecorder) {
- req, err := http.NewRequest("POST", "/login", nil)
- w := httptest.NewRecorder()
- if err != nil {
- t.Fatal(err)
- }
- return req, w
+// func setup(t *testing.T, method string, url string) (*http.Request, *httptest.ResponseRecorder) {
+// req, err := http.NewRequest("POST", "/login", nil)
+// w := httptest.NewRecorder()
+// if err != nil {
+// t.Fatal(err)
+// }
+// return req, w
-}
+// }
-func createUser(t *testing.T, email string, password string) models.User {
+// func createUser(t *testing.T, email string, password string) models.User {
- password, err := helpers.HashPassword(password)
- if err != nil {
- t.Fatal("Failed to create password")
- }
- user := models.User{Email: email, Password: password}
- if user.Create() != nil {
- t.Fatal("failed to create user")
- }
+// password, err := helpers.HashPassword(password)
+// if err != nil {
+// t.Fatal("Failed to create password")
+// }
+// user := models.User{Email: email, Password: password}
+// if user.Create() != nil {
+// t.Fatal("failed to create user")
+// }
- return user
-}
+// return user
+// }
-func getCookie(name string, cookies []string) string {
- for _, cookie := range cookies {
- a := strings.Split(cookie, "=")
- if a[0] == name {
- return a[1]
+// func getCookie(name string, cookies []string) string {
+// for _, cookie := range cookies {
+// a := strings.Split(cookie, "=")
+// if a[0] == name {
+// return a[1]
- }
+// }
- }
- return "Cookie not found"
-}
+// }
+// return "Cookie not found"
+// }
-func addTofForm(r *http.Request, values ...string) {
- form, _ := url.ParseQuery(r.URL.RawQuery)
- for _, value := range values {
- v := strings.Split(value, "=")
- form.Add(v[0], v[1])
- }
- r.URL.RawQuery = form.Encode()
- r.Form.Encode()
-}
+// func addTofForm(r *http.Request, values ...string) {
+// form, _ := url.ParseQuery(r.URL.RawQuery)
+// for _, value := range values {
+// v := strings.Split(value, "=")
+// form.Add(v[0], v[1])
+// }
+// r.URL.RawQuery = form.Encode()
+// r.Form.Encode()
+// }
diff --git a/controllers/static.go b/controllers/static.go
index a15e998..ad37842 100644
--- a/controllers/static.go
+++ b/controllers/static.go
@@ -1,29 +1,29 @@
-package controllers
+// package controllers
-import (
- "net/http"
+// import (
+// "net/http"
- "git.1248.nz/1248/Otfe/models"
-)
+// "git.technical.kiwi/go/otfe/models"
+// )
-//Static pages
-type Static struct{}
+// //Static pages
+// type Static struct{}
-type staticData struct {
- Title string
- User models.User
-}
+// type staticData struct {
+// Title string
+// User models.User
+// }
-type contextKey string
+// type contextKey string
-func (c contextKey) String() string {
- return string(c)
-}
+// func (c contextKey) String() string {
+// return string(c)
+// }
-//Home page
-func (s *Static) Home(w http.ResponseWriter, r *http.Request, u models.User) {
- data := staticData{Title: "Otfe"}
- data.User = u
- //fmt.Fprintln(w, data.User)
- t(w, data, "/static/home.gtpl")
-}
+// //Home page
+// func (s *Static) Home(w http.ResponseWriter, r *http.Request, u models.User) {
+// data := staticData{Title: "Otfe"}
+// data.User = u
+// //fmt.Fprintln(w, data.User)
+// t(w, data, "/static/home.gtpl")
+// }
diff --git a/controllers/user.go b/controllers/user.go
index 4edcc49..5680cac 100644
--- a/controllers/user.go
+++ b/controllers/user.go
@@ -1,91 +1,91 @@
-package controllers
+// package controllers
-import (
- "fmt"
- "net/http"
+// import (
+// "fmt"
+// "net/http"
- "git.1248.nz/1248/Otfe/misc/auth"
- "git.1248.nz/1248/Otfe/misc/helpers"
- "git.1248.nz/1248/Otfe/models"
- "github.com/husobee/vestigo"
-)
+// "git.technical.kiwi/go/otfe/misc/auth"
+// "git.technical.kiwi/go/otfe/misc/helpers"
+// "git.technical.kiwi/go/otfe/models"
+// "github.com/husobee/vestigo"
+// )
-type userData struct {
- Title string
- Users []models.User
- User models.User
-}
+// type userData struct {
+// Title string
+// Users []models.User
+// User models.User
+// }
-//User handlers
-type User struct{}
+// //User handlers
+// type User struct{}
-//Index list all users
-func (u User) Index(w http.ResponseWriter, r *http.Request) {
- var err error
- data := userData{Title: "Users"}
- data.Users, err = data.User.ReadAll()
- helpers.CheckError(err)
- t(w, data, "/user/users.gtpl")
-}
+// //Index list all users
+// func (u User) Index(w http.ResponseWriter, r *http.Request) {
+// var err error
+// data := userData{Title: "Users"}
+// data.Users, err = data.User.ReadAll()
+// helpers.CheckError(err)
+// t(w, data, "/user/users.gtpl")
+// }
-//Show given user
-func (u *User) Show(w http.ResponseWriter, r *http.Request, user models.User) {
- var data userData
- data.User.Read("username", vestigo.Param(r, "username"))
- //matchUser(data.User, w, r)
- data.Title = data.User.Username
- t(w, data, "/user/user.gtpl")
-}
+// //Show given user
+// func (u *User) Show(w http.ResponseWriter, r *http.Request, user models.User) {
+// var data userData
+// data.User.Read("username", vestigo.Param(r, "username"))
+// //matchUser(data.User, w, r)
+// data.Title = data.User.Username
+// t(w, data, "/user/user.gtpl")
+// }
-//ShowSelf show given user if they are the same as the authenticated one
-func (u *User) ShowSelf(w http.ResponseWriter, r *http.Request, user models.User) {
- if user.Username != vestigo.Param(r, "username") {
- auth.UnAuth(w)
- return
- }
- var data userData
- data.User = user
- data.Title = data.User.Username
- t(w, data, "/user/user.gtpl")
-}
+// //ShowSelf show given user if they are the same as the authenticated one
+// func (u *User) ShowSelf(w http.ResponseWriter, r *http.Request, user models.User) {
+// if user.Username != vestigo.Param(r, "username") {
+// auth.UnAuth(w)
+// return
+// }
+// var data userData
+// data.User = user
+// data.Title = data.User.Username
+// t(w, data, "/user/user.gtpl")
+// }
-//New user form
-func (u *User) New(w http.ResponseWriter, r *http.Request) {
- data := userData{Title: "New User"}
- t(w, data, "/user/new.gtpl")
-}
+// //New user form
+// func (u *User) New(w http.ResponseWriter, r *http.Request) {
+// data := userData{Title: "New User"}
+// t(w, data, "/user/new.gtpl")
+// }
-//Create new a user
-func (u *User) Create(w http.ResponseWriter, r *http.Request) {
- r.ParseForm()
- var user models.User
- var err error
- user.Username = r.Form.Get("username")
- user.Email = r.Form.Get("email")
- user.Password, err = helpers.HashPassword(r.Form.Get("password"))
- helpers.CheckError(err)
- user.Create()
- http.Redirect(w, r, "/user/"+user.Username, http.StatusFound)
+// //Create new a user
+// func (u *User) Create(w http.ResponseWriter, r *http.Request) {
+// r.ParseForm()
+// var user models.User
+// var err error
+// user.Username = r.Form.Get("username")
+// user.Email = r.Form.Get("email")
+// user.Password, err = helpers.HashPassword(r.Form.Get("password"))
+// helpers.CheckError(err)
+// user.Create()
+// http.Redirect(w, r, "/user/"+user.Username, http.StatusFound)
-}
+// }
-//Edit form
-func (u *User) Edit(w http.ResponseWriter, r *http.Request) {
- var data userData
- data.User.Read("username", vestigo.Param(r, "username"))
+// //Edit form
+// func (u *User) Edit(w http.ResponseWriter, r *http.Request) {
+// var data userData
+// data.User.Read("username", vestigo.Param(r, "username"))
-}
+// }
-//Update user
-func (u *User) Update(w http.ResponseWriter, r *http.Request) {
+// //Update user
+// func (u *User) Update(w http.ResponseWriter, r *http.Request) {
-}
+// }
-//Delete user
-func (u *User) Delete(w http.ResponseWriter, r *http.Request) {
- fmt.Println("Deleting " + vestigo.Param(r, "username"))
- var user models.User
- user.Delete("username", vestigo.Param(r, "username"))
- http.Redirect(w, r, "/user", http.StatusFound)
+// //Delete user
+// func (u *User) Delete(w http.ResponseWriter, r *http.Request) {
+// fmt.Println("Deleting " + vestigo.Param(r, "username"))
+// var user models.User
+// user.Delete("username", vestigo.Param(r, "username"))
+// http.Redirect(w, r, "/user", http.StatusFound)
-}
+// }
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..766a980
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,3 @@
+module git.technical.kiwi/go/otfe
+
+go 1.17
diff --git a/misc/auth/auth.go b/misc/auth/auth.go
index e4a23c0..9a074bb 100644
--- a/misc/auth/auth.go
+++ b/misc/auth/auth.go
@@ -1,59 +1,59 @@
-package auth
+// package auth
-import (
- "errors"
- "net/http"
+// import (
+// "errors"
+// "net/http"
- "git.1248.nz/1248/Otfe/models"
-)
+// "git.technical.kiwi/go/otfe/models"
+// )
-type auth func(http.ResponseWriter, *http.Request, models.User)
+// type auth func(http.ResponseWriter, *http.Request, models.User)
-func User(h auth) http.HandlerFunc {
- return func(w http.ResponseWriter, r *http.Request) {
- user, _ := getUserSession(r)
- h(w, r, user)
- }
-}
+// func User(h auth) http.HandlerFunc {
+// return func(w http.ResponseWriter, r *http.Request) {
+// user, _ := getUserSession(r)
+// h(w, r, user)
+// }
+// }
-func Perm(handler auth, fallback auth, perm string) http.HandlerFunc {
- return func(w http.ResponseWriter, r *http.Request) {
- user, err := getUserSession(r)
- if err != nil {
- http.Redirect(w, r, "/login", http.StatusFound)
- return
- }
- if user.HasPermission(perm) {
- handler(w, r, user)
- } else {
- if fallback == nil {
- UnAuth(w)
- } else {
- fallback(w, r, user)
- }
- }
+// func Perm(handler auth, fallback auth, perm string) http.HandlerFunc {
+// return func(w http.ResponseWriter, r *http.Request) {
+// user, err := getUserSession(r)
+// if err != nil {
+// http.Redirect(w, r, "/login", http.StatusFound)
+// return
+// }
+// if user.HasPermission(perm) {
+// handler(w, r, user)
+// } else {
+// if fallback == nil {
+// UnAuth(w)
+// } else {
+// fallback(w, r, user)
+// }
+// }
- }
+// }
-}
+// }
-func getUserSession(r *http.Request) (models.User, error) {
- var session models.Session
- var user models.User
- //Check for session in db
- err := session.Get(r)
- if err == nil {
- //Get user associated with the session
- err = user.Read("_id", session.UserID)
- if err == nil {
- return user, nil
+// func getUserSession(r *http.Request) (models.User, error) {
+// var session models.Session
+// var user models.User
+// //Check for session in db
+// err := session.Get(r)
+// if err == nil {
+// //Get user associated with the session
+// err = user.Read("_id", session.UserID)
+// if err == nil {
+// return user, nil
- }
- }
- return user, errors.New("User not logged in")
-}
+// }
+// }
+// return user, errors.New("User not logged in")
+// }
-func UnAuth(w http.ResponseWriter) {
- http.Error(w, "You are not authorized to view this page",
- http.StatusForbidden)
-}
+// func UnAuth(w http.ResponseWriter) {
+// http.Error(w, "You are not authorized to view this page",
+// http.StatusForbidden)
+// }
diff --git a/misc/auth/auth_test.go b/misc/auth/auth_test.go
index e6d6389..45484af 100644
--- a/misc/auth/auth_test.go
+++ b/misc/auth/auth_test.go
@@ -1,113 +1,113 @@
-package auth
+// package auth
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "strings"
- "testing"
+// import (
+// "fmt"
+// "net/http"
+// "net/http/httptest"
+// "strings"
+// "testing"
- "git.1248.nz/1248/Otfe/misc/helpers"
- "git.1248.nz/1248/Otfe/misc/helpers/cookie"
- "git.1248.nz/1248/Otfe/models"
- "github.com/globalsign/mgo/bson"
-)
+// "git.technical.kiwi/go/otfe/misc/helpers"
+// "git.technical.kiwi/go/otfe/misc/helpers/cookie"
+// "git.technical.kiwi/go/otfe/models"
+// "github.com/globalsign/mgo/bson"
+// )
-func TestUser(t *testing.T) {
- //Setup user with session
- recorder := httptest.NewRecorder()
- user, session := userSession(t)
- request := request(t, session)
- u := User(handler)
- //Run
- u(recorder, request)
- //Check
- body := recorder.Body.String()
- if !strings.Contains(body, user.ID.Hex()) {
- t.Fail()
- }
- //Setup without session
- recorder = httptest.NewRecorder()
- request, _ = http.NewRequest("GET", "/", nil)
- //Run
- u(recorder, request)
- //Check
- helpers.Equals(t, recorder.Body.String(),
- "{ObjectIdHex(\"\") ObjectIdHex(\"\") []}")
+// func TestUser(t *testing.T) {
+// //Setup user with session
+// recorder := httptest.NewRecorder()
+// user, session := userSession(t)
+// request := request(t, session)
+// u := User(handler)
+// //Run
+// u(recorder, request)
+// //Check
+// body := recorder.Body.String()
+// if !strings.Contains(body, user.ID.Hex()) {
+// t.Fail()
+// }
+// //Setup without session
+// recorder = httptest.NewRecorder()
+// request, _ = http.NewRequest("GET", "/", nil)
+// //Run
+// u(recorder, request)
+// //Check
+// helpers.Equals(t, recorder.Body.String(),
+// "{ObjectIdHex(\"\") ObjectIdHex(\"\") []}")
-}
+// }
-func TestPerm(t *testing.T) {
- p := Perm(handler, UnAuth, "perm")
- recorder := httptest.NewRecorder()
- user, session := userSession(t)
- request := request(t, session)
- p(recorder, request)
- if !strings.Contains(recorder.Body.String(),
- "You are not authorized to view this page") {
- t.Log("Authorization fail")
- t.Fail()
- }
+// func TestPerm(t *testing.T) {
+// p := Perm(handler, UnAuth, "perm")
+// recorder := httptest.NewRecorder()
+// user, session := userSession(t)
+// request := request(t, session)
+// p(recorder, request)
+// if !strings.Contains(recorder.Body.String(),
+// "You are not authorized to view this page") {
+// t.Log("Authorization fail")
+// t.Fail()
+// }
- p = Perm(handler, UnAuth, "test")
- recorder = httptest.NewRecorder()
- p(recorder, request)
- if !strings.Contains(recorder.Body.String(), user.ID.Hex()) {
- t.Log("Has permission fail")
- t.Fail()
- }
+// p = Perm(handler, UnAuth, "test")
+// recorder = httptest.NewRecorder()
+// p(recorder, request)
+// if !strings.Contains(recorder.Body.String(), user.ID.Hex()) {
+// t.Log("Has permission fail")
+// t.Fail()
+// }
- recorder = httptest.NewRecorder()
- request, err := http.NewRequest("GET", "/", nil)
- helpers.Ok(t, err)
- p(recorder, request)
- if !strings.Contains(recorder.Body.String(), "login") {
- t.Log("Login fail")
- t.Fail()
- }
+// recorder = httptest.NewRecorder()
+// request, err := http.NewRequest("GET", "/", nil)
+// helpers.Ok(t, err)
+// p(recorder, request)
+// if !strings.Contains(recorder.Body.String(), "login") {
+// t.Log("Login fail")
+// t.Fail()
+// }
-}
+// }
-func TestGetUserSession(t *testing.T) {
- user, session := userSession(t)
- request := request(t, session)
- //Test
- user2, err := getUserSession(request)
- helpers.Ok(t, err)
- helpers.Equals(t, user, user2)
+// func TestGetUserSession(t *testing.T) {
+// user, session := userSession(t)
+// request := request(t, session)
+// //Test
+// user2, err := getUserSession(request)
+// helpers.Ok(t, err)
+// helpers.Equals(t, user, user2)
-}
+// }
-func userSession(t *testing.T) (models.User, models.Session) {
- models.DBWipeCollection("user", "session", "group")
+// func userSession(t *testing.T) (models.User, models.Session) {
+// models.DBWipeCollection("user", "session", "group")
- group := models.NewGroup("test")
- group.ID = bson.NewObjectId()
- group.Permissions["test"] = true
- //group.Admin = true
- helpers.Ok(t, group.Create())
+// group := models.NewGroup("test")
+// group.ID = bson.NewObjectId()
+// group.Permissions["test"] = true
+// //group.Admin = true
+// helpers.Ok(t, group.Create())
- user := models.User{Name: "test",
- Email: "test"}
- user.ID = bson.NewObjectId()
- user.PrimaryGroup = group.ID
- helpers.Ok(t, user.Create())
+// user := models.User{Name: "test",
+// Email: "test"}
+// user.ID = bson.NewObjectId()
+// user.PrimaryGroup = group.ID
+// helpers.Ok(t, user.Create())
- session := models.Session{UserID: user.ID}
- session.ID = bson.NewObjectId()
- helpers.Ok(t, session.Create())
- return user, session
-}
+// session := models.Session{UserID: user.ID}
+// session.ID = bson.NewObjectId()
+// helpers.Ok(t, session.Create())
+// return user, session
+// }
-func request(t *testing.T, s models.Session) *http.Request {
- cookie := &http.Cookie{Name: "session",
- Value: cookie.Encode(s.ID.Hex())}
- request, err := http.NewRequest("GET", "/", nil)
- helpers.Ok(t, err)
- request.AddCookie(cookie)
- return request
-}
+// func request(t *testing.T, s models.Session) *http.Request {
+// cookie := &http.Cookie{Name: "session",
+// Value: cookie.Encode(s.ID.Hex())}
+// request, err := http.NewRequest("GET", "/", nil)
+// helpers.Ok(t, err)
+// request.AddCookie(cookie)
+// return request
+// }
-func handler(w http.ResponseWriter, r *http.Request, u models.User) {
- fmt.Fprint(w, u)
-}
+// func handler(w http.ResponseWriter, r *http.Request, u models.User) {
+// fmt.Fprint(w, u)
+// }
diff --git a/misc/b64/b64.go b/misc/b64/b64.go
index cd543f5..59dcd3a 100644
--- a/misc/b64/b64.go
+++ b/misc/b64/b64.go
@@ -1,12 +1,12 @@
-package b64
+// package b64
-import "encoding/base64"
+// import "encoding/base64"
-func Encode(src string) string {
- return base64.URLEncoding.EncodeToString([]byte(src))
-}
+// func Encode(src string) string {
+// return base64.URLEncoding.EncodeToString([]byte(src))
+// }
-func Decode(src string) (string, error) {
- value, err := base64.URLEncoding.DecodeString(src)
- return string(value), err
-}
+// func Decode(src string) (string, error) {
+// value, err := base64.URLEncoding.DecodeString(src)
+// return string(value), err
+// }
diff --git a/misc/config/config.go b/misc/config/config.go
index 411ba56..705df43 100644
--- a/misc/config/config.go
+++ b/misc/config/config.go
@@ -1,60 +1,60 @@
-package config
+// package config
-import (
- "encoding/hex"
- "path/filepath"
+// import (
+// "encoding/hex"
+// "path/filepath"
- "git.1248.nz/1248/Otfe/misc/helpers"
+// "git.technical.kiwi/go/otfe/misc/helpers"
- "github.com/BurntSushi/toml"
-)
+// "github.com/BurntSushi/toml"
+// )
-//Configuration struct
-type Configuration struct {
- DB database `toml:"database"`
- Session session
-}
+// //Configuration struct
+// type Configuration struct {
+// DB database `toml:"database"`
+// Session session
+// }
-// Database stuct
-type database struct {
- Host string
- Name string
- User string
- Password string
-}
+// // Database stuct
+// type database struct {
+// Host string
+// Name string
+// User string
+// Password string
+// }
-type session struct {
- SecretKey string
- Sessionkey string
- Timeout int
-}
+// type session struct {
+// SecretKey string
+// Sessionkey string
+// Timeout int
+// }
-var config *Configuration
+// var config *Configuration
-func init() {
- Get()
-}
+// func init() {
+// Get()
+// }
-// Get config info from toml config file
-func Get() *Configuration {
- if config == nil {
- _, err := toml.DecodeFile(getConfigFile(), &config)
- helpers.CheckError(err)
- }
- return config
-}
+// // Get config info from toml config file
+// func Get() *Configuration {
+// if config == nil {
+// _, err := toml.DecodeFile(getConfigFile(), &config)
+// helpers.CheckError(err)
+// }
+// return config
+// }
-func getConfigFile() string {
- return filepath.Join(helpers.GetRootDir(), "config.toml")
-}
+// func getConfigFile() string {
+// return filepath.Join(helpers.GetRootDir(), "config.toml")
+// }
-func GetSecretKey() []byte {
- config := Get()
- key, err := hex.DecodeString(config.Session.SecretKey)
- helpers.CheckError(err)
- return key
-}
+// func GetSecretKey() []byte {
+// config := Get()
+// key, err := hex.DecodeString(config.Session.SecretKey)
+// helpers.CheckError(err)
+// return key
+// }
-func GetSessionKey() string {
- return Get().Session.Sessionkey
-}
+// func GetSessionKey() string {
+// return Get().Session.Sessionkey
+// }
diff --git a/misc/config/config_test.go b/misc/config/config_test.go
index b9c7582..b8d122c 100644
--- a/misc/config/config_test.go
+++ b/misc/config/config_test.go
@@ -1,7 +1,7 @@
-package config
+// package config
-import "testing"
+// import "testing"
-func TestGetConfigFile(t *testing.T) {
- t.Log(Get())
-}
+// func TestGetConfigFile(t *testing.T) {
+// t.Log(Get())
+// }
diff --git a/misc/cookie/cookie.go b/misc/cookie/cookie.go
deleted file mode 100644
index 5be2d1c..0000000
--- a/misc/cookie/cookie.go
+++ /dev/null
@@ -1,31 +0,0 @@
-package cookie
-
-import (
- "errors"
- "net/http"
- "time"
-
- "git.1248.nz/1248/Otfe/misc/b64"
-)
-
-func Create(w http.ResponseWriter, name string, value string) {
- c := &http.Cookie{Name: name, Value: b64.Encode(value)}
- http.SetCookie(w, c)
-}
-
-func Read(r *http.Request, name string) (string, error) {
- c, err := r.Cookie(name)
- if err != nil {
- return "", errors.New("Cookie not found")
- }
- value, err := b64.Decode(c.Value)
- if err != nil {
- return "", errors.New("Failed to decode cookie")
- }
- return value, nil
-}
-
-func Delete(w http.ResponseWriter, name string) {
- http.SetCookie(w, &http.Cookie{Name: name, MaxAge: -1, Expires: time.Unix(1, 0)})
-
-}
diff --git a/misc/cookie/cookie_test.go b/misc/cookie/cookie_test.go
deleted file mode 100644
index 649246b..0000000
--- a/misc/cookie/cookie_test.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package cookie
-
-import (
- "net/http"
- "net/http/httptest"
- "testing"
-
- "git.1248.nz/1248/Otfe/misc/b64"
- "git.1248.nz/1248/Otfe/misc/helpers"
-)
-
-func TestCreate(t *testing.T) {
- recorder := httptest.NewRecorder()
- Create(recorder, "test", "test")
- request := &http.Request{Header: http.Header{
- "Cookie": recorder.HeaderMap["Set-Cookie"]}}
- cookie, err := request.Cookie("test")
- if err != nil {
- t.Fail()
- return
- }
- value, err := b64.Decode(cookie.Value)
- if err != nil || value != "test" {
- t.Fail()
- }
-}
-
-func TestRead(t *testing.T) {
- cookie := &http.Cookie{Name: "test", Value: b64.Encode("test")}
-
- request, err := http.NewRequest("GET", "", nil)
- if err != nil {
- t.Fail()
- return
- }
- request.AddCookie(cookie)
- value, err := Read(request, "test")
- helpers.Equals(t, value, "test")
-}
diff --git a/misc/helpers/helpers.go b/misc/helpers/helpers.go
index 571ce93..993b61b 100644
--- a/misc/helpers/helpers.go
+++ b/misc/helpers/helpers.go
@@ -1,55 +1,55 @@
-package helpers
+// package helpers
-import (
- "crypto/rand"
- "encoding/hex"
- "log"
- "path/filepath"
- "runtime"
+// import (
+// "crypto/rand"
+// "encoding/hex"
+// "log"
+// "path/filepath"
+// "runtime"
- "golang.org/x/crypto/bcrypt"
-)
+// "golang.org/x/crypto/bcrypt"
+// )
-//CheckError checks for errors and logs them and stops the program
-func CheckError(err error) bool {
- if err != nil {
- log.Fatal(err)
- return false
- }
- return true
-}
+// //CheckError checks for errors and logs them and stops the program
+// func CheckError(err error) bool {
+// if err != nil {
+// log.Fatal(err)
+// return false
+// }
+// return true
+// }
-func GetRootDir() string {
- _, b, _, _ := runtime.Caller(0)
- dir := filepath.Dir(b)
- return filepath.Dir(filepath.Dir(dir))
-}
+// func GetRootDir() string {
+// _, b, _, _ := runtime.Caller(0)
+// dir := filepath.Dir(b)
+// return filepath.Dir(filepath.Dir(dir))
+// }
-func GetAssets() string {
- return GetRootDir()
-}
+// func GetAssets() string {
+// return GetRootDir()
+// }
-func HashPassword(password string) (string, error) {
- hash, err := bcrypt.GenerateFromPassword([]byte(password), 14)
- return string(hash), err
-}
+// func HashPassword(password string) (string, error) {
+// hash, err := bcrypt.GenerateFromPassword([]byte(password), 14)
+// return string(hash), err
+// }
-func CheckPasswordHash(password, hash string) error {
- err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
- return err
-}
+// func CheckPasswordHash(password, hash string) error {
+// err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
+// return err
+// }
-func RandHex() string {
- bytes := make([]byte, 12)
- rand.Read(bytes)
- return hex.EncodeToString(bytes)
-}
+// func RandHex() string {
+// bytes := make([]byte, 12)
+// rand.Read(bytes)
+// return hex.EncodeToString(bytes)
+// }
-func Bytes(n int) ([]byte, error) {
- b := make([]byte, n)
- _, err := rand.Read(b)
- if err != nil {
- return nil, err
- }
- return b, nil
-}
+// func Bytes(n int) ([]byte, error) {
+// b := make([]byte, n)
+// _, err := rand.Read(b)
+// if err != nil {
+// return nil, err
+// }
+// return b, nil
+// }
diff --git a/misc/helpers/helpers_test.go b/misc/helpers/helpers_test.go
index de8e8bd..e72729d 100644
--- a/misc/helpers/helpers_test.go
+++ b/misc/helpers/helpers_test.go
@@ -1,35 +1,35 @@
-package helpers_test
+// package helpers_test
-import (
- "testing"
+// import (
+// "testing"
- "git.1248.nz/1248/Otfe/misc/helpers"
- "git.1248.nz/1248/Otfe/models"
-)
+// "git.technical.kiwi/go/otfe/misc/helpers"
+// "git.technical.kiwi/go/otfe/models"
+// )
-func TestGetRootDir(t *testing.T) {
- t.Log("Root path:", helpers.GetRootDir())
-}
+// func TestGetRootDir(t *testing.T) {
+// t.Log("Root path:", helpers.GetRootDir())
+// }
-func TestHashPassword(t *testing.T) {
- user := models.User{Email: "a@a.com", Username: "a"}
- user.Delete("username", "a")
- var err error
- password := "43539jgifdkvnm4935078uJKJR**$ufjqd98438uiAHFJean89q34JKDFJ"
- user.Password, err = helpers.HashPassword(password)
- if err != nil {
- t.Fail()
- }
- user.Create()
- var user2 models.User
- user2.Read("username", "a")
+// func TestHashPassword(t *testing.T) {
+// user := models.User{Email: "a@a.com", Username: "a"}
+// user.Delete("username", "a")
+// var err error
+// password := "43539jgifdkvnm4935078uJKJR**$ufjqd98438uiAHFJean89q34JKDFJ"
+// user.Password, err = helpers.HashPassword(password)
+// if err != nil {
+// t.Fail()
+// }
+// user.Create()
+// var user2 models.User
+// user2.Read("username", "a")
- t.Log(helpers.CheckPasswordHash(password, user2.Password))
+// t.Log(helpers.CheckPasswordHash(password, user2.Password))
-}
+// }
-func TestRandHex(t *testing.T) {
- for i := 0; i < 20; i++ {
- t.Log(helpers.RandHex())
- }
-}
+// func TestRandHex(t *testing.T) {
+// for i := 0; i < 20; i++ {
+// t.Log(helpers.RandHex())
+// }
+// }
diff --git a/misc/helpers/test.go b/misc/helpers/test.go
index 2e04b46..278b7a7 100644
--- a/misc/helpers/test.go
+++ b/misc/helpers/test.go
@@ -1,36 +1,36 @@
-package helpers
+// package helpers
-import (
- "fmt"
- "path/filepath"
- "reflect"
- "runtime"
- "testing"
-)
+// import (
+// "fmt"
+// "path/filepath"
+// "reflect"
+// "runtime"
+// "testing"
+// )
-// assert fails the test if the condition is false.
-func Assert(tb testing.TB, condition bool, msg string, v ...interface{}) {
- if !condition {
- _, file, line, _ := runtime.Caller(1)
- fmt.Printf("\033[31m%s:%d: "+msg+"\033[39m\n\n", append([]interface{}{filepath.Base(file), line}, v...)...)
- tb.FailNow()
- }
-}
+// // assert fails the test if the condition is false.
+// func Assert(tb testing.TB, condition bool, msg string, v ...interface{}) {
+// if !condition {
+// _, file, line, _ := runtime.Caller(1)
+// fmt.Printf("\033[31m%s:%d: "+msg+"\033[39m\n\n", append([]interface{}{filepath.Base(file), line}, v...)...)
+// tb.FailNow()
+// }
+// }
-// ok fails the test if an err is not nil.
-func Ok(tb testing.TB, err error) {
- if err != nil {
- _, file, line, _ := runtime.Caller(1)
- fmt.Printf("\033[31m%s:%d: unexpected error: %s\033[39m\n\n", filepath.Base(file), line, err.Error())
- tb.FailNow()
- }
-}
+// // ok fails the test if an err is not nil.
+// func Ok(tb testing.TB, err error) {
+// if err != nil {
+// _, file, line, _ := runtime.Caller(1)
+// fmt.Printf("\033[31m%s:%d: unexpected error: %s\033[39m\n\n", filepath.Base(file), line, err.Error())
+// tb.FailNow()
+// }
+// }
-// equals fails the test if exp is not equal to act.
-func Equals(tb testing.TB, exp, act interface{}) {
- if !reflect.DeepEqual(exp, act) {
- _, file, line, _ := runtime.Caller(1)
- fmt.Printf("\033[31m%s:%d:\n\n\texp: %#v\n\n\tgot: %#v\033[39m\n\n", filepath.Base(file), line, exp, act)
- tb.FailNow()
- }
-}
+// // equals fails the test if exp is not equal to act.
+// func Equals(tb testing.TB, exp, act interface{}) {
+// if !reflect.DeepEqual(exp, act) {
+// _, file, line, _ := runtime.Caller(1)
+// fmt.Printf("\033[31m%s:%d:\n\n\texp: %#v\n\n\tgot: %#v\033[39m\n\n", filepath.Base(file), line, exp, act)
+// tb.FailNow()
+// }
+// }
diff --git a/misc/rand/rand.go b/misc/rand/rand.go
index 7391016..e43e17e 100644
--- a/misc/rand/rand.go
+++ b/misc/rand/rand.go
@@ -1,20 +1,20 @@
-package rand
+// package rand
-import (
- "crypto/rand"
+// import (
+// "crypto/rand"
- "git.1248.nz/1248/Otfe/misc/b64"
-)
+// "git.technical.kiwi/go/otfe/misc/b64"
+// )
-//Bytes generates an random set of bytes n long
-func Bytes(n int) ([]byte, error) {
- b := make([]byte, n)
- _, err := rand.Read(b)
- return b, err
-}
+// //Bytes generates an random set of bytes n long
+// func Bytes(n int) ([]byte, error) {
+// b := make([]byte, n)
+// _, err := rand.Read(b)
+// return b, err
+// }
-//B64String generates a base 64 string n bytess long
-func B64String(n int) (string, error) {
- b, err := Bytes(n)
- return b64.Encode(string(b)), err
-}
+// //B64String generates a base 64 string n bytess long
+// func B64String(n int) (string, error) {
+// b, err := Bytes(n)
+// return b64.Encode(string(b)), err
+// }
diff --git a/misc/test/seed.go b/misc/test/seed.go
index e9225b4..f77e95c 100644
--- a/misc/test/seed.go
+++ b/misc/test/seed.go
@@ -1,41 +1,41 @@
-package main
+// package main
-import (
- "git.1248.nz/1248/Otfe/misc/helpers"
- "git.1248.nz/1248/Otfe/models"
- "github.com/globalsign/mgo/bson"
-)
+// import (
+// "git.technical.kiwi/go/otfe/misc/helpers"
+// "git.technical.kiwi/go/otfe/models"
+// "github.com/globalsign/mgo/bson"
+// )
-func main() {
- models.DBWipeCollection("group", "user", "session")
- //admin user and group
- adminGroup := models.NewGroup("admin")
- adminGroup.Admin = true
- adminGroup.ID = bson.NewObjectId()
- adminGroup.Permissions["user.show"] = true
+// func main() {
+// models.DBWipeCollection("group", "user", "session")
+// //admin user and group
+// adminGroup := models.NewGroup("admin")
+// adminGroup.Admin = true
+// adminGroup.ID = bson.NewObjectId()
+// adminGroup.Permissions["user.show"] = true
- admin := models.User{}
- admin.Username = "admin"
- admin.Email = "admin"
- admin.ID = bson.NewObjectId()
- admin.Password, _ = helpers.HashPassword("admin")
- admin.PrimaryGroup = adminGroup.ID
- adminGroup.Users = append(adminGroup.Users, admin.ID)
- adminGroup.Create()
- admin.Create()
+// admin := models.User{}
+// admin.Username = "admin"
+// admin.Email = "admin"
+// admin.ID = bson.NewObjectId()
+// admin.Password, _ = helpers.HashPassword("admin")
+// admin.PrimaryGroup = adminGroup.ID
+// adminGroup.Users = append(adminGroup.Users, admin.ID)
+// adminGroup.Create()
+// admin.Create()
- //user and user group
- userGroup := models.NewGroup("user")
- userGroup.ID = bson.NewObjectId()
- userGroup.Admin = false
- user := models.User{}
- user.ID = bson.NewObjectId()
- user.Username = "user"
- user.Email = "u"
- user.Password, _ = helpers.HashPassword("user")
- user.PrimaryGroup = userGroup.ID
- userGroup.Users = append(userGroup.Users, user.ID)
- user.Create()
- userGroup.Create()
+// //user and user group
+// userGroup := models.NewGroup("user")
+// userGroup.ID = bson.NewObjectId()
+// userGroup.Admin = false
+// user := models.User{}
+// user.ID = bson.NewObjectId()
+// user.Username = "user"
+// user.Email = "u"
+// user.Password, _ = helpers.HashPassword("user")
+// user.PrimaryGroup = userGroup.ID
+// userGroup.Users = append(userGroup.Users, user.ID)
+// user.Create()
+// userGroup.Create()
-}
+// }
diff --git a/models/group.go b/models/group.go
index a7c77b6..a39a051 100644
--- a/models/group.go
+++ b/models/group.go
@@ -1,50 +1,50 @@
-package models
+// package models
-import (
- "github.com/jinzhu/gorm"
-)
+// import (
+// "github.com/jinzhu/gorm"
+// )
-//Group type
-type Group struct {
- gorm.Model
- Name string
- Permissions map[string]bool
- Admin bool
- Users []string
-}
+// //Group type
+// type Group struct {
+// gorm.Model
+// Name string
+// Permissions map[string]bool
+// Admin bool
+// Users []string
+// }
-func NewGroup(Name string) Group {
- var group Group
- group.Permissions = make(map[string]bool)
- return group
-}
+// func NewGroup(Name string) Group {
+// var group Group
+// group.Permissions = make(map[string]bool)
+// return group
+// }
-//Create group
-func (g *Group) Create() error {
- return create(&g)
-}
+// //Create group
+// func (g *Group) Create() error {
+// return create(&g)
+// }
-//Read group
-func (g *Group) Read() error {
- return read(&g)
+// //Read group
+// func (g *Group) Read() error {
+// return read(&g)
-}
+// }
-//ReadAll groups
-func (g *Group) ReadAll() ([]Group, error) {
- var groups []Group
- var err error
- err = readAll(&groups)
- return groups, err
-}
+// //ReadAll groups
+// func (g *Group) ReadAll() ([]Group, error) {
+// var groups []Group
+// var err error
+// err = readAll(&groups)
+// return groups, err
+// }
-//Update group
-func (g *Group) Update() error {
- return update(&g)
-}
+// //Update group
+// func (g *Group) Update() error {
+// return update(&g)
+// }
-//Delete group
-func (g *Group) Delete() error {
- err := delete(&g)
- return err
-}
+// //Delete group
+// func (g *Group) Delete() error {
+// err := delete(&g)
+// return err
+// }
diff --git a/models/group_test.go b/models/group_test.go
index b57938a..6edf2be 100644
--- a/models/group_test.go
+++ b/models/group_test.go
@@ -1,25 +1,25 @@
-package models
+// package models
-import (
- "testing"
+// import (
+// "testing"
- "github.com/globalsign/mgo/bson"
-)
+// "github.com/globalsign/mgo/bson"
+// )
-func TestCreateGroup(t *testing.T) {
- group := NewGroup("test")
- group.Users = append(group.Users, bson.NewObjectId())
- group.Permissions["test"] = true
- t.Log(group.Create())
-}
+// func TestCreateGroup(t *testing.T) {
+// group := NewGroup("test")
+// group.Users = append(group.Users, bson.NewObjectId())
+// group.Permissions["test"] = true
+// t.Log(group.Create())
+// }
-func TestReadGroup(t *testing.T) {
- var group Group
- group.Read("name", "test")
- t.Log(group)
-}
+// func TestReadGroup(t *testing.T) {
+// var group Group
+// group.Read("name", "test")
+// t.Log(group)
+// }
-func TestReadAllGroup(t *testing.T) {
- var group Group
- t.Log(group.ReadAll())
-}
+// func TestReadAllGroup(t *testing.T) {
+// var group Group
+// t.Log(group.ReadAll())
+// }
diff --git a/models/model.go b/models/model.go
index 96ce40c..137ced4 100644
--- a/models/model.go
+++ b/models/model.go
@@ -1,33 +1,27 @@
package models
import (
- "fmt"
-
"github.com/jinzhu/gorm"
- _ "github.com/jinzhu/gorm/dialects/postgres" //
+ _ "github.com/jinzhu/gorm/dialects/postgres"
+ "gorm.io/driver/sqlite"
)
-const (
- host = "localhost"
- port = 5432
- user = "test"
- password = "test"
- dbname = "test"
-)
+// var (
+// gormdb, err =
+// store = gormstore.New(gormdb, []byte("secret"))
+// )
var psqlInfo string
var db *gorm.DB
func init() {
- psqlInfo = fmt.Sprintf("host=%s port=%d user=%s "+
- "password=%s dbname=%s sslmode=disable",
- host, port, user, password, dbname)
DB()
}
+
func DB() (*gorm.DB, error) {
if db == nil {
- db, err := gorm.Open("postgres", psqlInfo)
+ db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
db.LogMode(true)
return db, err
}
diff --git a/models/model_test.go b/models/model_test.go
index 1f896ba..ebfedcc 100644
--- a/models/model_test.go
+++ b/models/model_test.go
@@ -1,37 +1,42 @@
-package models
+package models_test
import (
"testing"
+
+ "git.technical.kiwi/go/otfe/models"
)
-func TestGetSession(t *testing.T) {
- GetMongoSession()
+func TestGetDB(t *testing.T) {
+ db, err := models.DB()
+ if !err || !db {
+ t.Fail()
+ }
}
func TestGetCollection(t *testing.T) {
- GetCollection("test")
+ //GetCollection("test")
}
func TestCreate(t *testing.T) {
- create("user", &User{Name: "Ale"})
+ //create("user", &User{Name: "Ale"})
}
func TestReadAll(t *testing.T) {
- var u []User
- readAll("user", "", nil, &u)
- t.Log(u)
+ //var u []User
+ //readAll("user", "", nil, &u)
+ //t.Log(u)
}
func TestRead(t *testing.T) {
- var u User
- read("user", "name", "Ann", &u)
- t.Log(u)
+ //var u User
+ //read("user", "name", "Ann", &u)
+ //t.Log(u)
}
func TestUpdate(t *testing.T) {
- update("test", "name", "Ale", &User{Name: "Bob", Email: "z"})
+ //update("test", "name", "Ale", &User{Name: "Bob", Email: "z"})
}
func TestDelete(t *testing.T) {
- t.Log(delete("user", "name", "Ann"))
+ //t.Log(delete("user", "name", "Ann"))
}
diff --git a/models/post.go b/models/post.go
index 7241cf4..a4f960c 100644
--- a/models/post.go
+++ b/models/post.go
@@ -1,33 +1,33 @@
-package models
+// package models
-import (
- "time"
+// import (
+// "time"
- "github.com/jinzhu/gorm"
-)
+// "github.com/jinzhu/gorm"
+// )
-//Post model
-type Post struct {
- gorm.Model
- Title string
- Author string
- Published time.Time
- LastEdited time.Time
- Content []byte
-}
+// //Post model
+// type Post struct {
+// gorm.Model
+// Title string
+// Author string
+// Published time.Time
+// LastEdited time.Time
+// Content []byte
+// }
-//Create new post
-func (p Post) Create() error {
- return create(&p)
-}
+// //Create new post
+// func (p Post) Create() error {
+// return create(&p)
+// }
-func (p *Post) Read() (*Post, error) {
- err := read(&p)
- return p, err
-}
+// func (p *Post) Read() (*Post, error) {
+// err := read(&p)
+// return p, err
+// }
-func (p Post) ReadAll() ([]Post, error) {
- var posts []Post
- err := readAll(&posts)
- return posts, err
-}
+// func (p Post) ReadAll() ([]Post, error) {
+// var posts []Post
+// err := readAll(&posts)
+// return posts, err
+// }
diff --git a/models/session.go b/models/session.go
index 8e4d787..c6d475a 100644
--- a/models/session.go
+++ b/models/session.go
@@ -4,7 +4,7 @@ import (
"net/http"
"time"
- "git.1248.nz/1248/Otfe/misc/cookie"
+ "git.technical.kiwi/go/otfe/misc/cookie"
"github.com/globalsign/mgo/bson"
"github.com/jinzhu/gorm"
)
diff --git a/models/session_test.go b/models/session_test.go
index 015cbb4..e68d423 100644
--- a/models/session_test.go
+++ b/models/session_test.go
@@ -1,51 +1,51 @@
-package models
+// package models
-import (
- "net/http"
- "testing"
+// import (
+// "net/http"
+// "testing"
- "git.1248.nz/1248/Otfe/misc/b64"
- "git.1248.nz/1248/Otfe/misc/helpers"
- "git.1248.nz/1248/Otfe/misc/rand"
-)
+// "git.technical.kiwi/go/otfe/misc/b64"
+// "git.technical.kiwi/go/otfe/misc/helpers"
+// "git.technical.kiwi/go/otfe/misc/rand"
+// )
-func TestSessionCreate(t *testing.T) {
- var s1, s2 Session
- s1.ID, _ = rand.B64String(32)
- if s1.Create() != nil {
- t.Fail()
- }
- read("session", "_id", s1.ID, &s2)
+// func TestSessionCreate(t *testing.T) {
+// var s1, s2 Session
+// s1.ID, _ = rand.B64String(32)
+// if s1.Create() != nil {
+// t.Fail()
+// }
+// read("session", "_id", s1.ID, &s2)
- if s1.ID != s2.ID {
- t.Fail()
- }
-}
+// if s1.ID != s2.ID {
+// t.Fail()
+// }
+// }
-func TestSessionRead(t *testing.T) {
- var s1, s2 Session
- s1.ID, _ = rand.B64String(32)
- if create("session", &s1) != nil {
- t.Fatal("Failed to create session")
- }
- if s2.Read(s1.ID) != nil {
- t.Fatal("Failed to read session")
- }
- if s1.ID != s2.ID {
- t.Fatal("Ids don't match")
- }
-}
+// func TestSessionRead(t *testing.T) {
+// var s1, s2 Session
+// s1.ID, _ = rand.B64String(32)
+// if create("session", &s1) != nil {
+// t.Fatal("Failed to create session")
+// }
+// if s2.Read(s1.ID) != nil {
+// t.Fatal("Failed to read session")
+// }
+// if s1.ID != s2.ID {
+// t.Fatal("Ids don't match")
+// }
+// }
-func TestGet(t *testing.T) {
- DBWipeCollection("session")
- var s1, s2 Session
- s1.ID, _ = rand.B64String(32)
- s1.Create()
- c := &http.Cookie{Name: "session",
- Value: b64.Encode(s1.ID)}
- request, err := http.NewRequest("GET", "/", nil)
- helpers.Ok(t, err)
- request.AddCookie(c)
- s2.Get(request)
- helpers.Equals(t, s1, s2)
-}
+// func TestGet(t *testing.T) {
+// DBWipeCollection("session")
+// var s1, s2 Session
+// s1.ID, _ = rand.B64String(32)
+// s1.Create()
+// c := &http.Cookie{Name: "session",
+// Value: b64.Encode(s1.ID)}
+// request, err := http.NewRequest("GET", "/", nil)
+// helpers.Ok(t, err)
+// request.AddCookie(c)
+// s2.Get(request)
+// helpers.Equals(t, s1, s2)
+// }
diff --git a/models/user.go b/models/user.go
index a2fe529..83c589e 100644
--- a/models/user.go
+++ b/models/user.go
@@ -1,80 +1,80 @@
-package models
+// package models
-import (
- "errors"
- "fmt"
+// import (
+// "errors"
+// "fmt"
- "github.com/globalsign/mgo/bson"
-)
+// "github.com/globalsign/mgo/bson"
+// )
-//User model
-type User struct {
- ID bson.ObjectId `bson:"_id,omitempty"`
- Email string `bson:"email"`
- Name string `bson:"name"`
- Username string `bson:"username"`
- Password string `bson:"password"`
- PrimaryGroup bson.ObjectId `bson:"primarygroup,omitempty"`
- Groups []bson.ObjectId `bson:"groups,omitempty"`
- Session string
-}
+// //User model
+// type User struct {
+// ID bson.ObjectId `bson:"_id,omitempty"`
+// Email string `bson:"email"`
+// Name string `bson:"name"`
+// Username string `bson:"username"`
+// Password string `bson:"password"`
+// PrimaryGroup bson.ObjectId `bson:"primarygroup,omitempty"`
+// Groups []bson.ObjectId `bson:"groups,omitempty"`
+// Session string
+// }
-//Create user
-func (u *User) Create() error {
- var user User
- read("user", "email", u.Email, &user)
- if u.Email == user.Email {
- return errors.New("Email all ready used")
- }
- return create("user", &u)
+// //Create user
+// func (u *User) Create() error {
+// var user User
+// read("user", "email", u.Email, &user)
+// if u.Email == user.Email {
+// return errors.New("Email all ready used")
+// }
+// return create("user", &u)
-}
+// }
-//Read user
-func (u *User) Read(key string, value interface{}) error {
- err := read("user", key, value, &u)
- if err != nil {
- return errors.New("User doesn't exist")
- }
- return nil
-}
+// //Read user
+// func (u *User) Read(key string, value interface{}) error {
+// err := read("user", key, value, &u)
+// if err != nil {
+// return errors.New("User doesn't exist")
+// }
+// return nil
+// }
-//ReadAll users
-func (u *User) ReadAll() ([]User, error) {
- var users []User
- var err error
- err = readAll("user", "", nil, &users)
- return users, err
+// //ReadAll users
+// func (u *User) ReadAll() ([]User, error) {
+// var users []User
+// var err error
+// err = readAll("user", "", nil, &users)
+// return users, err
-}
+// }
-//Update user
-func (u *User) Update() error {
- return update("user", "_id", u.ID, &u)
-}
+// //Update user
+// func (u *User) Update() error {
+// return update("user", "_id", u.ID, &u)
+// }
-//Delete user
-func (u *User) Delete(key string, value string) error {
- err := delete("user", key, value)
- return err
-}
+// //Delete user
+// func (u *User) Delete(key string, value string) error {
+// err := delete("user", key, value)
+// return err
+// }
-//HasPermission check if a given user is admin or has a given permisssion
-func (u *User) HasPermission(perm string) bool {
- var group Group
- //Check primary group
- err := group.Read("_id", u.PrimaryGroup)
- fmt.Println(group.Admin)
- if err == nil && (group.Admin == true || group.Permissions[perm] == true) {
+// //HasPermission check if a given user is admin or has a given permisssion
+// func (u *User) HasPermission(perm string) bool {
+// var group Group
+// //Check primary group
+// err := group.Read("_id", u.PrimaryGroup)
+// fmt.Println(group.Admin)
+// if err == nil && (group.Admin == true || group.Permissions[perm] == true) {
- return true
- }
- //Check other groups
- for id := range u.Groups {
- err = group.Read("_id", id)
- if err == nil && (group.Admin || group.Permissions[perm]) {
- return true
- }
- }
- return false
-}
+// return true
+// }
+// //Check other groups
+// for id := range u.Groups {
+// err = group.Read("_id", id)
+// if err == nil && (group.Admin || group.Permissions[perm]) {
+// return true
+// }
+// }
+// return false
+// }
diff --git a/runner.conf b/runner.conf
deleted file mode 100644
index 6d6a183..0000000
--- a/runner.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-root: ./
-tmp_path: ./tmp
-build_name: runner-build
-build_log: runner-build-errors.log
-valid_ext: .go, .tpl, .tmpl, .html, .ccs, .js, .toml
-no_rebuild_ext: .tpl, .tmpl, .html
-ignored: assets, tmp
-build_delay: 600
-colors: 1
-log_color_main: cyan
-log_color_build: yellow
-log_color_runner: green
-log_color_watcher: magenta
-log_color_app:
\ No newline at end of file
diff --git a/tmp/build-errors.log b/tmp/build-errors.log
new file mode 100644
index 0000000..4660a1c
--- /dev/null
+++ b/tmp/build-errors.log
@@ -0,0 +1 @@
+exit status 1exit status 1
\ No newline at end of file