安全设置增加允许访问的国家地区、省份、是否局域网访问

This commit is contained in:
GoEdgeLab
2020-11-20 21:59:16 +08:00
parent bda3391c42
commit 84156e31d6
5 changed files with 71 additions and 9 deletions

View File

@@ -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)").

View File

@@ -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)").

View File

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

View File

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

View File

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