common/utils/verifyPrivilege.go

44 lines
950 B
Go
Raw Normal View History

2024-06-08 14:27:18 +00:00
package utils
import (
2025-02-21 13:40:10 +00:00
"gitea.pena/SQuiz/common/model"
2024-06-08 14:27:18 +00:00
"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)
}