dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit b164509888ef950d5c63973be4f1f1d668199242
parent 7b7e680160535c71856e65f05ce01df9cbc70fde
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Tue, 10 Jan 2023 10:45:12 -0800

disallow uppercase for retards users

Diffstat:
Acmd/dkf/migrations/118.sql | 4++++
Mpkg/database/tableUsers.go | 2++
Mpkg/web/handlers/admin.go | 3+++
Mpkg/web/handlers/api/v1/spamInterceptor.go | 4++++
Mpkg/web/handlers/data.go | 1+
Mpkg/web/public/views/pages/admin/user-edit.gohtml | 8++++++++
6 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/cmd/dkf/migrations/118.sql b/cmd/dkf/migrations/118.sql @@ -0,0 +1,4 @@ +-- +migrate Up +ALTER TABLE users ADD COLUMN can_use_uppercase TINYINT(1) NOT NULL DEFAULT 1; + +-- +migrate Down diff --git a/pkg/database/tableUsers.go b/pkg/database/tableUsers.go @@ -83,6 +83,7 @@ type User struct { CanUploadFile bool CanUseForum bool CanChangeUsername bool + CanUseUppercase bool CanChangeColor bool CanUseMultiline bool Vetted bool @@ -522,6 +523,7 @@ func createUser(username, password, repassword, gpgPublicKey string, isAdmin, ve newUser.CanUseForum = true newUser.CanUseMultiline = false newUser.CanChangeUsername = true + newUser.CanUseUppercase = true newUser.CanUploadFile = true newUser.CanChangeColor = true newUser.DisplayDeleteButton = true diff --git a/pkg/web/handlers/admin.go b/pkg/web/handlers/admin.go @@ -578,6 +578,7 @@ func AdminEditUserHandler(c echo.Context) error { data.CanSeeHellbanned = user.CanSeeHellbanned data.IsIncognito = user.IsIncognito data.CanChangeUsername = user.CanChangeUsername + data.CanUseUppercase = user.CanUseUppercase data.CanChangeColor = user.CanChangeColor data.Vetted = user.Vetted data.Role = user.Role @@ -608,6 +609,7 @@ func AdminEditUserHandler(c echo.Context) error { data.CanSeeHellbanned = utils.DoParseBool(c.FormValue("can_see_hellbanned")) data.IsIncognito = utils.DoParseBool(c.FormValue("is_incognito")) data.CanChangeUsername = utils.DoParseBool(c.FormValue("can_change_username")) + data.CanUseUppercase = utils.DoParseBool(c.FormValue("can_use_uppercase")) data.CanChangeColor = utils.DoParseBool(c.FormValue("can_change_color")) data.Vetted = utils.DoParseBool(c.FormValue("vetted")) data.CollectMetadata = utils.DoParseBool(c.FormValue("collect_metadata")) @@ -661,6 +663,7 @@ func AdminEditUserHandler(c echo.Context) error { user.CanSeeHellbanned = data.CanSeeHellbanned user.IsIncognito = data.IsIncognito user.CanChangeUsername = data.CanChangeUsername + user.CanUseUppercase = data.CanUseUppercase user.CanChangeColor = data.CanChangeColor user.Vetted = data.Vetted user.CollectMetadata = data.CollectMetadata diff --git a/pkg/web/handlers/api/v1/spamInterceptor.go b/pkg/web/handlers/api/v1/spamInterceptor.go @@ -24,6 +24,10 @@ func (i SpamInterceptor) InterceptMsg(c *Command) { c.err = errors.New("forbidden url") return } + + if !c.authUser.CanUseUppercase { + c.message = strings.ToLower(c.message) + } } var ErrSpamFilterTriggered = errors.New("spam filter triggered") diff --git a/pkg/web/handlers/data.go b/pkg/web/handlers/data.go @@ -773,6 +773,7 @@ type adminEditUsereData struct { CanSeeHellbanned bool IsIncognito bool CanChangeUsername bool + CanUseUppercase bool CanChangeColor bool Vetted bool ChatColor string diff --git a/pkg/web/public/views/pages/admin/user-edit.gohtml b/pkg/web/public/views/pages/admin/user-edit.gohtml @@ -147,6 +147,14 @@ <div class="form-check form-check-1"> <div class="checkbox-wrapper form-check-input"> + <input class="my-cbx" type="checkbox" name="can_use_uppercase" id="can_use_uppercase" value="1"{{ if .Data.CanUseUppercase }} checked{{ end }} /> + <label for="can_use_uppercase" class="toggle"><span></span></label> + </div> + <label class="form-check-label" for="can_use_uppercase">{{ t "Can use uppercase" . }}</label> + </div> + + <div class="form-check form-check-1"> + <div class="checkbox-wrapper form-check-input"> <input class="my-cbx" type="checkbox" name="can_change_color" id="can_change_color" value="1"{{ if .Data.CanChangeColor }} checked{{ end }} /> <label for="can_change_color" class="toggle"><span></span></label> </div>