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) }