// 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)

// }