implement frontend for user expiry/duration

this will add an optional validity period to users, where their account
will be disabled (or deleted) a specified amount of time after they
created it.
This commit is contained in:
Harvey Tindall
2021-02-28 00:44:28 +00:00
parent 3635b6a367
commit 2934832a98
14 changed files with 269 additions and 65 deletions
+18 -8
View File
@@ -634,6 +634,12 @@ func (app *appContext) GenerateInvite(gc *gin.Context) {
} else {
invite.RemainingUses = 1
}
invite.UserDuration = req.UserDuration
if invite.UserDuration {
invite.UserDays = req.UserDays
invite.UserHours = req.UserHours
invite.UserMinutes = req.UserMinutes
}
invite.ValidTill = validTill
if emailEnabled && req.Email != "" && app.config.Section("invite_emails").Key("enabled").MustBool(false) {
app.debug.Printf("%s: Sending invite email", inviteCode)
@@ -813,14 +819,18 @@ func (app *appContext) GetInvites(gc *gin.Context) {
for code, inv := range app.storage.invites {
_, _, days, hours, minutes, _ := timeDiff(inv.ValidTill, currentTime)
invite := inviteDTO{
Code: code,
Days: days,
Hours: hours,
Minutes: minutes,
Created: app.formatDatetime(inv.Created),
Profile: inv.Profile,
NoLimit: inv.NoLimit,
Label: inv.Label,
Code: code,
Days: days,
Hours: hours,
Minutes: minutes,
UserDuration: inv.UserDuration,
UserDays: inv.UserDays,
UserHours: inv.UserHours,
UserMinutes: inv.UserMinutes,
Created: app.formatDatetime(inv.Created),
Profile: inv.Profile,
NoLimit: inv.NoLimit,
Label: inv.Label,
}
if len(inv.UsedBy) != 0 {
invite.UsedBy = inv.UsedBy