mirror of
https://github.com/TeaOSLab/EdgeCommon.git
synced 2025-11-07 07:10:25 +08:00
实现用户审核功能
This commit is contained in:
@@ -30,17 +30,21 @@ type User struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||||
Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
|
Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
|
||||||
Fullname string `protobuf:"bytes,3,opt,name=fullname,proto3" json:"fullname,omitempty"`
|
Fullname string `protobuf:"bytes,3,opt,name=fullname,proto3" json:"fullname,omitempty"`
|
||||||
Mobile string `protobuf:"bytes,4,opt,name=mobile,proto3" json:"mobile,omitempty"`
|
Mobile string `protobuf:"bytes,4,opt,name=mobile,proto3" json:"mobile,omitempty"`
|
||||||
Tel string `protobuf:"bytes,5,opt,name=tel,proto3" json:"tel,omitempty"`
|
Tel string `protobuf:"bytes,5,opt,name=tel,proto3" json:"tel,omitempty"`
|
||||||
Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"`
|
Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"`
|
||||||
Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"`
|
Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"`
|
||||||
IsOn bool `protobuf:"varint,8,opt,name=isOn,proto3" json:"isOn,omitempty"`
|
IsOn bool `protobuf:"varint,8,opt,name=isOn,proto3" json:"isOn,omitempty"`
|
||||||
CreatedAt int64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
|
CreatedAt int64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
|
||||||
NodeCluster *NodeCluster `protobuf:"bytes,10,opt,name=nodeCluster,proto3" json:"nodeCluster,omitempty"`
|
RegisteredIP string `protobuf:"bytes,12,opt,name=registeredIP,proto3" json:"registeredIP,omitempty"`
|
||||||
Features []*UserFeature `protobuf:"bytes,11,rep,name=features,proto3" json:"features,omitempty"`
|
IsVerified bool `protobuf:"varint,13,opt,name=isVerified,proto3" json:"isVerified,omitempty"`
|
||||||
|
IsRejected bool `protobuf:"varint,14,opt,name=isRejected,proto3" json:"isRejected,omitempty"`
|
||||||
|
RejectReason string `protobuf:"bytes,15,opt,name=rejectReason,proto3" json:"rejectReason,omitempty"`
|
||||||
|
NodeCluster *NodeCluster `protobuf:"bytes,10,opt,name=nodeCluster,proto3" json:"nodeCluster,omitempty"`
|
||||||
|
Features []*UserFeature `protobuf:"bytes,11,rep,name=features,proto3" json:"features,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *User) Reset() {
|
func (x *User) Reset() {
|
||||||
@@ -138,6 +142,34 @@ func (x *User) GetCreatedAt() int64 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *User) GetRegisteredIP() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.RegisteredIP
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *User) GetIsVerified() bool {
|
||||||
|
if x != nil {
|
||||||
|
return x.IsVerified
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *User) GetIsRejected() bool {
|
||||||
|
if x != nil {
|
||||||
|
return x.IsRejected
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *User) GetRejectReason() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.RejectReason
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func (x *User) GetNodeCluster() *NodeCluster {
|
func (x *User) GetNodeCluster() *NodeCluster {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.NodeCluster
|
return x.NodeCluster
|
||||||
@@ -161,7 +193,7 @@ var file_models_model_user_proto_rawDesc = []byte{
|
|||||||
0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f,
|
0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f,
|
||||||
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, 0x73, 0x65,
|
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, 0x73, 0x65,
|
||||||
0x72, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
|
0x72, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
|
||||||
0xb8, 0x02, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
|
0xc0, 0x03, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
|
||||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72,
|
0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72,
|
||||||
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72,
|
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72,
|
||||||
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65,
|
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x61, 0x6d, 0x65,
|
||||||
@@ -174,14 +206,23 @@ var file_models_model_user_proto_rawDesc = []byte{
|
|||||||
0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e,
|
0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e,
|
||||||
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x1c, 0x0a, 0x09,
|
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x1c, 0x0a, 0x09,
|
||||||
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52,
|
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||||
0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x6e, 0x6f,
|
0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65,
|
||||||
0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x49, 0x50, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
|
0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x49, 0x50, 0x12, 0x1e,
|
||||||
0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x0a,
|
0x0a, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01,
|
||||||
0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1e,
|
||||||
0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
|
0x0a, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01,
|
||||||
0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f,
|
0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x22,
|
||||||
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x0a, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0f,
|
||||||
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73,
|
||||||
|
0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
|
||||||
|
0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64,
|
||||||
|
0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c,
|
||||||
|
0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
|
||||||
|
0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65,
|
||||||
|
0x72, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
|
||||||
|
0x65, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||||
|
0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -16,6 +16,11 @@ message User {
|
|||||||
string remark = 7;
|
string remark = 7;
|
||||||
bool isOn = 8;
|
bool isOn = 8;
|
||||||
int64 createdAt = 9;
|
int64 createdAt = 9;
|
||||||
|
string registeredIP = 12;
|
||||||
|
bool isVerified = 13;
|
||||||
|
bool isRejected = 14;
|
||||||
|
string rejectReason = 15;
|
||||||
|
|
||||||
NodeCluster nodeCluster = 10;
|
NodeCluster nodeCluster = 10;
|
||||||
repeated UserFeature features = 11;
|
repeated UserFeature features = 11;
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,12 @@ service UserService {
|
|||||||
// 创建用户
|
// 创建用户
|
||||||
rpc createUser (CreateUserRequest) returns (CreateUserResponse);
|
rpc createUser (CreateUserRequest) returns (CreateUserResponse);
|
||||||
|
|
||||||
|
// 注册用户
|
||||||
|
rpc registerUser(RegisterUserRequest) returns (RPCSuccess);
|
||||||
|
|
||||||
|
// 审核用户
|
||||||
|
rpc verifyUser(VerifyUserRequest) returns (RPCSuccess);
|
||||||
|
|
||||||
// 修改用户
|
// 修改用户
|
||||||
rpc updateUser (UpdateUserRequest) returns (RPCSuccess);
|
rpc updateUser (UpdateUserRequest) returns (RPCSuccess);
|
||||||
|
|
||||||
@@ -76,6 +82,24 @@ message CreateUserResponse {
|
|||||||
int64 userId = 1;
|
int64 userId = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 注册用户
|
||||||
|
message RegisterUserRequest {
|
||||||
|
string username = 1;
|
||||||
|
string password = 2;
|
||||||
|
string mobile = 3;
|
||||||
|
string email = 4;
|
||||||
|
string fullname = 5;
|
||||||
|
string ip = 6;
|
||||||
|
string source = 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 审核用户
|
||||||
|
message VerifyUserRequest {
|
||||||
|
int64 userId = 1;
|
||||||
|
bool isRejected = 2;
|
||||||
|
string rejectReason = 3;
|
||||||
|
}
|
||||||
|
|
||||||
// 修改用户
|
// 修改用户
|
||||||
message UpdateUserRequest {
|
message UpdateUserRequest {
|
||||||
int64 userId = 1;
|
int64 userId = 1;
|
||||||
@@ -146,6 +170,8 @@ message LoginUserResponse {
|
|||||||
message UpdateUserInfoRequest {
|
message UpdateUserInfoRequest {
|
||||||
int64 userId = 1;
|
int64 userId = 1;
|
||||||
string fullname = 2;
|
string fullname = 2;
|
||||||
|
string mobile = 3;
|
||||||
|
string email = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改用户登录信息
|
// 修改用户登录信息
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ const (
|
|||||||
SettingCodeAccessLogQueue SettingCode = "accessLogQueue" // 访问日志队列
|
SettingCodeAccessLogQueue SettingCode = "accessLogQueue" // 访问日志队列
|
||||||
SettingCodeCheckUpdates SettingCode = "checkUpdates" // 检查自动更新配置
|
SettingCodeCheckUpdates SettingCode = "checkUpdates" // 检查自动更新配置
|
||||||
|
|
||||||
|
SettingCodeUserUIConfig SettingCode = "userUIConfig" // 用户界面配置
|
||||||
|
SettingCodeUserRegisterConfig SettingCode = "userRegisterConfig" // 用户注册配置
|
||||||
|
|
||||||
SettingCodeNSAccessLogSetting SettingCode = "nsAccessLogSetting" // NS相关全局配置
|
SettingCodeNSAccessLogSetting SettingCode = "nsAccessLogSetting" // NS相关全局配置
|
||||||
SettingCodeNSNodeMonitor SettingCode = "nsNodeMonitor" // 监控NS节点状态
|
SettingCodeNSNodeMonitor SettingCode = "nsNodeMonitor" // 监控NS节点状态
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ const (
|
|||||||
UserFeatureCodeServerAccessLog UserFeatureCode = "server.accessLog"
|
UserFeatureCodeServerAccessLog UserFeatureCode = "server.accessLog"
|
||||||
UserFeatureCodeServerViewAccessLog UserFeatureCode = "server.viewAccessLog"
|
UserFeatureCodeServerViewAccessLog UserFeatureCode = "server.viewAccessLog"
|
||||||
UserFeatureCodePlan UserFeatureCode = "plan"
|
UserFeatureCodePlan UserFeatureCode = "plan"
|
||||||
|
UserFeatureCodeScript UserFeatureCode = "script"
|
||||||
|
UserFeatureCodeServerWAF UserFeatureCode = "server.waf"
|
||||||
|
UserFeatureCodeFinance UserFeatureCode = "finance"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UserFeature 用户功能
|
// UserFeature 用户功能
|
||||||
@@ -64,12 +67,12 @@ func FindAllUserFeatures() []*UserFeature {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "开启WAF",
|
Name: "开启WAF",
|
||||||
Code: "server.waf",
|
Code: UserFeatureCodeServerWAF,
|
||||||
Description: "用户可以开启WAF功能并可以设置黑白名单等",
|
Description: "用户可以开启WAF功能并可以设置黑白名单等",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "费用账单",
|
Name: "费用账单",
|
||||||
Code: "finance",
|
Code: UserFeatureCodeFinance,
|
||||||
Description: "开启费用账单相关功能",
|
Description: "开启费用账单相关功能",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -77,6 +80,11 @@ func FindAllUserFeatures() []*UserFeature {
|
|||||||
Code: UserFeatureCodePlan,
|
Code: UserFeatureCodePlan,
|
||||||
Description: "用户可以购买和管理套餐",
|
Description: "用户可以购买和管理套餐",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Name: "边缘脚本",
|
||||||
|
Code: UserFeatureCodeScript,
|
||||||
|
Description: "用户可以在使用边缘脚本过滤请求",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
27
pkg/userconfigs/user_register_config.go
Normal file
27
pkg/userconfigs/user_register_config.go
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
|
||||||
|
|
||||||
|
package userconfigs
|
||||||
|
|
||||||
|
type UserRegisterConfig struct {
|
||||||
|
IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用用户注册
|
||||||
|
ClusterId int64 `yaml:"clusterId" json:"clusterId"` // 用户创建服务集群
|
||||||
|
ServerGroupIds []int64 `yaml:"serverGroupIds" json:"serverGroupIds"` // 用户注册的服务所在分组
|
||||||
|
ComplexPassword bool `yaml:"complexPassword" json:"complexPassword"` // 必须使用复杂密码
|
||||||
|
Features []string `yaml:"features" json:"features"` // 默认启用的功能
|
||||||
|
RequireVerification bool `yaml:"requireVerification" json:"requireVerification"` // 是否需要审核
|
||||||
|
}
|
||||||
|
|
||||||
|
func DefaultUserRegisterConfig() *UserRegisterConfig {
|
||||||
|
return &UserRegisterConfig{
|
||||||
|
IsOn: false,
|
||||||
|
ComplexPassword: true,
|
||||||
|
Features: []string{
|
||||||
|
UserFeatureCodeServerAccessLog,
|
||||||
|
UserFeatureCodeServerViewAccessLog,
|
||||||
|
UserFeatureCodeServerWAF,
|
||||||
|
UserFeatureCodeFinance,
|
||||||
|
UserFeatureCodePlan,
|
||||||
|
},
|
||||||
|
RequireVerification: false,
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user