mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 07:57:21 +08:00
feat: 设置页面初步完善及前端import lint
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package biz
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/TheTNB/panel/internal/http/request"
|
||||
@@ -34,6 +35,6 @@ type SettingRepo interface {
|
||||
Get(key SettingKey, defaultValue ...string) (string, error)
|
||||
Set(key SettingKey, value string) error
|
||||
Delete(key SettingKey) error
|
||||
GetPanelSetting() (*request.PanelSetting, error)
|
||||
GetPanelSetting(ctx context.Context) (*request.PanelSetting, error)
|
||||
UpdatePanelSetting(setting *request.PanelSetting) error
|
||||
}
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/spf13/cast"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"github.com/TheTNB/panel/internal/app"
|
||||
"github.com/TheTNB/panel/internal/biz"
|
||||
"github.com/TheTNB/panel/internal/http/request"
|
||||
"github.com/TheTNB/panel/pkg/io"
|
||||
)
|
||||
|
||||
type settingRepo struct{}
|
||||
@@ -50,16 +54,50 @@ func (r *settingRepo) Delete(key biz.SettingKey) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *settingRepo) GetPanelSetting() (*request.PanelSetting, error) {
|
||||
setting := new(biz.Setting)
|
||||
if err := app.Orm.Where("key = ?", biz.SettingKeyName).First(setting).Error; err != nil {
|
||||
func (r *settingRepo) GetPanelSetting(ctx context.Context) (*request.PanelSetting, error) {
|
||||
name := new(biz.Setting)
|
||||
if err := app.Orm.Where("key = ?", biz.SettingKeyName).First(name).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
websitePath := new(biz.Setting)
|
||||
if err := app.Orm.Where("key = ?", biz.SettingKeyWebsitePath).First(websitePath).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
backupPath := new(biz.Setting)
|
||||
if err := app.Orm.Where("key = ?", biz.SettingKeyBackupPath).First(backupPath).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// TODO fix
|
||||
userID := cast.ToUint(ctx.Value("user_id"))
|
||||
if userID == 0 {
|
||||
return nil, errors.New("获取用户 ID 失败")
|
||||
}
|
||||
user := new(biz.User)
|
||||
if err := app.Orm.Where("id = ?", userID).First(user).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
cert, err := io.Read(filepath.Join(app.Root, "panel/storage/cert.pem"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
key, err := io.Read(filepath.Join(app.Root, "panel/storage/cert.key"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &request.PanelSetting{
|
||||
Name: setting.Value,
|
||||
Name: name.Value,
|
||||
Locale: app.Conf.String("app.locale"),
|
||||
Entrance: app.Conf.String("http.entrance"),
|
||||
WebsitePath: websitePath.Value,
|
||||
BackupPath: backupPath.Value,
|
||||
Username: user.Username,
|
||||
Email: user.Email,
|
||||
Port: app.Conf.Int("http.port"),
|
||||
HTTPS: app.Conf.Bool("http.tls"),
|
||||
Cert: cert,
|
||||
Key: key,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -67,8 +105,14 @@ func (r *settingRepo) UpdatePanelSetting(setting *request.PanelSetting) error {
|
||||
if err := r.Set(biz.SettingKeyName, setting.Name); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := r.Set(biz.SettingKeyWebsitePath, setting.WebsitePath); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := r.Set(biz.SettingKeyBackupPath, setting.BackupPath); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// TODO fix
|
||||
// TODO fix other settings
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -2,14 +2,14 @@ package request
|
||||
|
||||
type PanelSetting struct {
|
||||
Name string `json:"name"`
|
||||
Language string `json:"language"`
|
||||
Locale string `json:"locale"`
|
||||
Entrance string `json:"entrance"`
|
||||
WebsitePath string `json:"website_path"`
|
||||
BackupPath string `json:"backup_path"`
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
Email string `json:"email"`
|
||||
Port string `json:"port"`
|
||||
Port int `json:"port"`
|
||||
HTTPS bool `json:"https"`
|
||||
Cert string `json:"cert"`
|
||||
Key string `json:"key"`
|
||||
|
||||
@@ -19,7 +19,7 @@ func NewSettingService() *SettingService {
|
||||
}
|
||||
|
||||
func (s *SettingService) Get(w http.ResponseWriter, r *http.Request) {
|
||||
setting, err := s.settingRepo.GetPanelSetting()
|
||||
setting, err := s.settingRepo.GetPanelSetting(r.Context())
|
||||
if err != nil {
|
||||
Error(w, http.StatusInternalServerError, err.Error())
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user