Added user editing for admins

This commit is contained in:
Eduard Urbach 2018-04-04 01:45:47 +02:00
parent 18831ddf6a
commit a8379ddc8c
3 changed files with 30 additions and 0 deletions

View File

@ -203,6 +203,7 @@ func Configure(app *aero.Application) {
l.Page("/user/:nick/animelist/anime/:id", animelistitem.Get)
l.Page("/user/:nick/recommended/anime", recommended.Anime)
l.Page("/user/:nick/notifications", notifications.ByUser)
l.Page("/user/:nick/edit", user.Edit)
// Anime list
l.Page("/user/:nick/animelist/watching", animelist.FilterByStatus(arn.AnimeListStatusWatching))

28
pages/user/edit.go Normal file
View File

@ -0,0 +1,28 @@
package user
import (
"net/http"
"github.com/aerogo/aero"
"github.com/animenotifier/arn"
"github.com/animenotifier/notify.moe/utils"
"github.com/animenotifier/notify.moe/utils/editform"
)
// Edit user.
func Edit(ctx *aero.Context) string {
nick := ctx.Get("nick")
user := utils.GetUser(ctx)
if user == nil || user.Role != "admin" {
return ctx.Error(http.StatusUnauthorized, "Not logged in or not auhorized to edit this user", nil)
}
viewUser, err := arn.GetUserByNick(nick)
if err != nil {
return ctx.Error(http.StatusNotFound, "User not found", err)
}
return ctx.HTML(editform.Render(viewUser, "Edit user", user))
}

View File

@ -354,6 +354,7 @@ var routeTests = map[string][]string{
"/animelist/dropped": nil,
"/notifications": nil,
"/user/:nick/notifications": nil,
"/user/:nick/edit": nil,
"/api/test/notification": nil,
"/api/paypal/payment/create": nil,
"/api/userfollows/:id/get/:item": nil,