dkforest

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

commit 9c0c3cc3a0c714b1812d086fe2829d238af45fe0
parent f450de2ac6c9f24b40a042e3022c5748c267e398
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Wed, 19 Feb 2025 15:10:30 -0800

add button to delete all user unused invitations

Diffstat:
Mpkg/database/database.go | 1+
Mpkg/database/tableInvitations.go | 5+++++
Mpkg/web/handlers/settings.go | 7+++++--
Mpkg/web/public/views/pages/settings/invitations.gohtml | 11++++++++++-
4 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/pkg/database/database.go b/pkg/database/database.go @@ -67,6 +67,7 @@ type IDkfDB interface { DeleteAllChatInbox(userID UserID) error DeleteAllNotifications(userID UserID) error DeleteAllSessionNotifications(sessionToken string) error + DeleteAllUserUnusedInvitations(userID UserID) (err error) DeleteChatInboxMessageByChatMessageID(chatMessageID int64) error DeleteChatInboxMessageByID(messageID int64) error DeleteChatMessageByUUID(messageUUID string) error diff --git a/pkg/database/tableInvitations.go b/pkg/database/tableInvitations.go @@ -37,6 +37,11 @@ func (d *DkfDB) CreateInvitation(userID UserID) (out Invitation, err error) { return } +func (d *DkfDB) DeleteAllUserUnusedInvitations(userID UserID) (err error) { + err = d.db.Delete(&Invitation{}, "owner_user_id = ? AND invitee_user_id == 1", userID).Error + return +} + func (d *DkfDB) GetUnusedInvitationByToken(token string) (out Invitation, err error) { err = d.db.First(&out, "token = ? AND invitee_user_id == 1", token).Error return diff --git a/pkg/web/handlers/settings.go b/pkg/web/handlers/settings.go @@ -969,8 +969,11 @@ func SettingsInvitationsHandler(c echo.Context) error { data.DkfOnion = config.DkfOnion if c.Request().Method == http.MethodPost { - if _, err := db.CreateInvitation(authUser.ID); err != nil { - logrus.Error(err) + formName := c.Request().PostFormValue("formName") + if formName == "createInvitation" { + utils.LogErr2(db.CreateInvitation(authUser.ID)) + } else if formName == "deleteAll" { + utils.LogErr(db.DeleteAllUserUnusedInvitations(authUser.ID)) } return c.Redirect(http.StatusFound, "/settings/invitations") } diff --git a/pkg/web/public/views/pages/settings/invitations.gohtml b/pkg/web/public/views/pages/settings/invitations.gohtml @@ -9,13 +9,22 @@ {{ t "Invitations" . }} </div> <div class="card-body"> - <form method="post"> + <form method="post" class="d-inline-block"> <input type="hidden" name="csrf" value="{{ .CSRF }}" /> + <input type="hidden" name="formName" value="createInvitation" /> <div class="form-group"> <input type="submit" value="{{ t "Create invitation" . }}" class="btn btn-primary" /> </div> </form> + <form method="post" class="d-inline-block"> + <input type="hidden" name="csrf" value="{{ .CSRF }}" /> + <input type="hidden" name="formName" value="deleteAll" /> + <div class="form-group"> + <input type="submit" value="{{ t "Delete all" . }}" class="btn btn-danger" /> + </div> + </form> + <table class="table table-hover table-novpadding table-sm table-striped"> <tr> <th></th>