common/utils/verifyPrivilege.go
2025-02-21 16:40:10 +03:00

44 lines
950 B
Go

package utils
import (
"gitea.pena/SQuiz/common/model"
"time"
)
func VerifyUserPrivileges(currentPrivileges []model.ShortPrivilege) bool {
if HasQuizCntPrivilege(currentPrivileges) {
return true
}
if HasUnlimitedPrivilege(currentPrivileges) {
return true
}
return false
}
func HasQuizCntPrivilege(privileges []model.ShortPrivilege) bool {
for _, privilege := range privileges {
if privilege.PrivilegeID == "quizCnt" && privilege.Amount > 0 {
return true
}
}
return false
}
func HasUnlimitedPrivilege(privileges []model.ShortPrivilege) bool {
for _, privilege := range privileges {
if privilege.PrivilegeID == "quizUnlimTime" {
return IsPrivilegeExpired(privilege)
}
}
return false
}
func IsPrivilegeExpired(privilege model.ShortPrivilege) bool {
expirationTime := privilege.CreatedAt.Add(time.Duration(privilege.Amount) * 24 * time.Hour)
currentTime := time.Now()
return currentTime.Before(expirationTime)
}