From b76dde7f3ab7bcad63f277d399e46b8c41dd20df Mon Sep 17 00:00:00 2001 From: liuweiqing Date: Fri, 15 Mar 2024 19:26:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20linuxdo=E6=A0=B9=E6=8D=AE=E7=AD=89?= =?UTF-8?q?=E7=BA=A7=E8=AE=BE=E7=BD=AE=E9=A2=9D=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constants.go | 11 +++++++---- controller/linuxdo.go | 18 ++++++++++++++++++ model/user.go | 1 + 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/common/constants.go b/common/constants.go index 9ba7d9e..7e0f3f1 100644 --- a/common/constants.go +++ b/common/constants.go @@ -50,7 +50,7 @@ var PasswordLoginEnabled = true var PasswordRegisterEnabled = true var EmailVerificationEnabled = false var GitHubOAuthEnabled = false -var LinuxDoOAuthEnabled = false +var LinuxDoOAuthEnabled = true var WeChatAuthEnabled = false var TelegramOAuthEnabled = false var TurnstileCheckEnabled = false @@ -83,8 +83,8 @@ var SMTPToken = "" var GitHubClientId = "" var GitHubClientSecret = "" -var LinuxDoClientId = "" -var LinuxDoClientSecret = "" +var LinuxDoClientId = "cpgOEy7OYi0hKMx23zcioFe2VQUlgIF2" +var LinuxDoClientSecret = "PKXwhPs9tPLRGbgItKacUizzZdwSQfBW" var WeChatServerAddress = "" var WeChatServerToken = "" @@ -96,9 +96,12 @@ var TurnstileSecretKey = "" var TelegramBotToken = "" var TelegramBotName = "" -var QuotaForNewUser = 0 +var QuotaForNewUser = 500000 //1$ var QuotaForInviter = 0 var QuotaForInvitee = 0 +var QuotaForLinuxDoLevel1 = 10 //10$ +var QuotaForLinuxDoLevel2 = 200 //200$ +var QuotaForLinuxDoLevel3 = 1000 //1000$ var ChannelDisableThreshold = 5.0 var AutomaticDisableChannelEnabled = false var AutomaticEnableChannelEnabled = false diff --git a/controller/linuxdo.go b/controller/linuxdo.go index de4c982..1cc999b 100644 --- a/controller/linuxdo.go +++ b/controller/linuxdo.go @@ -119,6 +119,7 @@ func LinuxDoOAuth(c *gin.Context) { LinuxDoId: strconv.Itoa(linuxdoUser.ID), } if model.IsLinuxDoIdAlreadyTaken(user.LinuxDoId) { + //如果已经登录了,就查找用户信息填充到user中 err := user.FillUserByLinuxDoId() if err != nil { c.JSON(http.StatusOK, gin.H{ @@ -147,6 +148,23 @@ func LinuxDoOAuth(c *gin.Context) { "message": err.Error(), }) return + } else { + // 添加调试信息:记录用户等级和相应的配额 + common.SysLog(fmt.Sprintf("Setting quota for user with trust level %d: %s", linuxdoUser.TrustLevel, user.Username)) + + switch linuxdoUser.TrustLevel { + case 1: + model.IncreaseUserQuota(user.Id, common.QuotaForLinuxDoLevel1*500000) + common.SysLog(fmt.Sprintf("User '%s' assigned quota: %d (Level 1)", user.Username, common.QuotaForLinuxDoLevel1)) + case 2: + model.IncreaseUserQuota(user.Id, common.QuotaForLinuxDoLevel2*500000) + common.SysLog(fmt.Sprintf("User '%s' assigned quota: %d (Level 2)", user.Username, common.QuotaForLinuxDoLevel2)) + case 3: + model.IncreaseUserQuota(user.Id, common.QuotaForLinuxDoLevel3*500000) + common.SysLog(fmt.Sprintf("User '%s' assigned quota: %d (Level 3)", user.Username, common.QuotaForLinuxDoLevel3)) + default: + common.SysLog(fmt.Sprintf("WARNING: User '%s' has an unknown trust level: %d", user.Username, linuxdoUser.TrustLevel)) + } } } else { c.JSON(http.StatusOK, gin.H{ diff --git a/model/user.go b/model/user.go index 9c9d42e..ff9ad3a 100644 --- a/model/user.go +++ b/model/user.go @@ -174,6 +174,7 @@ func (user *User) Insert(inviterId int) error { } } user.Quota = common.QuotaForNewUser + common.SysLog(fmt.Sprintf("普通用户注册中,应该在linuxdo之前 '%s',额度:'%d'", user.Username, user.Quota)) user.AccessToken = common.GetUUID() user.AffCode = common.GetRandomString(4) result := DB.Create(user)