commit b164509888ef950d5c63973be4f1f1d668199242
parent 7b7e680160535c71856e65f05ce01df9cbc70fde
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Tue, 10 Jan 2023 10:45:12 -0800
disallow uppercase for retards users
Diffstat:
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>