commit e12a4bcb342408ab047a789891737885bb75395a
parent 11d8d73ac78816816512589160009c9bd23bfc5e
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sun, 15 Jan 2023 21:23:54 -0800
cleanup
Diffstat:
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/pkg/database/tableUsers.go b/pkg/database/tableUsers.go
@@ -306,6 +306,11 @@ func GetUsersByUsername(usernames []string) (out []User, err error) {
return
}
+func DeleteUserByID(userID UserID) (err error) {
+ err = DB.Unscoped().Delete(User{}, "id = ?", userID).Error
+ return
+}
+
func GetModeratorsUsers() (out []User, err error) {
err = DB.Order("username ASC").Find(&out, "role = ? OR is_admin = 1", "moderator").Error
return
diff --git a/pkg/web/handlers/admin.go b/pkg/web/handlers/admin.go
@@ -6,7 +6,6 @@ import (
"net/http"
"os"
"path/filepath"
- "strconv"
"strings"
"dkforest/pkg/config"
@@ -407,16 +406,17 @@ func AdminCaptchaHandler(c echo.Context) error {
// AdminDeleteUserHandler ...
func AdminDeleteUserHandler(c echo.Context) error {
- id, err := strconv.Atoi(c.Param("userID"))
+ userID, err := dutils.ParseUserID(c.Param("userID"))
if err != nil {
return c.Render(http.StatusOK, "flash",
FlashResponse{"user id not found", c.Request().Referer(), "alert-danger"})
}
- if id == 1 {
+ if userID == config.RootAdminID {
return c.Render(http.StatusOK, "flash",
FlashResponse{"Root admin cannot be deleted", c.Request().Referer(), "alert-danger"})
}
- if err := database.DB.Unscoped().Delete(database.User{}, "id = ?", id).Error; err != nil {
+
+ if err := database.DeleteUserByID(userID); err != nil {
logrus.Error(err)
}
return c.Redirect(http.StatusFound, c.Request().Referer())