mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-12 23:00:25 +08:00
安全设置增加允许访问的国家地区、省份、是否局域网访问
This commit is contained in:
@@ -83,6 +83,7 @@ func (this *RegionCountryDAO) FindCountryIdWithDataId(dataId string) (int64, err
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 根据国家名查找国家ID
|
// 根据国家名查找国家ID
|
||||||
|
// TODO 加入缓存
|
||||||
func (this *RegionCountryDAO) FindCountryIdWithCountryName(countryName string) (int64, error) {
|
func (this *RegionCountryDAO) FindCountryIdWithCountryName(countryName string) (int64, error) {
|
||||||
return this.Query().
|
return this.Query().
|
||||||
Where("JSON_CONTAINS(codes, :countryName)").
|
Where("JSON_CONTAINS(codes, :countryName)").
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 启用条目
|
// 启用条目
|
||||||
func (this *RegionProvinceDAO) EnableRegionProvince(id uint32) error {
|
func (this *RegionProvinceDAO) EnableRegionProvince(id int64) error {
|
||||||
_, err := this.Query().
|
_, err := this.Query().
|
||||||
Pk(id).
|
Pk(id).
|
||||||
Set("state", RegionProvinceStateEnabled).
|
Set("state", RegionProvinceStateEnabled).
|
||||||
@@ -44,7 +44,7 @@ func (this *RegionProvinceDAO) EnableRegionProvince(id uint32) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 禁用条目
|
// 禁用条目
|
||||||
func (this *RegionProvinceDAO) DisableRegionProvince(id uint32) error {
|
func (this *RegionProvinceDAO) DisableRegionProvince(id int64) error {
|
||||||
_, err := this.Query().
|
_, err := this.Query().
|
||||||
Pk(id).
|
Pk(id).
|
||||||
Set("state", RegionProvinceStateDisabled).
|
Set("state", RegionProvinceStateDisabled).
|
||||||
@@ -53,7 +53,7 @@ func (this *RegionProvinceDAO) DisableRegionProvince(id uint32) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查找启用中的条目
|
// 查找启用中的条目
|
||||||
func (this *RegionProvinceDAO) FindEnabledRegionProvince(id uint32) (*RegionProvince, error) {
|
func (this *RegionProvinceDAO) FindEnabledRegionProvince(id int64) (*RegionProvince, error) {
|
||||||
result, err := this.Query().
|
result, err := this.Query().
|
||||||
Pk(id).
|
Pk(id).
|
||||||
Attr("state", RegionProvinceStateEnabled).
|
Attr("state", RegionProvinceStateEnabled).
|
||||||
@@ -65,7 +65,7 @@ func (this *RegionProvinceDAO) FindEnabledRegionProvince(id uint32) (*RegionProv
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 根据主键查找名称
|
// 根据主键查找名称
|
||||||
func (this *RegionProvinceDAO) FindRegionProvinceName(id uint32) (string, error) {
|
func (this *RegionProvinceDAO) FindRegionProvinceName(id int64) (string, error) {
|
||||||
return this.Query().
|
return this.Query().
|
||||||
Pk(id).
|
Pk(id).
|
||||||
Result("name").
|
Result("name").
|
||||||
@@ -81,6 +81,7 @@ func (this *RegionProvinceDAO) FindProvinceIdWithDataId(dataId string) (int64, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 根据省份名查找省份ID
|
// 根据省份名查找省份ID
|
||||||
|
// TODO 加入缓存
|
||||||
func (this *RegionProvinceDAO) FindProvinceIdWithProvinceName(provinceName string) (int64, error) {
|
func (this *RegionProvinceDAO) FindProvinceIdWithProvinceName(provinceName string) (int64, error) {
|
||||||
return this.Query().
|
return this.Query().
|
||||||
Where("JSON_CONTAINS(codes, :provinceName)").
|
Where("JSON_CONTAINS(codes, :provinceName)").
|
||||||
|
|||||||
@@ -178,11 +178,24 @@ func (this *IPLibraryService) LookupIPRegion(ctx context.Context, req *pb.Lookup
|
|||||||
if result == nil {
|
if result == nil {
|
||||||
return &pb.LookupIPRegionResponse{Region: nil}, nil
|
return &pb.LookupIPRegionResponse{Region: nil}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
countryId, err := models.SharedRegionCountryDAO.FindCountryIdWithCountryName(result.Country)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
provinceId, err := models.SharedRegionProvinceDAO.FindProvinceIdWithProvinceName(result.Province)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return &pb.LookupIPRegionResponse{Region: &pb.IPRegion{
|
return &pb.LookupIPRegionResponse{Region: &pb.IPRegion{
|
||||||
Country: result.Country,
|
Country: result.Country,
|
||||||
Region: result.Region,
|
Region: result.Region,
|
||||||
Province: result.Province,
|
Province: result.Province,
|
||||||
City: result.City,
|
City: result.City,
|
||||||
Isp: result.ISP,
|
Isp: result.ISP,
|
||||||
|
CountryId: countryId,
|
||||||
|
ProvinceId: provinceId,
|
||||||
}}, nil
|
}}, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,3 +47,26 @@ func (this *RegionCountryService) FindAllEnabledRegionCountries(ctx context.Cont
|
|||||||
Countries: result,
|
Countries: result,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查找单个国家信息
|
||||||
|
func (this *RegionCountryService) FindEnabledRegionCountry(ctx context.Context, req *pb.FindEnabledRegionCountryRequest) (*pb.FindEnabledRegionCountryResponse, error) {
|
||||||
|
// 校验请求
|
||||||
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin, rpcutils.UserTypeNode)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
country, err := models.SharedRegionCountryDAO.FindEnabledRegionCountry(req.CountryId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if country == nil {
|
||||||
|
return &pb.FindEnabledRegionCountryResponse{Country: nil}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return &pb.FindEnabledRegionCountryResponse{Country: &pb.RegionCountry{
|
||||||
|
Id: int64(country.Id),
|
||||||
|
Name: country.Name,
|
||||||
|
Codes: country.DecodeCodes(),
|
||||||
|
}}, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -36,3 +36,27 @@ func (this *RegionProvinceService) FindAllEnabledRegionProvincesWithCountryId(ct
|
|||||||
Provinces: result,
|
Provinces: result,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查找单个省份信息
|
||||||
|
func (this *RegionProvinceService) FindEnabledRegionProvince(ctx context.Context, req *pb.FindEnabledRegionProvinceRequest) (*pb.FindEnabledRegionProvinceResponse, error) {
|
||||||
|
// 校验请求
|
||||||
|
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin, rpcutils.UserTypeNode)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
province, err := models.SharedRegionProvinceDAO.FindEnabledRegionProvince(req.ProvinceId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if province == nil {
|
||||||
|
return &pb.FindEnabledRegionProvinceResponse{Province: nil}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return &pb.FindEnabledRegionProvinceResponse{
|
||||||
|
Province: &pb.RegionProvince{
|
||||||
|
Id: int64(province.Id),
|
||||||
|
Name: province.Name,
|
||||||
|
Codes: province.DecodeCodes(),
|
||||||
|
},
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user