mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	登录界面屏蔽个别敏感区域
This commit is contained in:
		@@ -13,15 +13,19 @@ import (
 | 
				
			|||||||
	adminserverutils "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/server/admin-server-utils"
 | 
						adminserverutils "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/settings/server/admin-server-utils"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/helpers"
 | 
						"github.com/TeaOSLab/EdgeAdmin/internal/web/helpers"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/configutils"
 | 
				
			||||||
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/iplibrary"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/dao"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/rpc/dao"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
				
			||||||
	"github.com/iwind/TeaGo/actions"
 | 
						"github.com/iwind/TeaGo/actions"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/lists"
 | 
				
			||||||
	"github.com/iwind/TeaGo/types"
 | 
						"github.com/iwind/TeaGo/types"
 | 
				
			||||||
	stringutil "github.com/iwind/TeaGo/utils/string"
 | 
						stringutil "github.com/iwind/TeaGo/utils/string"
 | 
				
			||||||
	"net"
 | 
						"net"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const regionDenyMessage = "当前软件系统暂时不为你所在的区域提供服务。"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type IndexAction struct {
 | 
					type IndexAction struct {
 | 
				
			||||||
	actionutils.ParentAction
 | 
						actionutils.ParentAction
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -36,6 +40,11 @@ func (this *IndexAction) RunGet(params struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	Auth *helpers.UserShouldAuth
 | 
						Auth *helpers.UserShouldAuth
 | 
				
			||||||
}) {
 | 
					}) {
 | 
				
			||||||
 | 
						if !this.checkRegion() {
 | 
				
			||||||
 | 
							this.WriteString(regionDenyMessage)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 是否自动从HTTP跳转到HTTPS
 | 
						// 是否自动从HTTP跳转到HTTPS
 | 
				
			||||||
	if this.Request.TLS == nil {
 | 
						if this.Request.TLS == nil {
 | 
				
			||||||
		httpsPort, _ := adminserverutils.ReadServerHTTPS()
 | 
							httpsPort, _ := adminserverutils.ReadServerHTTPS()
 | 
				
			||||||
@@ -125,6 +134,11 @@ func (this *IndexAction) RunPost(params struct {
 | 
				
			|||||||
	Auth *helpers.UserShouldAuth
 | 
						Auth *helpers.UserShouldAuth
 | 
				
			||||||
	CSRF *actionutils.CSRF
 | 
						CSRF *actionutils.CSRF
 | 
				
			||||||
}) {
 | 
					}) {
 | 
				
			||||||
 | 
						if !this.checkRegion() {
 | 
				
			||||||
 | 
							this.Fail(regionDenyMessage)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	params.Must.
 | 
						params.Must.
 | 
				
			||||||
		Field("username", params.Username).
 | 
							Field("username", params.Username).
 | 
				
			||||||
		Require("请输入用户名").
 | 
							Require("请输入用户名").
 | 
				
			||||||
@@ -216,3 +230,13 @@ func (this *IndexAction) RunPost(params struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	this.Success()
 | 
						this.Success()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 检查登录区域
 | 
				
			||||||
 | 
					func (this *IndexAction) checkRegion() bool {
 | 
				
			||||||
 | 
						var ip = this.RequestRemoteIP()
 | 
				
			||||||
 | 
						var result = iplibrary.LookupIP(ip)
 | 
				
			||||||
 | 
						if result != nil && result.IsOk() && result.CountryId() > 0 && lists.ContainsInt64([]int64{10}, result.CountryId()) {
 | 
				
			||||||
 | 
							return false
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return true
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user