2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-05 02:07:18 +08:00
Files
panel/routes/plugin.go
2024-06-18 03:04:37 +08:00

179 lines
8.3 KiB
Go

package routes
import (
"github.com/goravel/framework/contracts/route"
"github.com/goravel/framework/facades"
"github.com/TheTNB/panel/app/http/controllers/plugins"
"github.com/TheTNB/panel/app/http/middleware"
)
// Plugin 加载插件路由
func Plugin() {
facades.Route().Prefix("api/plugins").Middleware(middleware.Jwt(), middleware.MustInstall()).Group(func(r route.Router) {
r.Prefix("openresty").Group(func(route route.Router) {
openRestyController := plugins.NewOpenrestyController()
route.Get("load", openRestyController.Load)
route.Get("config", openRestyController.GetConfig)
route.Post("config", openRestyController.SaveConfig)
route.Get("errorLog", openRestyController.ErrorLog)
route.Post("clearErrorLog", openRestyController.ClearErrorLog)
})
r.Prefix("mysql").Group(func(route route.Router) {
mySQLController := plugins.NewMySQLController()
route.Get("load", mySQLController.Load)
route.Get("config", mySQLController.GetConfig)
route.Post("config", mySQLController.SaveConfig)
route.Get("errorLog", mySQLController.ErrorLog)
route.Post("clearErrorLog", mySQLController.ClearErrorLog)
route.Get("slowLog", mySQLController.SlowLog)
route.Post("clearSlowLog", mySQLController.ClearSlowLog)
route.Get("rootPassword", mySQLController.GetRootPassword)
route.Post("rootPassword", mySQLController.SetRootPassword)
route.Get("databases", mySQLController.DatabaseList)
route.Post("databases", mySQLController.AddDatabase)
route.Delete("databases", mySQLController.DeleteDatabase)
route.Get("backups", mySQLController.BackupList)
route.Post("backups", mySQLController.CreateBackup)
route.Put("backups", mySQLController.UploadBackup)
route.Delete("backups", mySQLController.DeleteBackup)
route.Post("backups/restore", mySQLController.RestoreBackup)
route.Get("users", mySQLController.UserList)
route.Post("users", mySQLController.AddUser)
route.Delete("users", mySQLController.DeleteUser)
route.Post("users/password", mySQLController.SetUserPassword)
route.Post("users/privileges", mySQLController.SetUserPrivileges)
})
r.Prefix("postgresql").Group(func(route route.Router) {
controller := plugins.NewPostgreSQLController()
route.Get("load", controller.Load)
route.Get("config", controller.GetConfig)
route.Post("config", controller.SaveConfig)
route.Get("userConfig", controller.GetUserConfig)
route.Post("userConfig", controller.SaveUserConfig)
route.Get("log", controller.Log)
route.Post("clearLog", controller.ClearLog)
route.Get("databases", controller.DatabaseList)
route.Post("databases", controller.AddDatabase)
route.Delete("databases", controller.DeleteDatabase)
route.Get("backups", controller.BackupList)
route.Post("backups", controller.CreateBackup)
route.Put("backups", controller.UploadBackup)
route.Delete("backups", controller.DeleteBackup)
route.Post("backups/restore", controller.RestoreBackup)
route.Get("roles", controller.RoleList)
route.Post("roles", controller.AddRole)
route.Delete("roles", controller.DeleteRole)
route.Post("roles/password", controller.SetRolePassword)
})
r.Prefix("php").Group(func(route route.Router) {
phpController := plugins.NewPHPController()
route.Get("{version}/load", phpController.Load)
route.Get("{version}/config", phpController.GetConfig)
route.Post("{version}/config", phpController.SaveConfig)
route.Get("{version}/fpmConfig", phpController.GetFPMConfig)
route.Post("{version}/fpmConfig", phpController.SaveFPMConfig)
route.Get("{version}/errorLog", phpController.ErrorLog)
route.Get("{version}/slowLog", phpController.SlowLog)
route.Post("{version}/clearErrorLog", phpController.ClearErrorLog)
route.Post("{version}/clearSlowLog", phpController.ClearSlowLog)
route.Get("{version}/extensions", phpController.ExtensionList)
route.Post("{version}/extensions", phpController.InstallExtension)
route.Delete("{version}/extensions", phpController.UninstallExtension)
})
r.Prefix("phpmyadmin").Group(func(route route.Router) {
phpMyAdminController := plugins.NewPhpMyAdminController()
route.Get("info", phpMyAdminController.Info)
route.Post("port", phpMyAdminController.SetPort)
})
r.Prefix("pureftpd").Group(func(route route.Router) {
pureFtpdController := plugins.NewPureFtpdController()
route.Get("list", pureFtpdController.List)
route.Post("add", pureFtpdController.Add)
route.Delete("delete", pureFtpdController.Delete)
route.Post("changePassword", pureFtpdController.ChangePassword)
route.Get("port", pureFtpdController.GetPort)
route.Post("port", pureFtpdController.SetPort)
})
r.Prefix("redis").Group(func(route route.Router) {
redisController := plugins.NewRedisController()
route.Get("load", redisController.Load)
route.Get("config", redisController.GetConfig)
route.Post("config", redisController.SaveConfig)
})
r.Prefix("s3fs").Group(func(route route.Router) {
s3fsController := plugins.NewS3fsController()
route.Get("list", s3fsController.List)
route.Post("add", s3fsController.Add)
route.Post("delete", s3fsController.Delete)
})
r.Prefix("supervisor").Group(func(route route.Router) {
supervisorController := plugins.NewSupervisorController()
route.Get("service", supervisorController.Service)
route.Get("log", supervisorController.Log)
route.Post("clearLog", supervisorController.ClearLog)
route.Get("config", supervisorController.Config)
route.Post("config", supervisorController.SaveConfig)
route.Get("processes", supervisorController.Processes)
route.Post("startProcess", supervisorController.StartProcess)
route.Post("stopProcess", supervisorController.StopProcess)
route.Post("restartProcess", supervisorController.RestartProcess)
route.Get("processLog", supervisorController.ProcessLog)
route.Post("clearProcessLog", supervisorController.ClearProcessLog)
route.Get("processConfig", supervisorController.ProcessConfig)
route.Post("processConfig", supervisorController.SaveProcessConfig)
route.Post("deleteProcess", supervisorController.DeleteProcess)
route.Post("addProcess", supervisorController.AddProcess)
})
r.Prefix("fail2ban").Group(func(route route.Router) {
fail2banController := plugins.NewFail2banController()
route.Get("jails", fail2banController.List)
route.Post("jails", fail2banController.Add)
route.Delete("jails", fail2banController.Delete)
route.Get("jails/{name}", fail2banController.BanList)
route.Post("unban", fail2banController.Unban)
route.Post("whiteList", fail2banController.SetWhiteList)
route.Get("whiteList", fail2banController.GetWhiteList)
})
r.Prefix("podman").Group(func(route route.Router) {
controller := plugins.NewPodmanController()
route.Get("registryConfig", controller.GetRegistryConfig)
route.Post("registryConfig", controller.UpdateRegistryConfig)
route.Get("storageConfig", controller.GetStorageConfig)
route.Post("storageConfig", controller.UpdateStorageConfig)
})
r.Prefix("rsync").Group(func(route route.Router) {
rsyncController := plugins.NewRsyncController()
route.Get("modules", rsyncController.List)
route.Post("modules", rsyncController.Create)
route.Post("modules/{name}", rsyncController.Update)
route.Delete("modules/{name}", rsyncController.Destroy)
route.Get("config", rsyncController.GetConfig)
route.Post("config", rsyncController.UpdateConfig)
})
r.Prefix("frp").Group(func(route route.Router) {
frpController := plugins.NewFrpController()
route.Get("config", frpController.GetConfig)
route.Post("config", frpController.UpdateConfig)
})
r.Prefix("gitea").Group(func(route route.Router) {
giteaController := plugins.NewGiteaController()
route.Get("config", giteaController.GetConfig)
route.Post("config", giteaController.UpdateConfig)
})
r.Prefix("toolbox").Group(func(route route.Router) {
toolboxController := plugins.NewToolBoxController()
route.Get("dns", toolboxController.GetDNS)
route.Post("dns", toolboxController.SetDNS)
route.Get("swap", toolboxController.GetSWAP)
route.Post("swap", toolboxController.SetSWAP)
route.Get("timezone", toolboxController.GetTimezone)
route.Post("timezone", toolboxController.SetTimezone)
route.Get("hosts", toolboxController.GetHosts)
route.Post("hosts", toolboxController.SetHosts)
route.Post("rootPassword", toolboxController.SetRootPassword)
})
})
}