初步实现安装界面

This commit is contained in:
刘祥超
2020-10-13 20:05:13 +08:00
parent 6d268d0b73
commit 0e3330e1c6
76 changed files with 2550 additions and 88 deletions

View File

@@ -52,9 +52,10 @@ func (this *AdminService) CreateAdminLog(ctx context.Context, req *pb.CreateAdmi
return nil, err
}
err = models.SharedLogDAO.CreateAdminLog(userId, req.Level, req.Description, req.Action, req.Ip)
return &pb.CreateAdminLogResponse{
IsOk: err != nil,
}, err
if err != nil {
return nil, err
}
return &pb.CreateAdminLogResponse{}, nil
}
func (this *AdminService) CheckAdminExists(ctx context.Context, req *pb.CheckAdminExistsRequest) (*pb.CheckAdminExistsResponse, error) {
@@ -95,3 +96,28 @@ func (this *AdminService) FindAdminFullname(ctx context.Context, req *pb.FindAdm
Fullname: fullname,
}, nil
}
// 创建或修改管理员
func (this *AdminService) CreateOrUpdateAdmin(ctx context.Context, req *pb.CreateOrUpdateAdminRequest) (*pb.CreateOrUpdateAdminResponse, error) {
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin, rpcutils.UserTypeAPI)
if err != nil {
return nil, err
}
adminId, err := models.SharedAdminDAO.FindAdminIdWithUsername(req.Username)
if err != nil {
return nil, err
}
if adminId > 0 {
err = models.SharedAdminDAO.UpdateAdminPassword(adminId, req.Password)
if err != nil {
return nil, err
}
return &pb.CreateOrUpdateAdminResponse{AdminId: adminId}, nil
}
adminId, err = models.SharedAdminDAO.CreateAdmin(req.Username, req.Password, "管理员")
if err != nil {
return nil, err
}
return &pb.CreateOrUpdateAdminResponse{AdminId: adminId}, nil
}

View File

@@ -2,6 +2,7 @@ package services
import (
"context"
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
@@ -180,3 +181,13 @@ func (this *APINodeService) FindEnabledAPINode(ctx context.Context, req *pb.Find
}
return &pb.FindEnabledAPINodeResponse{Node: result}, nil
}
// 获取当前API节点的版本
func (this *APINodeService) FindCurrentAPINodeVersion(ctx context.Context, req *pb.FindCurrentAPINodeVersionRequest) (*pb.FindCurrentAPINodeVersionResponse, error) {
_, _, err := rpcutils.ValidateRequest(ctx)
if err != nil {
return nil, err
}
return &pb.FindCurrentAPINodeVersionResponse{Version: teaconst.Version}, nil
}

View File

@@ -28,6 +28,7 @@ const (
UserTypeStat = "stat"
UserTypeDNS = "dns"
UserTypeLog = "log"
UserTypeAPI = "api"
)
// 校验请求
@@ -51,23 +52,7 @@ func ValidateRequest(ctx context.Context, userTypes ...UserType) (userType UserT
}
nodeUserId := int64(0)
if apiToken == nil {
// 我们从节点中获取
node, err := models.SharedNodeDAO.FindEnabledNodeWithUniqueId(nodeId)
if err != nil {
return UserTypeNone, 0, err
}
if node == nil {
return UserTypeNone, 0, err
}
nodeUserId = int64(node.Id)
apiToken = &models.ApiToken{
Id: 0,
NodeId: nodeId,
Secret: node.Secret,
Role: "node",
State: 1,
}
return UserTypeNode, 0, errors.New("context: invalid api token")
}
tokens := md.Get("token")