2022-03-12 18:06:39 +00:00
|
|
|
// package controllers
|
|
|
|
|
|
|
|
// import (
|
|
|
|
// "fmt"
|
|
|
|
// "net/http"
|
|
|
|
|
|
|
|
// "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
|
|
|
|
// }
|
|
|
|
|
|
|
|
// //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")
|
|
|
|
// }
|
|
|
|
|
|
|
|
// //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")
|
|
|
|
// }
|
|
|
|
|
|
|
|
// //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)
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// //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) {
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// //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)
|
|
|
|
|
|
|
|
// }
|