Files
EdgeCommon/pkg/rpc/protos/service_user.proto
2024-05-14 15:05:57 +08:00

402 lines
9.3 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "proto3";
option go_package = "./pb";
package pb;
import "models/rpc_messages.proto";
import "models/model_user.proto";
import "models/model_user_feature.proto";
import "models/model_node_value.proto";
// 用户相关服务
service UserService {
// 创建用户
rpc createUser (CreateUserRequest) returns (CreateUserResponse);
// 注册用户
rpc registerUser(RegisterUserRequest) returns (RegisterUserResponse);
// 审核用户
rpc verifyUser(VerifyUserRequest) returns (RPCSuccess);
// 修改用户
rpc updateUser (UpdateUserRequest) returns (RPCSuccess);
// 删除用户
rpc deleteUser (DeleteUserRequest) returns (RPCSuccess);
// 计算用户数量
rpc countAllEnabledUsers (CountAllEnabledUsersRequest) returns (RPCCountResponse);
// 列出单页用户
rpc listEnabledUsers (ListEnabledUsersRequest) returns (ListEnabledUsersResponse);
// 查询单个用户信息
rpc findEnabledUser (FindEnabledUserRequest) returns (FindEnabledUserResponse);
// 检查用户名是否存在
rpc checkUserUsername (CheckUserUsernameRequest) returns (CheckUserUsernameResponse);
// 登录
rpc loginUser (LoginUserRequest) returns (LoginUserResponse);
// 修改用户基本信息
rpc updateUserInfo (UpdateUserInfoRequest) returns (RPCSuccess);
// 修改用户登录信息
rpc updateUserLogin (UpdateUserLoginRequest) returns (RPCSuccess);
// 取得用户Dashboard数据
rpc composeUserDashboard (ComposeUserDashboardRequest) returns (ComposeUserDashboardResponse);
// 获取用户所在的集群ID
rpc findUserNodeClusterId (FindUserNodeClusterIdRequest) returns (FindUserNodeClusterIdResponse);
// 设置单个用户能使用的功能
rpc updateUserFeatures (UpdateUserFeaturesRequest) returns (RPCSuccess);
// 设置所有用户能使用的功能
rpc updateAllUsersFeatures(UpdateAllUsersFeaturesRequest) returns (RPCSuccess);
// 获取用户所有的功能列表
rpc findUserFeatures (FindUserFeaturesRequest) returns (FindUserFeaturesResponse);
// 获取所有的功能定义
rpc findAllUserFeatureDefinitions (FindAllUserFeatureDefinitionsRequest) returns (FindAllUserFeatureDefinitionsResponse);
// 组合全局的看板数据
rpc composeUserGlobalBoard (ComposeUserGlobalBoardRequest) returns (ComposeUserGlobalBoardResponse);
// 根据用户名检查是否需要输入OTP
rpc checkUserOTPWithUsername (CheckUserOTPWithUsernameRequest) returns (CheckUserOTPWithUsernameResponse);
// 读取用户计费信息
rpc findUserPriceInfo(FindUserPriceInfoRequest) returns (FindUserPriceInfoResponse);
// 修改用户计费方式
rpc updateUserPriceType(UpdateUserPriceTypeRequest) returns (RPCSuccess);
// 修改用户计费周期
rpc updateUserPricePeriod(UpdateUserPricePeriodRequest) returns (RPCSuccess);
// 检查用户服务可用状态
rpc checkUserServersState(CheckUserServersStateRequest) returns (CheckUserServersStateResponse);
// 更新用户服务可用状态
rpc renewUserServersState(RenewUserServersStateRequest) returns (RenewUserServersStateResponse);
// 检查邮箱是否已被使用
rpc checkUserEmail(CheckUserEmailRequest) returns (CheckUserEmailResponse);
// 检查手机号码是否已被使用
rpc checkUserMobile(CheckUserMobileRequest) returns (CheckUserMobileResponse);
// 根据用户名查询用户绑定的邮箱
rpc findUserVerifiedEmailWithUsername(FindUserVerifiedEmailWithUsernameRequest) returns (FindUserVerifiedEmailWithUsernameResponse);
}
// 创建用户
message CreateUserRequest {
string username = 1;
string password = 2;
string fullname = 3;
string mobile = 4;
string tel = 5;
string email = 6;
string remark = 7;
string source = 8;
int64 nodeClusterId = 9;
}
message CreateUserResponse {
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 RegisterUserResponse {
int64 userId = 1;
bool requireEmailVerification = 2; // 是否需要激活邮件
}
// 审核用户
message VerifyUserRequest {
int64 userId = 1;
bool isRejected = 2;
string rejectReason = 3;
}
// 修改用户
message UpdateUserRequest {
int64 userId = 1;
string username = 2;
string password = 3;
string fullname = 4;
string mobile = 5;
string tel = 6;
string email = 7;
string remark = 8;
bool isOn = 9;
int64 nodeClusterId = 10;
string bandwidthAlgo = 11;
}
// 删除用户
message DeleteUserRequest {
int64 userId = 1;
}
// 计算用户数量
message CountAllEnabledUsersRequest {
string keyword = 1;
bool isVerifying = 2;
int32 mobileIsVerified = 3; // 手机号是否已验证1表示已验证0表示未验证-1表示所有状态
}
// 列出单页用户
message ListEnabledUsersRequest {
string keyword = 1;
bool isVerifying = 4;
int32 mobileIsVerified = 5; // 手机号是否已验证1表示已验证0表示未验证-1表示所有状态
int64 offset = 2;
int64 size = 3;
}
message ListEnabledUsersResponse {
repeated User users = 1;
}
// 查询单个用户信息
message FindEnabledUserRequest {
int64 userId = 1;
}
message FindEnabledUserResponse {
User user = 1;
}
// 检查用户名是否存在
message CheckUserUsernameRequest {
int64 userId = 1;
string username = 2;
}
message CheckUserUsernameResponse {
bool exists = 1;
}
// 登录
message LoginUserRequest {
string username = 1;
string password = 2;
}
message LoginUserResponse {
int64 userId = 1;
bool isOk = 2;
string message = 3;
}
// 修改用户基本信息
message UpdateUserInfoRequest {
int64 userId = 1;
string fullname = 2;
string mobile = 3;
string email = 4;
}
// 修改用户登录信息
message UpdateUserLoginRequest {
int64 userId = 1;
string username = 2;
string password = 3;
}
// 取得用户Dashboard数据
message ComposeUserDashboardRequest {
int64 userId = 1;
}
message ComposeUserDashboardResponse {
int64 countServers = 1;
int64 monthlyTrafficBytes = 2;
int64 monthlyPeekBandwidthBytes = 3;
int64 dailyTrafficBytes = 4;
int64 dailyPeekBandwidthBytes = 5;
repeated DailyTrafficStat dailyTrafficStats = 6;
repeated DailyPeekBandwidthStat dailyPeekBandwidthStats = 7;
int32 bandwidthPercentile = 8; // 带宽百分位
int64 bandwidthPercentileBits = 9; // 带宽百分位上的比特数
message DailyTrafficStat {
string day = 1;
int64 bytes = 2;
int64 cachedBytes = 3;
int64 attackBytes = 4;
int64 countRequests = 5;
int64 countCachedRequests = 6;
int64 countAttackRequests = 7;
}
message DailyPeekBandwidthStat {
string day = 1;
int64 bytes = 2;
}
}
// 获取用户所在的集群ID
message FindUserNodeClusterIdRequest {
int64 userId = 1;
}
message FindUserNodeClusterIdResponse {
int64 nodeClusterId = 1;
}
// 设置单个用户能使用的功能
message UpdateUserFeaturesRequest {
int64 userId = 1;
repeated string featureCodes = 2;
}
// 设置所有用户能使用的功能
message UpdateAllUsersFeaturesRequest {
repeated string featureCodes = 1;
bool overwrite = 2;
}
// 获取用户所有的功能列表
message FindUserFeaturesRequest {
int64 userId = 1;
}
message FindUserFeaturesResponse {
repeated UserFeature features = 1;
}
// 获取所有的功能定义
message FindAllUserFeatureDefinitionsRequest {
}
message FindAllUserFeatureDefinitionsResponse {
repeated UserFeature features = 1;
}
// 组合看板数据
message ComposeUserGlobalBoardRequest {
}
message ComposeUserGlobalBoardResponse {
int64 totalUsers = 1;
int64 countTodayUsers = 2;
int64 countWeeklyUsers = 3;
int64 countUserNodes = 4;
int64 countOfflineUserNodes = 5;
int64 countVerifyingUsers = 6;
repeated DailyStat dailyStats = 30;
repeated NodeValue cpuNodeValues = 31;
repeated NodeValue memoryNodeValues = 32;
repeated NodeValue loadNodeValues = 33;
repeated TrafficStat topTrafficStats = 34;
message DailyStat {
string day = 1;
int64 count = 2;
}
message TrafficStat {
int64 userId = 1;
string userName = 2;
int64 countRequests = 3;
int64 bytes = 4;
}
}
// 根据用户名检查是否需要输入OTP
message CheckUserOTPWithUsernameRequest {
string username = 1;
}
message CheckUserOTPWithUsernameResponse {
bool requireOTP = 1;
}
// 读取用户计费信息
message FindUserPriceInfoRequest {
int64 userId = 1;
}
message FindUserPriceInfoResponse {
string priceType = 1;
string pricePeriod = 2;
}
// 修改用户计费方式
message UpdateUserPriceTypeRequest {
int64 userId = 1;
string priceType = 2;
}
// 修改用户计费周期
message UpdateUserPricePeriodRequest {
int64 userId = 1;
string pricePeriod = 2;
}
// 检查用户服务可用状态
message CheckUserServersStateRequest {
int64 userId = 1;
}
message CheckUserServersStateResponse {
bool isEnabled = 1;
}
// 更新用户服务可用状态
message RenewUserServersStateRequest {
int64 userId = 1;
}
message RenewUserServersStateResponse {
bool isEnabled = 1;
}
// 检查邮箱是否已被验证
message CheckUserEmailRequest {
string email = 1; // 邮箱地址
}
message CheckUserEmailResponse {
bool exists = 1; // 是否已被使用
}
// 检查手机号码是否已被验证
message CheckUserMobileRequest {
string mobile = 1; // 手机号码
}
message CheckUserMobileResponse {
bool exists = 1; // 是否已被使用
}
// 根据用户名查询用户绑定的邮箱
message FindUserVerifiedEmailWithUsernameRequest {
string username = 1; // 用户名
}
message FindUserVerifiedEmailWithUsernameResponse {
string email = 1; // 已绑定邮箱地址
}