add delete user
This commit is contained in:
@@ -101,6 +101,7 @@ func setAdminRoutes(mux *http.ServeMux) {
|
||||
"home": extendFromBox(userT, box, "pages/home.tmpl"),
|
||||
"change_own_password": extendFromBox(userT, box, "pages/change_own_password.tmpl"),
|
||||
"change_password": extendFromBox(userT, box, "pages/change_password.tmpl"),
|
||||
"delete_user": extendFromBox(userT, box, "pages/delete_user.tmpl"),
|
||||
"create_user": extendFromBox(userT, box, "pages/create_user.tmpl"),
|
||||
"update_lastfm_api_key": extendFromBox(userT, box, "pages/update_lastfm_api_key.tmpl"),
|
||||
}
|
||||
@@ -128,6 +129,8 @@ func setAdminRoutes(mux *http.ServeMux) {
|
||||
mux.HandleFunc("/admin/unlink_lastfm_do", withUserWare(cont.ServeUnlinkLastFMDo))
|
||||
mux.HandleFunc("/admin/change_password", withAdminWare(cont.ServeChangePassword))
|
||||
mux.HandleFunc("/admin/change_password_do", withAdminWare(cont.ServeChangePasswordDo))
|
||||
mux.HandleFunc("/admin/delete_user", withAdminWare(cont.ServeDeleteUser))
|
||||
mux.HandleFunc("/admin/delete_user_do", withAdminWare(cont.ServeDeleteUserDo))
|
||||
mux.HandleFunc("/admin/create_user", withAdminWare(cont.ServeCreateUser))
|
||||
mux.HandleFunc("/admin/create_user_do", withAdminWare(cont.ServeCreateUserDo))
|
||||
mux.HandleFunc("/admin/update_lastfm_api_key", withAdminWare(cont.ServeUpdateLastFMAPIKey))
|
||||
|
||||
1
go.mod
1
go.mod
@@ -16,6 +16,7 @@ require (
|
||||
github.com/gobuffalo/packr/v2 v2.2.0
|
||||
github.com/gofrs/uuid v3.2.0+incompatible // indirect
|
||||
github.com/golangci/golangci-lint v1.16.0 // indirect
|
||||
github.com/gorilla/securecookie v1.1.1
|
||||
github.com/gorilla/sessions v1.1.3
|
||||
github.com/jinzhu/gorm v1.9.2
|
||||
github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a // indirect
|
||||
|
||||
@@ -158,6 +158,31 @@ func (c *Controller) ServeChangePasswordDo(w http.ResponseWriter, r *http.Reques
|
||||
http.Redirect(w, r, "/admin/home", http.StatusSeeOther)
|
||||
}
|
||||
|
||||
func (c *Controller) ServeDeleteUser(w http.ResponseWriter, r *http.Request) {
|
||||
username := r.URL.Query().Get("user")
|
||||
if username == "" {
|
||||
http.Error(w, "please provide a username", 400)
|
||||
return
|
||||
}
|
||||
var user db.User
|
||||
err := c.DB.Where("name = ?", username).First(&user).Error
|
||||
if gorm.IsRecordNotFoundError(err) {
|
||||
http.Error(w, "couldn't find a user with that name", 400)
|
||||
return
|
||||
}
|
||||
var data templateData
|
||||
data.SelectedUser = &user
|
||||
renderTemplate(w, r, c.Templates["delete_user"], &data)
|
||||
}
|
||||
|
||||
func (c *Controller) ServeDeleteUserDo(w http.ResponseWriter, r *http.Request) {
|
||||
username := r.URL.Query().Get("user")
|
||||
var user db.User
|
||||
c.DB.Where("name = ?", username).First(&user)
|
||||
c.DB.Delete(&user)
|
||||
http.Redirect(w, r, "/admin/home", http.StatusSeeOther)
|
||||
}
|
||||
|
||||
func (c *Controller) ServeCreateUser(w http.ResponseWriter, r *http.Request) {
|
||||
renderTemplate(w, r, c.Templates["create_user"], nil)
|
||||
}
|
||||
|
||||
@@ -109,10 +109,6 @@ a:hover {
|
||||
background-color: #f4433669;
|
||||
}
|
||||
|
||||
.happy {
|
||||
background-color: #4caf5069;
|
||||
}
|
||||
|
||||
i.mdi {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
15
templates/pages/delete_user.tmpl
Normal file
15
templates/pages/delete_user.tmpl
Normal file
@@ -0,0 +1,15 @@
|
||||
{{ define "title" }}home{{ end }}
|
||||
|
||||
{{ define "user" }}
|
||||
<div class="padded box mono">
|
||||
<div class="box-title">
|
||||
<i class="mdi mdi-account-remove"></i> deleting user {{ .SelectedUser.Name }}
|
||||
</div>
|
||||
<div class="right">
|
||||
are you sure?
|
||||
</div>
|
||||
<form action="/admin/delete_user_do?user={{ .SelectedUser.Name }}" method="post">
|
||||
<input type="submit" value="yes">
|
||||
</form>
|
||||
</div>
|
||||
{{ end }}
|
||||
@@ -20,12 +20,12 @@
|
||||
<a href="/admin/update_lastfm_api_key">update api key</a><br/>
|
||||
{{ end }}
|
||||
{{ if .CurrentLastFMAPIKey }}
|
||||
<span class="light">current status</span>
|
||||
{{ if .User.LastFMSession }}
|
||||
<span class="light">current status</span>
|
||||
<span class="happy">linked</span>
|
||||
linked
|
||||
<span class="light">|</span>
|
||||
<a href="/admin/unlink_lastfm_do">unlink</a><br/>
|
||||
{{ else }}
|
||||
<span class="light">current status</span>
|
||||
<span class="angry">unlinked</span>
|
||||
<a href="https://www.last.fm/api/auth/?api_key={{ .CurrentLastFMAPIKey }}&cb={{ .RequestRoot }}/admin/link_lastfm_do">link</a><br/>
|
||||
{{ end }}
|
||||
@@ -43,9 +43,11 @@
|
||||
<div class="right">
|
||||
{{ range $user := .AllUsers }}
|
||||
<i>{{ $user.Name }}</i>
|
||||
<span class="light">created</span>
|
||||
{{ $user.CreatedAt.Format "jan 02, 2006" }}
|
||||
<a href="/admin/change_password?user={{ $user.Name }}">change password</a><br/>
|
||||
<span class="light">{{ $user.CreatedAt.Format "jan 02, 2006" }}</span>
|
||||
<span class="light">|</span>
|
||||
<a href="/admin/change_password?user={{ $user.Name }}">change password</a>
|
||||
<span class="light">|</span>
|
||||
<a href="/admin/delete_user?user={{ $user.Name }}">delete</a><br/>
|
||||
{{ end }}
|
||||
<a href="/admin/create_user" class="button">create new</a>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user