2017-10-31 16:42:15 +00:00
|
|
|
package core
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/http"
|
2017-11-03 16:52:40 +00:00
|
|
|
|
2017-11-07 17:01:02 +00:00
|
|
|
"github.com/kirsle/blog/core/forms"
|
2017-11-03 16:52:40 +00:00
|
|
|
"github.com/kirsle/blog/core/models/users"
|
2017-10-31 16:42:15 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// SetupHandler is the initial blog setup route.
|
|
|
|
func (b *Blog) SetupHandler(w http.ResponseWriter, r *http.Request) {
|
2017-11-07 17:01:02 +00:00
|
|
|
vars := &Vars{
|
|
|
|
Form: forms.Setup{},
|
2017-11-03 16:52:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if r.Method == "POST" {
|
2017-11-07 17:01:02 +00:00
|
|
|
form := forms.Setup{
|
2017-11-03 16:52:40 +00:00
|
|
|
Username: r.FormValue("username"),
|
|
|
|
Password: r.FormValue("password"),
|
|
|
|
Confirm: r.FormValue("confirm"),
|
|
|
|
}
|
2017-11-07 17:01:02 +00:00
|
|
|
vars.Form = form
|
|
|
|
err := form.Validate()
|
|
|
|
if err != nil {
|
|
|
|
vars.Error = err
|
|
|
|
} else {
|
|
|
|
log.Info("Creating admin account %s", form.Username)
|
2017-11-03 16:52:40 +00:00
|
|
|
user := &users.User{
|
2017-11-07 17:01:02 +00:00
|
|
|
Username: form.Username,
|
|
|
|
Password: form.Password,
|
|
|
|
Admin: true,
|
|
|
|
Name: "Administrator",
|
2017-11-03 16:52:40 +00:00
|
|
|
}
|
2017-11-07 17:01:02 +00:00
|
|
|
err := users.Create(user)
|
2017-11-03 16:52:40 +00:00
|
|
|
if err != nil {
|
|
|
|
log.Error("Error: %v", err)
|
2017-11-07 17:01:02 +00:00
|
|
|
vars.Error = err
|
2017-11-03 16:52:40 +00:00
|
|
|
}
|
2017-11-07 17:01:02 +00:00
|
|
|
|
|
|
|
// All set!
|
|
|
|
b.Redirect(w, "/admin")
|
|
|
|
return
|
2017-11-03 16:52:40 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
b.RenderTemplate(w, r, "admin/setup", vars)
|
2017-10-31 16:42:15 +00:00
|
|
|
}
|