2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 07:57:21 +08:00

refactor: rename app to panel

This commit is contained in:
耗子
2024-09-18 19:08:45 +08:00
parent ef2ecfcc80
commit 2e26af435a
26 changed files with 173 additions and 173 deletions

View File

@@ -7,18 +7,18 @@ import (
"github.com/knadh/koanf/providers/file"
"github.com/knadh/koanf/v2"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/panel"
)
func initConf() {
app.Conf = koanf.New(".")
if err := app.Conf.Load(file.Provider("config/config.yml"), yaml.Parser()); err != nil {
panel.Conf = koanf.New(".")
if err := panel.Conf.Load(file.Provider("config/config.yml"), yaml.Parser()); err != nil {
panic(fmt.Sprintf("failed to load config: %v", err))
}
}
func initGlobal() {
app.Root = app.Conf.MustString("app.root")
app.Version = app.Conf.MustString("app.version")
app.Locale = app.Conf.MustString("app.locale")
panel.Root = panel.Conf.MustString("app.root")
panel.Version = panel.Conf.MustString("app.version")
panel.Locale = panel.Conf.MustString("app.locale")
}

View File

@@ -8,13 +8,13 @@ import (
"gorm.io/gorm"
"gorm.io/gorm/logger"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/migration"
"github.com/TheTNB/panel/internal/panel"
)
func initOrm() {
logLevel := logger.Error
if app.Conf.Bool("database.debug") {
if panel.Conf.Bool("database.debug") {
logLevel = logger.Info
}
// You can use any other database, like MySQL or PostgreSQL.
@@ -26,11 +26,11 @@ func initOrm() {
if err != nil {
panic(fmt.Sprintf("failed to connect database: %v", err))
}
app.Orm = db
panel.Orm = db
}
func runMigrate() {
migrator := gormigrate.New(app.Orm, &gormigrate.Options{
migrator := gormigrate.New(panel.Orm, &gormigrate.Options{
UseTransaction: true, // Note: MySQL not support DDL transaction
ValidateUnknownMigrations: true,
}, migration.Migrations)

View File

@@ -6,25 +6,25 @@ import (
"github.com/go-chi/chi/v5"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/http/middleware"
"github.com/TheTNB/panel/internal/panel"
"github.com/TheTNB/panel/internal/plugin"
"github.com/TheTNB/panel/internal/route"
)
func initHttp() {
app.Http = chi.NewRouter()
panel.Http = chi.NewRouter()
// add middleware
app.Http.Use(middleware.GlobalMiddleware()...)
panel.Http.Use(middleware.GlobalMiddleware()...)
// add route
route.Http(app.Http)
plugin.Boot(app.Http)
route.Http(panel.Http)
plugin.Boot(panel.Http)
server := &http.Server{
Addr: app.Conf.MustString("http.address"),
Handler: http.AllowQuerySemicolons(app.Http),
Addr: panel.Conf.MustString("http.address"),
Handler: http.AllowQuerySemicolons(panel.Http),
MaxHeaderBytes: 2048 << 20,
}
if err := server.ListenAndServe(); err != nil {

View File

@@ -1,11 +1,11 @@
package bootstrap
import (
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/panel"
"github.com/TheTNB/panel/pkg/queue"
)
func initQueue() {
app.Queue = queue.New()
go app.Queue.Run()
panel.Queue = queue.New()
go panel.Queue.Run()
}

View File

@@ -6,13 +6,13 @@ import (
"github.com/go-rat/gormstore"
"github.com/go-rat/sessions"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/panel"
)
func initSession() {
// initialize session manager
manager, err := sessions.NewManager(&sessions.ManagerOptions{
Key: app.Conf.String("app.key"),
Key: panel.Conf.String("app.key"),
Lifetime: 120,
GcInterval: 30,
DisableDefaultDriver: true,
@@ -22,10 +22,10 @@ func initSession() {
}
// extend gorm store driver
store := gormstore.New(app.Orm)
store := gormstore.New(panel.Orm)
if err = manager.Extend("default", store); err != nil {
panic(fmt.Sprintf("failed to extend session manager: %v", err))
}
app.Session = manager
panel.Session = manager
}

View File

@@ -8,7 +8,7 @@ import (
"github.com/go-playground/validator/v10"
"github.com/go-playground/validator/v10/translations/zh"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/panel"
)
func initValidator() {
@@ -21,6 +21,6 @@ func initValidator() {
panic(fmt.Sprintf("failed to register validator translations: %v", err))
}
app.Translator = &trans
app.Validator = validate
panel.Translator = &trans
panel.Validator = validate
}

View File

@@ -7,9 +7,9 @@ import (
"strings"
"time"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
"github.com/TheTNB/panel/pkg/acme"
"github.com/TheTNB/panel/pkg/io"
"github.com/TheTNB/panel/pkg/shell"
@@ -30,13 +30,13 @@ func NewCertRepo() biz.CertRepo {
func (r *certRepo) List(page, limit uint) ([]*biz.Cert, int64, error) {
var certs []*biz.Cert
var total int64
err := app.Orm.Model(&biz.Cert{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&certs).Error
err := panel.Orm.Model(&biz.Cert{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&certs).Error
return certs, total, err
}
func (r *certRepo) Get(id uint) (*biz.Cert, error) {
cert := new(biz.Cert)
err := app.Orm.Model(&biz.Cert{}).Where("id = ?", id).First(cert).Error
err := panel.Orm.Model(&biz.Cert{}).Where("id = ?", id).First(cert).Error
return cert, err
}
@@ -49,14 +49,14 @@ func (r *certRepo) Create(req *request.CertCreate) (*biz.Cert, error) {
Domains: req.Domains,
AutoRenew: req.AutoRenew,
}
if err := app.Orm.Create(cert).Error; err != nil {
if err := panel.Orm.Create(cert).Error; err != nil {
return nil, err
}
return cert, nil
}
func (r *certRepo) Update(req *request.CertUpdate) error {
return app.Orm.Model(&biz.Cert{}).Where("id = ?", req.ID).Updates(&biz.Cert{
return panel.Orm.Model(&biz.Cert{}).Where("id = ?", req.ID).Updates(&biz.Cert{
AccountID: req.AccountID,
WebsiteID: req.WebsiteID,
DNSID: req.DNSID,
@@ -67,7 +67,7 @@ func (r *certRepo) Update(req *request.CertUpdate) error {
}
func (r *certRepo) Delete(id uint) error {
return app.Orm.Model(&biz.Cert{}).Where("id = ?", id).Delete(&biz.Cert{}).Error
return panel.Orm.Model(&biz.Cert{}).Where("id = ?", id).Delete(&biz.Cert{}).Error
}
func (r *certRepo) ObtainAuto(id uint) (*acme.Certificate, error) {
@@ -92,7 +92,7 @@ func (r *certRepo) ObtainAuto(id uint) (*acme.Certificate, error) {
return nil, errors.New("通配符域名无法使用 HTTP 验证")
}
}
conf := fmt.Sprintf("%s/server/vhost/acme/%s.conf", app.Root, cert.Website.Name)
conf := fmt.Sprintf("%s/server/vhost/acme/%s.conf", panel.Root, cert.Website.Name)
client.UseHTTP(conf, cert.Website.Path)
}
}
@@ -105,7 +105,7 @@ func (r *certRepo) ObtainAuto(id uint) (*acme.Certificate, error) {
cert.CertURL = ssl.URL
cert.Cert = string(ssl.ChainPEM)
cert.Key = string(ssl.PrivateKey)
if err = app.Orm.Save(cert).Error; err != nil {
if err = panel.Orm.Save(cert).Error; err != nil {
return nil, err
}
@@ -134,7 +134,7 @@ func (r *certRepo) ObtainManual(id uint) (*acme.Certificate, error) {
cert.CertURL = ssl.URL
cert.Cert = string(ssl.ChainPEM)
cert.Key = string(ssl.PrivateKey)
if err = app.Orm.Save(cert).Error; err != nil {
if err = panel.Orm.Save(cert).Error; err != nil {
return nil, err
}
@@ -184,7 +184,7 @@ func (r *certRepo) Renew(id uint) (*acme.Certificate, error) {
cert.CertURL = ssl.URL
cert.Cert = string(ssl.ChainPEM)
cert.Key = string(ssl.PrivateKey)
if err = app.Orm.Save(cert).Error; err != nil {
if err = panel.Orm.Save(cert).Error; err != nil {
return nil, err
}
@@ -236,10 +236,10 @@ func (r *certRepo) Deploy(ID, WebsiteID uint) error {
return err
}
if err = io.Write(fmt.Sprintf("%s/server/vhost/ssl/%s.pem", app.Root, website.Name), cert.Cert, 0644); err != nil {
if err = io.Write(fmt.Sprintf("%s/server/vhost/ssl/%s.pem", panel.Root, website.Name), cert.Cert, 0644); err != nil {
return err
}
if err = io.Write(fmt.Sprintf("%s/server/vhost/ssl/%s.key", app.Root, website.Name), cert.Key, 0644); err != nil {
if err = io.Write(fmt.Sprintf("%s/server/vhost/ssl/%s.key", panel.Root, website.Name), cert.Key, 0644); err != nil {
return err
}
if err = systemctl.Reload("openresty"); err != nil {

View File

@@ -7,9 +7,9 @@ import (
"github.com/go-resty/resty/v2"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
"github.com/TheTNB/panel/pkg/acme"
"github.com/TheTNB/panel/pkg/cert"
)
@@ -23,13 +23,13 @@ func NewCertAccountRepo() biz.CertAccountRepo {
func (r certAccountRepo) List(page, limit uint) ([]*biz.CertAccount, int64, error) {
var accounts []*biz.CertAccount
var total int64
err := app.Orm.Model(&biz.CertAccount{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&accounts).Error
err := panel.Orm.Model(&biz.CertAccount{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&accounts).Error
return accounts, total, err
}
func (r certAccountRepo) Get(id uint) (*biz.CertAccount, error) {
account := new(biz.CertAccount)
err := app.Orm.Model(&biz.CertAccount{}).Where("id = ?", id).First(account).Error
err := panel.Orm.Model(&biz.CertAccount{}).Where("id = ?", id).First(account).Error
return account, err
}
@@ -72,7 +72,7 @@ func (r certAccountRepo) Create(req *request.CertAccountCreate) (*biz.CertAccoun
}
account.PrivateKey = string(privateKey)
if err = app.Orm.Create(account).Error; err != nil {
if err = panel.Orm.Create(account).Error; err != nil {
return nil, err
}
@@ -121,11 +121,11 @@ func (r certAccountRepo) Update(req *request.CertAccountUpdate) error {
}
account.PrivateKey = string(privateKey)
return app.Orm.Save(account).Error
return panel.Orm.Save(account).Error
}
func (r certAccountRepo) Delete(id uint) error {
return app.Orm.Model(&biz.CertAccount{}).Where("id = ?", id).Delete(&biz.CertAccount{}).Error
return panel.Orm.Model(&biz.CertAccount{}).Where("id = ?", id).Delete(&biz.CertAccount{}).Error
}
// getZeroSSLEAB 获取 ZeroSSL EAB

View File

@@ -1,9 +1,9 @@
package data
import (
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
)
type certDNSRepo struct{}
@@ -15,13 +15,13 @@ func NewCertDNSRepo() biz.CertDNSRepo {
func (r certDNSRepo) List(page, limit uint) ([]*biz.CertDNS, int64, error) {
var certDNS []*biz.CertDNS
var total int64
err := app.Orm.Model(&biz.CertDNS{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&certDNS).Error
err := panel.Orm.Model(&biz.CertDNS{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&certDNS).Error
return certDNS, total, err
}
func (r certDNSRepo) Get(id uint) (*biz.CertDNS, error) {
certDNS := new(biz.CertDNS)
err := app.Orm.Model(&biz.CertDNS{}).Where("id = ?", id).First(certDNS).Error
err := panel.Orm.Model(&biz.CertDNS{}).Where("id = ?", id).First(certDNS).Error
return certDNS, err
}
@@ -32,7 +32,7 @@ func (r certDNSRepo) Create(req *request.CertDNSCreate) (*biz.CertDNS, error) {
Data: req.Data,
}
if err := app.Orm.Create(certDNS).Error; err != nil {
if err := panel.Orm.Create(certDNS).Error; err != nil {
return nil, err
}
@@ -49,9 +49,9 @@ func (r certDNSRepo) Update(req *request.CertDNSUpdate) error {
cert.Type = req.Type
cert.Data = req.Data
return app.Orm.Save(cert).Error
return panel.Orm.Save(cert).Error
}
func (r certDNSRepo) Delete(id uint) error {
return app.Orm.Model(&biz.CertDNS{}).Where("id = ?", id).Delete(&biz.CertDNS{}).Error
return panel.Orm.Model(&biz.CertDNS{}).Where("id = ?", id).Delete(&biz.CertDNS{}).Error
}

View File

@@ -9,9 +9,9 @@ import (
"github.com/golang-module/carbon/v2"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
"github.com/TheTNB/panel/pkg/io"
"github.com/TheTNB/panel/pkg/os"
"github.com/TheTNB/panel/pkg/shell"
@@ -31,7 +31,7 @@ func NewCronRepo() biz.CronRepo {
func (r *cronRepo) Count() (int64, error) {
var count int64
if err := app.Orm.Model(&biz.Cron{}).Count(&count).Error; err != nil {
if err := panel.Orm.Model(&biz.Cron{}).Count(&count).Error; err != nil {
return 0, err
}
@@ -41,13 +41,13 @@ func (r *cronRepo) Count() (int64, error) {
func (r *cronRepo) List(page, limit uint) ([]*biz.Cron, int64, error) {
var cron []*biz.Cron
var total int64
err := app.Orm.Model(&biz.Cert{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&cron).Error
err := panel.Orm.Model(&biz.Cert{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&cron).Error
return cron, total, err
}
func (r *cronRepo) Get(id uint) (*biz.Cron, error) {
cron := new(biz.Cron)
if err := app.Orm.Where("id = ?", id).First(cron).Error; err != nil {
if err := panel.Orm.Where("id = ?", id).First(cron).Error; err != nil {
return nil, err
}
@@ -96,8 +96,8 @@ panel cutoff ${name} ${save} 2>&1
`, req.Target, req.Save)
}
shellDir := fmt.Sprintf("%s/server/cron/", app.Root)
shellLogDir := fmt.Sprintf("%s/server/cron/logs/", app.Root)
shellDir := fmt.Sprintf("%s/server/cron/", panel.Root)
shellLogDir := fmt.Sprintf("%s/server/cron/logs/", panel.Root)
if !io.Exists(shellDir) {
return errors.New("计划任务目录不存在")
}
@@ -120,7 +120,7 @@ panel cutoff ${name} ${save} 2>&1
cron.Shell = shellDir + shellFile + ".sh"
cron.Log = shellLogDir + shellFile + ".log"
if err := app.Orm.Create(cron).Error; err != nil {
if err := panel.Orm.Create(cron).Error; err != nil {
return err
}
if err := r.addToSystem(cron); err != nil {
@@ -146,7 +146,7 @@ func (r *cronRepo) Update(req *request.CronUpdate) error {
cron.Time = req.Time
cron.Name = req.Name
if err = app.Orm.Save(cron).Error; err != nil {
if err = panel.Orm.Save(cron).Error; err != nil {
return err
}
@@ -182,7 +182,7 @@ func (r *cronRepo) Delete(id uint) error {
return err
}
return app.Orm.Delete(cron).Error
return panel.Orm.Delete(cron).Error
}
func (r *cronRepo) Status(id uint, status bool) error {
@@ -200,7 +200,7 @@ func (r *cronRepo) Status(id uint, status bool) error {
cron.Status = status
return app.Orm.Save(cron).Error
return panel.Orm.Save(cron).Error
}
func (r *cronRepo) Log(id uint) (string, error) {

View File

@@ -6,9 +6,9 @@ import (
"github.com/golang-module/carbon/v2"
"github.com/spf13/cast"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
)
type monitorRepo struct {
@@ -50,12 +50,12 @@ func (r monitorRepo) UpdateSetting(setting *request.MonitorSetting) error {
}
func (r monitorRepo) Clear() error {
return app.Orm.Delete(&biz.Monitor{}).Error
return panel.Orm.Delete(&biz.Monitor{}).Error
}
func (r monitorRepo) List(start, end carbon.Carbon) ([]*biz.Monitor, error) {
var monitors []*biz.Monitor
if err := app.Orm.Where("created_at BETWEEN ? AND ?", start, end).Find(&monitors).Error; err != nil {
if err := panel.Orm.Where("created_at BETWEEN ? AND ?", start, end).Find(&monitors).Error; err != nil {
return nil, err
}

View File

@@ -4,9 +4,9 @@ import (
"errors"
"fmt"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/job"
"github.com/TheTNB/panel/internal/panel"
"github.com/TheTNB/panel/pkg/pluginloader"
"github.com/TheTNB/panel/pkg/types"
)
@@ -27,7 +27,7 @@ func (r *pluginRepo) All() []*types.Plugin {
func (r *pluginRepo) Installed() ([]*biz.Plugin, error) {
var plugins []*biz.Plugin
if err := app.Orm.Find(&plugins).Error; err != nil {
if err := panel.Orm.Find(&plugins).Error; err != nil {
return nil, err
}
@@ -41,7 +41,7 @@ func (r *pluginRepo) Get(slug string) (*types.Plugin, error) {
func (r *pluginRepo) GetInstalled(slug string) (*biz.Plugin, error) {
plugin := new(biz.Plugin)
if err := app.Orm.Where("slug = ?", slug).First(plugin).Error; err != nil {
if err := panel.Orm.Where("slug = ?", slug).First(plugin).Error; err != nil {
return nil, err
}
@@ -50,7 +50,7 @@ func (r *pluginRepo) GetInstalled(slug string) (*biz.Plugin, error) {
func (r *pluginRepo) GetInstalledAll(cond ...string) ([]*biz.Plugin, error) {
var plugins []*biz.Plugin
if err := app.Orm.Where(cond).Find(&plugins).Error; err != nil {
if err := panel.Orm.Where(cond).Find(&plugins).Error; err != nil {
return nil, err
}
@@ -59,7 +59,7 @@ func (r *pluginRepo) GetInstalledAll(cond ...string) ([]*biz.Plugin, error) {
func (r *pluginRepo) IsInstalled(cond ...string) (bool, error) {
var count int64
if err := app.Orm.Model(&biz.Plugin{}).Where(cond).Count(&count).Error; err != nil {
if err := panel.Orm.Model(&biz.Plugin{}).Where(cond).Count(&count).Error; err != nil {
return false, err
}
@@ -106,10 +106,10 @@ func (r *pluginRepo) Install(slug string) error {
task.Shell = fmt.Sprintf("%s >> /tmp/%s.log 2>&1", plugin.Install, plugin.Slug)
task.Log = "/tmp/" + plugin.Slug + ".log"
if err = app.Orm.Create(task).Error; err != nil {
if err = panel.Orm.Create(task).Error; err != nil {
return err
}
err = app.Queue.Push(job.NewProcessTask(r.taskRepo), []any{
err = panel.Queue.Push(job.NewProcessTask(r.taskRepo), []any{
task.ID,
})
@@ -155,10 +155,10 @@ func (r *pluginRepo) Uninstall(slug string) error {
task.Shell = fmt.Sprintf("%s >> /tmp/%s.log 2>&1", plugin.Uninstall, plugin.Slug)
task.Log = "/tmp/" + plugin.Slug + ".log"
if err = app.Orm.Create(task).Error; err != nil {
if err = panel.Orm.Create(task).Error; err != nil {
return err
}
err = app.Queue.Push(job.NewProcessTask(r.taskRepo), []any{
err = panel.Queue.Push(job.NewProcessTask(r.taskRepo), []any{
task.ID,
})
@@ -204,10 +204,10 @@ func (r *pluginRepo) Update(slug string) error {
task.Shell = fmt.Sprintf("%s >> /tmp/%s.log 2>&1", plugin.Update, plugin.Slug)
task.Log = "/tmp/" + plugin.Slug + ".log"
if err = app.Orm.Create(task).Error; err != nil {
if err = panel.Orm.Create(task).Error; err != nil {
return err
}
err = app.Queue.Push(job.NewProcessTask(r.taskRepo), []any{
err = panel.Queue.Push(job.NewProcessTask(r.taskRepo), []any{
task.ID,
})
@@ -222,5 +222,5 @@ func (r *pluginRepo) UpdateShow(slug string, show bool) error {
plugin.Show = show
return app.Orm.Save(plugin).Error
return panel.Orm.Save(plugin).Error
}

View File

@@ -1,9 +1,9 @@
package data
import (
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
)
type settingRepo struct{}
@@ -14,7 +14,7 @@ func NewSettingRepo() biz.SettingRepo {
func (r *settingRepo) Get(key biz.SettingKey, defaultValue ...string) (string, error) {
setting := new(biz.Setting)
if err := app.Orm.Where("key = ?", key).First(setting).Error; err != nil {
if err := panel.Orm.Where("key = ?", key).First(setting).Error; err != nil {
return "", err
}
@@ -27,17 +27,17 @@ func (r *settingRepo) Get(key biz.SettingKey, defaultValue ...string) (string, e
func (r *settingRepo) Set(key biz.SettingKey, value string) error {
setting := new(biz.Setting)
if err := app.Orm.Where("key = ?", key).First(setting).Error; err != nil {
if err := panel.Orm.Where("key = ?", key).First(setting).Error; err != nil {
return err
}
setting.Value = value
return app.Orm.Save(setting).Error
return panel.Orm.Save(setting).Error
}
func (r *settingRepo) Delete(key biz.SettingKey) error {
setting := new(biz.Setting)
if err := app.Orm.Where("key = ?", key).Delete(setting).Error; err != nil {
if err := panel.Orm.Where("key = ?", key).Delete(setting).Error; err != nil {
return err
}
@@ -46,7 +46,7 @@ func (r *settingRepo) Delete(key biz.SettingKey) error {
func (r *settingRepo) GetPanelSetting() (*request.PanelSetting, error) {
setting := new(biz.Setting)
if err := app.Orm.Where("key = ?", biz.SettingKeyName).First(setting).Error; err != nil {
if err := panel.Orm.Where("key = ?", biz.SettingKeyName).First(setting).Error; err != nil {
return nil, err
}

View File

@@ -1,8 +1,8 @@
package data
import (
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/panel"
)
type taskRepo struct{}
@@ -13,27 +13,27 @@ func NewTaskRepo() biz.TaskRepo {
func (r *taskRepo) HasRunningTask() bool {
var count int64
app.Orm.Model(&biz.Task{}).Where("status = ?", biz.TaskStatusRunning).Or("status = ?", biz.TaskStatusWaiting).Count(&count)
panel.Orm.Model(&biz.Task{}).Where("status = ?", biz.TaskStatusRunning).Or("status = ?", biz.TaskStatusWaiting).Count(&count)
return count > 0
}
func (r *taskRepo) List(page, limit uint) ([]*biz.Task, int64, error) {
var tasks []*biz.Task
var total int64
err := app.Orm.Model(&biz.Task{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&tasks).Error
err := panel.Orm.Model(&biz.Task{}).Order("id desc").Count(&total).Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&tasks).Error
return tasks, total, err
}
func (r *taskRepo) Get(id uint) (*biz.Task, error) {
task := new(biz.Task)
err := app.Orm.Model(&biz.Task{}).Where("id = ?", id).First(task).Error
err := panel.Orm.Model(&biz.Task{}).Where("id = ?", id).First(task).Error
return task, err
}
func (r *taskRepo) Delete(id uint) error {
return app.Orm.Model(&biz.Task{}).Where("id = ?", id).Delete(&biz.Task{}).Error
return panel.Orm.Model(&biz.Task{}).Where("id = ?", id).Delete(&biz.Task{}).Error
}
func (r *taskRepo) UpdateStatus(id uint, status biz.TaskStatus) error {
return app.Orm.Model(&biz.Task{}).Where("id = ?", id).Update("status", status).Error
return panel.Orm.Model(&biz.Task{}).Where("id = ?", id).Update("status", status).Error
}

View File

@@ -6,8 +6,8 @@ import (
"github.com/go-rat/utils/hash"
"gorm.io/gorm"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/panel"
)
type userRepo struct {
@@ -22,7 +22,7 @@ func NewUserRepo() biz.UserRepo {
func (r *userRepo) CheckPassword(username, password string) (*biz.User, error) {
user := new(biz.User)
if err := app.Orm.Where("username = ?", username).First(user).Error; err != nil {
if err := panel.Orm.Where("username = ?", username).First(user).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, errors.New("用户名或密码错误")
} else {
@@ -39,7 +39,7 @@ func (r *userRepo) CheckPassword(username, password string) (*biz.User, error) {
func (r *userRepo) Get(id uint) (*biz.User, error) {
user := new(biz.User)
if err := app.Orm.First(user, id).Error; err != nil {
if err := panel.Orm.First(user, id).Error; err != nil {
return nil, err
}
@@ -47,5 +47,5 @@ func (r *userRepo) Get(id uint) (*biz.User, error) {
}
func (r *userRepo) Save(user *biz.User) error {
return app.Orm.Save(user).Error
return panel.Orm.Save(user).Error
}

View File

@@ -11,10 +11,10 @@ import (
"github.com/spf13/cast"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/embed"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
"github.com/TheTNB/panel/pkg/cert"
"github.com/TheTNB/panel/pkg/db"
"github.com/TheTNB/panel/pkg/io"
@@ -35,10 +35,10 @@ func NewWebsiteRepo() biz.WebsiteRepo {
}
func (r *websiteRepo) UpdateDefaultConfig(req *request.WebsiteDefaultConfig) error {
if err := io.Write(filepath.Join(app.Root, "server/openresty/html/index.html"), req.Index, 0644); err != nil {
if err := io.Write(filepath.Join(panel.Root, "server/openresty/html/index.html"), req.Index, 0644); err != nil {
return err
}
if err := io.Write(filepath.Join(app.Root, "server/openresty/html/stop.html"), req.Stop, 0644); err != nil {
if err := io.Write(filepath.Join(panel.Root, "server/openresty/html/stop.html"), req.Stop, 0644); err != nil {
return err
}
@@ -47,7 +47,7 @@ func (r *websiteRepo) UpdateDefaultConfig(req *request.WebsiteDefaultConfig) err
func (r *websiteRepo) Count() (int64, error) {
var count int64
if err := app.Orm.Model(&biz.Website{}).Count(&count).Error; err != nil {
if err := panel.Orm.Model(&biz.Website{}).Count(&count).Error; err != nil {
return 0, err
}
@@ -56,11 +56,11 @@ func (r *websiteRepo) Count() (int64, error) {
func (r *websiteRepo) Get(id uint) (*types.WebsiteSetting, error) {
website := new(biz.Website)
if err := app.Orm.Where("id", id).First(website).Error; err != nil {
if err := panel.Orm.Where("id", id).First(website).Error; err != nil {
return nil, err
}
config, err := io.Read(filepath.Join(app.Root, "server/vhost", website.Name+".conf"))
config, err := io.Read(filepath.Join(panel.Root, "server/vhost", website.Name+".conf"))
if err != nil {
return nil, err
}
@@ -120,9 +120,9 @@ func (r *websiteRepo) Get(id uint) (*types.WebsiteSetting, error) {
}
}
crt, _ := io.Read(filepath.Join(app.Root, "server/vhost/ssl", website.Name+".pem"))
crt, _ := io.Read(filepath.Join(panel.Root, "server/vhost/ssl", website.Name+".pem"))
setting.SSLCertificate = crt
key, _ := io.Read(filepath.Join(app.Root, "server/vhost/ssl", website.Name+".key"))
key, _ := io.Read(filepath.Join(panel.Root, "server/vhost/ssl", website.Name+".key"))
setting.SSLCertificateKey = key
if setting.SSL {
ssl := str.Cut(config, "# ssl标记位开始", "# ssl标记位结束")
@@ -155,9 +155,9 @@ func (r *websiteRepo) Get(id uint) (*types.WebsiteSetting, error) {
setting.WafCache = match[1]
}
rewrite, _ := io.Read(filepath.Join(app.Root, "server/vhost/rewrite", website.Name+".conf"))
rewrite, _ := io.Read(filepath.Join(panel.Root, "server/vhost/rewrite", website.Name+".conf"))
setting.Rewrite = rewrite
log, _ := shell.Execf(`tail -n 100 '%s/wwwlogs/%s.log'`, app.Root, website.Name)
log, _ := shell.Execf(`tail -n 100 '%s/wwwlogs/%s.log'`, panel.Root, website.Name)
setting.Log = log
return setting, err
@@ -165,7 +165,7 @@ func (r *websiteRepo) Get(id uint) (*types.WebsiteSetting, error) {
func (r *websiteRepo) GetByName(name string) (*types.WebsiteSetting, error) {
website := new(biz.Website)
if err := app.Orm.Where("name", name).First(website).Error; err != nil {
if err := panel.Orm.Where("name", name).First(website).Error; err != nil {
return nil, err
}
@@ -177,11 +177,11 @@ func (r *websiteRepo) List(page, limit uint) ([]*biz.Website, int64, error) {
var websites []*biz.Website
var total int64
if err := app.Orm.Model(&biz.Website{}).Count(&total).Error; err != nil {
if err := panel.Orm.Model(&biz.Website{}).Count(&total).Error; err != nil {
return nil, 0, err
}
if err := app.Orm.Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&websites).Error; err != nil {
if err := panel.Orm.Offset(int((page - 1) * limit)).Limit(int(limit)).Find(&websites).Error; err != nil {
return nil, 0, err
}
@@ -196,7 +196,7 @@ func (r *websiteRepo) Create(req *request.WebsiteCreate) (*biz.Website, error) {
PHP: cast.ToInt(req.PHP),
SSL: false,
}
if err := app.Orm.Create(w).Error; err != nil {
if err := panel.Orm.Create(w).Error; err != nil {
return nil, err
}
@@ -302,21 +302,21 @@ server
access_log %s/wwwlogs/%s.log;
error_log %s/wwwlogs/%s.log;
}
`, portList, domainList, req.Path, req.PHP, app.Root, app.Root, req.Name, app.Root, req.Name, app.Root, req.Name, app.Root, req.Name)
`, portList, domainList, req.Path, req.PHP, panel.Root, panel.Root, req.Name, panel.Root, req.Name, panel.Root, req.Name, panel.Root, req.Name)
if err = io.Write(filepath.Join(app.Root, "server/vhost", req.Name+".conf"), nginxConf, 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost", req.Name+".conf"), nginxConf, 0644); err != nil {
return nil, err
}
if err = io.Write(filepath.Join(app.Root, "server/vhost/rewrite", req.Name+".conf"), "", 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost/rewrite", req.Name+".conf"), "", 0644); err != nil {
return nil, err
}
if err = io.Write(filepath.Join(app.Root, "server/vhost/acme", req.Name+".conf"), "", 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost/acme", req.Name+".conf"), "", 0644); err != nil {
return nil, err
}
if err = io.Write(filepath.Join(app.Root, "server/vhost/ssl", req.Name+".pem"), "", 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost/ssl", req.Name+".pem"), "", 0644); err != nil {
return nil, err
}
if err = io.Write(filepath.Join(app.Root, "server/vhost/ssl", req.Name+".key"), "", 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost/ssl", req.Name+".key"), "", 0644); err != nil {
return nil, err
}
@@ -354,7 +354,7 @@ server
_, _ = shell.Execf(`echo "ALTER DATABASE '%s' OWNER TO '%s';" | su - postgres -c "psql"`, req.DBName, req.DBUser)
_, _ = shell.Execf(`echo "GRANT ALL PRIVILEGES ON DATABASE '%s' TO '%s';" | su - postgres -c "psql"`, req.DBName, req.DBUser)
userConfig := "host " + req.DBName + " " + req.DBUser + " 127.0.0.1/32 scram-sha-256"
_, _ = shell.Execf(`echo "`+userConfig+`" >> %s/server/postgresql/data/pg_hba.conf`, app.Root)
_, _ = shell.Execf(`echo "`+userConfig+`" >> %s/server/postgresql/data/pg_hba.conf`, panel.Root)
_ = systemctl.Reload("postgresql")
}
@@ -363,7 +363,7 @@ server
func (r *websiteRepo) Update(req *request.WebsiteUpdate) error {
website := new(biz.Website)
if err := app.Orm.Where("id", req.ID).First(website).Error; err != nil {
if err := panel.Orm.Where("id", req.ID).First(website).Error; err != nil {
return err
}
@@ -372,12 +372,12 @@ func (r *websiteRepo) Update(req *request.WebsiteUpdate) error {
}
// 原文
raw, err := io.Read(filepath.Join(app.Root, "server/vhost", website.Name+".conf"))
raw, err := io.Read(filepath.Join(panel.Root, "server/vhost", website.Name+".conf"))
if err != nil {
return err
}
if strings.TrimSpace(raw) != strings.TrimSpace(req.Raw) {
if err = io.Write(filepath.Join(app.Root, "server/vhost", website.Name+".conf"), req.Raw, 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost", website.Name+".conf"), req.Raw, 0644); err != nil {
return err
}
if err = systemctl.Reload("openresty"); err != nil {
@@ -490,7 +490,7 @@ func (r *websiteRepo) Update(req *request.WebsiteUpdate) error {
waf_mode %s;
waf_cc_deny %s;
waf_cache %s;
`, wafStr, app.Root, req.WafMode, req.WafCcDeny, req.WafCache)
`, wafStr, panel.Root, req.WafMode, req.WafCcDeny, req.WafCache)
wafConfigOld := str.Cut(raw, "# waf标记位开始", "# waf标记位结束")
if len(strings.TrimSpace(wafConfigOld)) != 0 {
raw = strings.Replace(raw, wafConfigOld, "", -1)
@@ -498,10 +498,10 @@ func (r *websiteRepo) Update(req *request.WebsiteUpdate) error {
raw = strings.Replace(raw, "# waf标记位开始", wafConfig, -1)
// SSL
if err = io.Write(filepath.Join(app.Root, "server/vhost/ssl", website.Name+".pem"), req.SSLCertificate, 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost/ssl", website.Name+".pem"), req.SSLCertificate, 0644); err != nil {
return err
}
if err = io.Write(filepath.Join(app.Root, "server/vhost/ssl", website.Name+".key"), req.SSLCertificateKey, 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost/ssl", website.Name+".key"), req.SSLCertificateKey, 0644); err != nil {
return err
}
website.SSL = req.SSL
@@ -521,7 +521,7 @@ func (r *websiteRepo) Update(req *request.WebsiteUpdate) error {
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_early_data on;
`, app.Root, website.Name, app.Root, website.Name)
`, panel.Root, website.Name, panel.Root, website.Name)
if req.HTTPRedirect {
sslConfig += `# http重定向标记位开始
if ($server_port !~ 443){
@@ -567,14 +567,14 @@ func (r *websiteRepo) Update(req *request.WebsiteUpdate) error {
}
}
if err = app.Orm.Save(website).Error; err != nil {
if err = panel.Orm.Save(website).Error; err != nil {
return err
}
if err = io.Write(filepath.Join(app.Root, "server/vhost", website.Name+".conf"), raw, 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost", website.Name+".conf"), raw, 0644); err != nil {
return err
}
if err = io.Write(filepath.Join(app.Root, "server/vhost/rewrite", website.Name+".conf"), req.Rewrite, 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost/rewrite", website.Name+".conf"), req.Rewrite, 0644); err != nil {
return err
}
@@ -588,7 +588,7 @@ func (r *websiteRepo) Update(req *request.WebsiteUpdate) error {
func (r *websiteRepo) Delete(req *request.WebsiteDelete) error {
website := new(biz.Website)
if err := app.Orm.Preload("Cert").Where("id", req.ID).First(website).Error; err != nil {
if err := panel.Orm.Preload("Cert").Where("id", req.ID).First(website).Error; err != nil {
return err
}
@@ -596,15 +596,15 @@ func (r *websiteRepo) Delete(req *request.WebsiteDelete) error {
return errors.New("网站" + website.Name + "已绑定SSL证书请先删除证书")
}
if err := app.Orm.Delete(website).Error; err != nil {
if err := panel.Orm.Delete(website).Error; err != nil {
return err
}
_ = io.Remove(filepath.Join(app.Root, "server/vhost", website.Name+".conf"))
_ = io.Remove(filepath.Join(app.Root, "server/vhost/rewrite", website.Name+".conf"))
_ = io.Remove(filepath.Join(app.Root, "server/vhost/acme", website.Name+".conf"))
_ = io.Remove(filepath.Join(app.Root, "server/vhost/ssl", website.Name+".pem"))
_ = io.Remove(filepath.Join(app.Root, "server/vhost/ssl", website.Name+".key"))
_ = io.Remove(filepath.Join(panel.Root, "server/vhost", website.Name+".conf"))
_ = io.Remove(filepath.Join(panel.Root, "server/vhost/rewrite", website.Name+".conf"))
_ = io.Remove(filepath.Join(panel.Root, "server/vhost/acme", website.Name+".conf"))
_ = io.Remove(filepath.Join(panel.Root, "server/vhost/ssl", website.Name+".pem"))
_ = io.Remove(filepath.Join(panel.Root, "server/vhost/ssl", website.Name+".key"))
if req.Path {
_ = io.Remove(website.Path)
@@ -634,33 +634,33 @@ func (r *websiteRepo) Delete(req *request.WebsiteDelete) error {
func (r *websiteRepo) ClearLog(id uint) error {
website := new(biz.Website)
if err := app.Orm.Where("id", id).First(website).Error; err != nil {
if err := panel.Orm.Where("id", id).First(website).Error; err != nil {
return err
}
_, err := shell.Execf(`echo "" > %s/wwwlogs/%s.log`, app.Root, website.Name)
_, err := shell.Execf(`echo "" > %s/wwwlogs/%s.log`, panel.Root, website.Name)
return err
}
func (r *websiteRepo) UpdateRemark(id uint, remark string) error {
website := new(biz.Website)
if err := app.Orm.Where("id", id).First(website).Error; err != nil {
if err := panel.Orm.Where("id", id).First(website).Error; err != nil {
return err
}
website.Remark = remark
return app.Orm.Save(website).Error
return panel.Orm.Save(website).Error
}
func (r *websiteRepo) ResetConfig(id uint) error {
website := new(biz.Website)
if err := app.Orm.Where("id", id).First(&website).Error; err != nil {
if err := panel.Orm.Where("id", id).First(&website).Error; err != nil {
return err
}
website.Status = true
website.SSL = false
if err := app.Orm.Save(website).Error; err != nil {
if err := panel.Orm.Save(website).Error; err != nil {
return err
}
@@ -724,14 +724,14 @@ server
error_log %s/wwwlogs/%s.log;
}
`, website.Path, website.PHP, app.Root, app.Root, website.Name, app.Root, website.Name, app.Root, website.Name, app.Root, website.Name)
if err := io.Write(filepath.Join(app.Root, "server/vhost", website.Name+".conf"), raw, 0644); err != nil {
`, website.Path, website.PHP, panel.Root, panel.Root, website.Name, panel.Root, website.Name, panel.Root, website.Name, panel.Root, website.Name)
if err := io.Write(filepath.Join(panel.Root, "server/vhost", website.Name+".conf"), raw, 0644); err != nil {
return nil
}
if err := io.Write(filepath.Join(app.Root, "server/vhost/rewrite", website.Name+".conf"), "", 0644); err != nil {
if err := io.Write(filepath.Join(panel.Root, "server/vhost/rewrite", website.Name+".conf"), "", 0644); err != nil {
return nil
}
if err := io.Write(filepath.Join(app.Root, "server/vhost/acme", website.Name+".conf"), "", 0644); err != nil {
if err := io.Write(filepath.Join(panel.Root, "server/vhost/acme", website.Name+".conf"), "", 0644); err != nil {
return nil
}
if err := systemctl.Reload("openresty"); err != nil {
@@ -744,16 +744,16 @@ server
func (r *websiteRepo) UpdateStatus(id uint, status bool) error {
website := new(biz.Website)
if err := app.Orm.Where("id", id).First(&website).Error; err != nil {
if err := panel.Orm.Where("id", id).First(&website).Error; err != nil {
return err
}
website.Status = status
if err := app.Orm.Save(website).Error; err != nil {
if err := panel.Orm.Save(website).Error; err != nil {
return err
}
raw, err := io.Read(filepath.Join(app.Root, "server/vhost", website.Name+".conf"))
raw, err := io.Read(filepath.Join(panel.Root, "server/vhost", website.Name+".conf"))
if err != nil {
return err
}
@@ -766,7 +766,7 @@ func (r *websiteRepo) UpdateStatus(id uint, status bool) error {
root := regexp.MustCompile(`# root\s+(.+);`).FindStringSubmatch(rootConfig)
raw = strings.ReplaceAll(raw, rootConfig, fmt.Sprintf(" root %s;\n ", root[1]))
} else {
raw = strings.ReplaceAll(raw, rootConfig, fmt.Sprintf(" root %s/server/openresty/html;\n # root %s;\n ", app.Root, match[1]))
raw = strings.ReplaceAll(raw, rootConfig, fmt.Sprintf(" root %s/server/openresty/html;\n # root %s;\n ", panel.Root, match[1]))
}
}
@@ -782,7 +782,7 @@ func (r *websiteRepo) UpdateStatus(id uint, status bool) error {
}
}
if err = io.Write(filepath.Join(app.Root, "server/vhost", website.Name+".conf"), raw, 0644); err != nil {
if err = io.Write(filepath.Join(panel.Root, "server/vhost", website.Name+".conf"), raw, 0644); err != nil {
return err
}
if err = systemctl.Reload("openresty"); err != nil {

View File

@@ -6,13 +6,13 @@ import (
"github.com/go-chi/chi/v5/middleware"
sessionmiddleware "github.com/go-rat/sessions/middleware"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/panel"
)
// GlobalMiddleware is a collection of global middleware that will be applied to every request.
func GlobalMiddleware() []func(http.Handler) http.Handler {
return []func(http.Handler) http.Handler{
sessionmiddleware.StartSession(app.Session),
sessionmiddleware.StartSession(panel.Session),
//middleware.SupressNotFound(app.Http),// bug https://github.com/go-chi/chi/pull/940
middleware.CleanPath,
middleware.StripSlashes,

View File

@@ -7,13 +7,13 @@ import (
"github.com/go-rat/chix"
"github.com/spf13/cast"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/panel"
)
// MustLogin 确保已登录
func MustLogin(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
session, err := app.Session.GetSession(r)
session, err := panel.Session.GetSession(r)
if err != nil {
render := chix.NewRender(w)
render.Status(http.StatusInternalServerError)

View File

@@ -1,4 +1,4 @@
package app
package panel
import (
"github.com/go-chi/chi/v5"

View File

@@ -10,8 +10,8 @@ import (
"github.com/go-playground/validator/v10"
"github.com/go-rat/chix"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
)
// SuccessResponse 通用成功响应
@@ -87,12 +87,12 @@ func Bind[T any](r *http.Request) (*T, error) {
}
if reqWithRules, ok := any(req).(request.WithRules); ok {
if rules := reqWithRules.Rules(r); rules != nil {
app.Validator.RegisterStructValidationMapRules(rules, req)
panel.Validator.RegisterStructValidationMapRules(rules, req)
}
}
// 验证参数
err := app.Validator.Struct(req)
err := panel.Validator.Struct(req)
if err == nil {
return req, nil
}
@@ -106,7 +106,7 @@ func Bind[T any](r *http.Request) (*T, error) {
return nil, errors.New(msg)
}
}
return nil, errors.New(e.Translate(*app.Translator)) // nolint:staticcheck
return nil, errors.New(e.Translate(*panel.Translator)) // nolint:staticcheck
}
}

View File

@@ -9,9 +9,9 @@ import (
"github.com/go-rat/chix"
"github.com/hashicorp/go-version"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/data"
"github.com/TheTNB/panel/internal/panel"
"github.com/TheTNB/panel/pkg/db"
"github.com/TheTNB/panel/pkg/shell"
"github.com/TheTNB/panel/pkg/tools"
@@ -52,7 +52,7 @@ func (s *InfoService) Panel(w http.ResponseWriter, r *http.Request) {
Success(w, chix.M{
"name": name,
"language": app.Conf.MustString("app.locale"),
"language": panel.Conf.MustString("app.locale"),
})
}
@@ -94,7 +94,7 @@ func (s *InfoService) SystemInfo(w http.ResponseWriter, r *http.Request) {
Success(w, chix.M{
"os_name": monitorInfo.Host.Platform + " " + monitorInfo.Host.PlatformVersion,
"uptime": fmt.Sprintf("%.2f", float64(monitorInfo.Host.Uptime)/86400),
"panel_version": app.Conf.MustString("app.version"),
"panel_version": panel.Conf.MustString("app.version"),
})
}
@@ -252,7 +252,7 @@ func (s *InfoService) InstalledDbAndPhp(w http.ResponseWriter, r *http.Request)
// @Success 200 {object} SuccessResponse
// @Router /info/checkUpdate [get]
func (s *InfoService) CheckUpdate(w http.ResponseWriter, r *http.Request) {
current := app.Conf.MustString("app.version")
current := panel.Conf.MustString("app.version")
latest, err := tools.GetLatestPanelVersion()
if err != nil {
Error(w, http.StatusInternalServerError, "获取最新版本失败")
@@ -290,7 +290,7 @@ func (s *InfoService) CheckUpdate(w http.ResponseWriter, r *http.Request) {
// @Success 200 {object} SuccessResponse
// @Router /info/updateInfo [get]
func (s *InfoService) UpdateInfo(w http.ResponseWriter, r *http.Request) {
current := app.Conf.MustString("app.version")
current := panel.Conf.MustString("app.version")
latest, err := tools.GetLatestPanelVersion()
if err != nil {
Error(w, http.StatusInternalServerError, "获取最新版本失败")
@@ -344,7 +344,7 @@ func (s *InfoService) Update(w http.ResponseWriter, r *http.Request) {
Error(w, http.StatusInternalServerError, "当前有任务正在执行,禁止更新")
return
}
if err := app.Orm.Exec("PRAGMA wal_checkpoint(TRUNCATE)").Error; err != nil {
if err := panel.Orm.Exec("PRAGMA wal_checkpoint(TRUNCATE)").Error; err != nil {
types.Status = types.StatusFailed
Error(w, http.StatusInternalServerError, fmt.Sprintf("面板数据库异常,已终止操作:%s", err.Error()))
return

View File

@@ -6,10 +6,10 @@ import (
"github.com/go-rat/chix"
"github.com/spf13/cast"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/data"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
)
type UserService struct {
@@ -32,7 +32,7 @@ func NewUserService() *UserService {
// @Success 200 {object} SuccessResponse
// @Router /user/login [post]
func (s *UserService) Login(w http.ResponseWriter, r *http.Request) {
sess, err := app.Session.GetSession(r)
sess, err := panel.Session.GetSession(r)
if err != nil {
Error(w, http.StatusInternalServerError, err.Error())
return
@@ -63,7 +63,7 @@ func (s *UserService) Login(w http.ResponseWriter, r *http.Request) {
// @Success 200 {object} SuccessResponse
// @Router /user/logout [post]
func (s *UserService) Logout(w http.ResponseWriter, r *http.Request) {
sess, err := app.Session.GetSession(r)
sess, err := panel.Session.GetSession(r)
if err == nil {
sess.Forget("user_id")
}
@@ -79,7 +79,7 @@ func (s *UserService) Logout(w http.ResponseWriter, r *http.Request) {
// @Success 200 {object} SuccessResponse
// @Router /user/isLogin [get]
func (s *UserService) IsLogin(w http.ResponseWriter, r *http.Request) {
sess, err := app.Session.GetSession(r)
sess, err := panel.Session.GetSession(r)
if err != nil {
Success(w, false)
return

View File

@@ -6,10 +6,10 @@ import (
"github.com/go-rat/chix"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
"github.com/TheTNB/panel/internal/data"
"github.com/TheTNB/panel/internal/http/request"
"github.com/TheTNB/panel/internal/panel"
"github.com/TheTNB/panel/pkg/io"
)
@@ -33,12 +33,12 @@ func NewWebsiteService() *WebsiteService {
// @Success 200 {object} SuccessResponse{data=map[string]string}
// @Router /panel/website/defaultConfig [get]
func (s *WebsiteService) GetDefaultConfig(w http.ResponseWriter, r *http.Request) {
index, err := io.Read(filepath.Join(app.Root, "server/openresty/html/index.html"))
index, err := io.Read(filepath.Join(panel.Root, "server/openresty/html/index.html"))
if err != nil {
Error(w, http.StatusInternalServerError, err.Error())
return
}
stop, err := io.Read(filepath.Join(app.Root, "server/openresty/html/stop.html"))
stop, err := io.Read(filepath.Join(panel.Root, "server/openresty/html/stop.html"))
if err != nil {
Error(w, http.StatusInternalServerError, err.Error())
return

View File

@@ -7,7 +7,7 @@ import (
"github.com/go-resty/resty/v2"
"github.com/shirou/gopsutil/host"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/panel"
"github.com/TheTNB/panel/pkg/copier"
)
@@ -33,7 +33,7 @@ func NewAPI(url ...string) *API {
client := resty.New()
client.SetTimeout(10 * time.Second)
client.SetBaseURL(url[0])
client.SetHeader("User-Agent", fmt.Sprintf("rat-panel/%s %s/%s", app.Version, hostInfo.Platform, hostInfo.PlatformVersion))
client.SetHeader("User-Agent", fmt.Sprintf("rat-panel/%s %s/%s", panel.Version, hostInfo.Platform, hostInfo.PlatformVersion))
return &API{
client: client,

View File

@@ -5,7 +5,7 @@ import (
"github.com/stretchr/testify/suite"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/panel"
)
type APITestSuite struct {
@@ -14,7 +14,7 @@ type APITestSuite struct {
}
func TestAPITestSuite(t *testing.T) {
app.Version = "2.3.0"
panel.Version = "2.3.0"
suite.Run(t, &APITestSuite{
api: NewAPI(),
})

View File

@@ -4,7 +4,7 @@ import (
"fmt"
"time"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/panel"
)
type Version struct {
@@ -37,7 +37,7 @@ func (r *API) GetLatestVersion() (*Version, error) {
// GetIntermediateVersions 返回当前版本之后的所有版本
func (r *API) GetIntermediateVersions() (*Versions, error) {
resp, err := r.client.R().
SetQueryParam("start", app.Version).
SetQueryParam("start", panel.Version).
SetResult(&Response{}).Get("/versions/log")
if err != nil {
return nil, err