351 lines
9.3 KiB
Go
351 lines
9.3 KiB
Go
package router
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
_ "github.com/lejianwen/rustdesk-api/v2/docs/admin"
|
|
"github.com/lejianwen/rustdesk-api/v2/global"
|
|
"github.com/lejianwen/rustdesk-api/v2/http/controller/admin"
|
|
"github.com/lejianwen/rustdesk-api/v2/http/controller/admin/my"
|
|
"github.com/lejianwen/rustdesk-api/v2/http/middleware"
|
|
swaggerFiles "github.com/swaggo/files"
|
|
ginSwagger "github.com/swaggo/gin-swagger"
|
|
)
|
|
|
|
func Init(g *gin.Engine) {
|
|
|
|
//swagger
|
|
//g.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
|
if global.Config.App.ShowSwagger == 1 {
|
|
g.GET("/admin/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, ginSwagger.InstanceName("admin")))
|
|
}
|
|
|
|
adg := g.Group("/api/admin")
|
|
LoginBind(adg)
|
|
adg.POST("/user/register", (&admin.User{}).Register)
|
|
|
|
ConfigBind(adg)
|
|
|
|
adg.Use(middleware.BackendUserAuth())
|
|
//FileBind(adg)
|
|
UserBind(adg)
|
|
GroupBind(adg)
|
|
TagBind(adg)
|
|
AddressBookBind(adg)
|
|
PeerBind(adg)
|
|
OauthBind(adg)
|
|
LoginLogBind(adg)
|
|
AuditBind(adg)
|
|
AddressBookCollectionBind(adg)
|
|
AddressBookCollectionRuleBind(adg)
|
|
UserTokenBind(adg)
|
|
|
|
//deprecated by ConfigBind
|
|
//rs := &admin.Rustdesk{}
|
|
//adg.GET("/server-config", rs.ServerConfig)
|
|
//adg.GET("/app-config", rs.AppConfig)
|
|
//deprecated end
|
|
|
|
ShareRecordBind(adg)
|
|
MyBind(adg)
|
|
|
|
RustdeskCmdBind(adg)
|
|
DeviceGroupBind(adg)
|
|
ClientConfigBind(adg)
|
|
ClientBuildBind(adg)
|
|
//访问静态文件
|
|
//g.StaticFS("/upload", http.Dir(global.Config.Gin.ResourcesPath+"/upload"))
|
|
}
|
|
|
|
func RustdeskCmdBind(adg *gin.RouterGroup) {
|
|
cont := &admin.Rustdesk{}
|
|
rg := adg.Group("/rustdesk")
|
|
rg.POST("/sendCmd", cont.SendCmd)
|
|
rg.GET("/cmdList", cont.CmdList)
|
|
rg.POST("/cmdDelete", cont.CmdDelete)
|
|
rg.POST("/cmdCreate", cont.CmdCreate)
|
|
}
|
|
func LoginBind(rg *gin.RouterGroup) {
|
|
cont := &admin.Login{}
|
|
rg.POST("/login", cont.Login)
|
|
rg.GET("/captcha", cont.Captcha)
|
|
rg.POST("/logout", cont.Logout)
|
|
rg.GET("/login-options", cont.LoginOptions)
|
|
rg.POST("/oidc/auth", cont.OidcAuth)
|
|
rg.GET("/oidc/auth-query", cont.OidcAuthQuery)
|
|
}
|
|
|
|
func UserBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/user")
|
|
{
|
|
cont := &admin.User{}
|
|
aR.GET("/current", cont.Current)
|
|
aR.POST("/changeCurPwd", cont.ChangeCurPwd)
|
|
aR.POST("/myOauth", cont.MyOauth)
|
|
//aR.GET("/myPeer", cont.MyPeer)
|
|
aR.POST("/groupUsers", cont.GroupUsers)
|
|
}
|
|
aRP := rg.Group("/user").Use(middleware.AdminPrivilege())
|
|
{
|
|
cont := &admin.User{}
|
|
aRP.GET("/list", cont.List)
|
|
aRP.GET("/detail/:id", cont.Detail)
|
|
aRP.POST("/create", cont.Create)
|
|
aRP.POST("/update", cont.Update)
|
|
aRP.POST("/delete", cont.Delete)
|
|
aRP.POST("/changePwd", cont.UpdatePassword)
|
|
}
|
|
}
|
|
|
|
func GroupBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/group").Use(middleware.AdminPrivilege())
|
|
{
|
|
cont := &admin.Group{}
|
|
aR.GET("/list", cont.List)
|
|
aR.GET("/detail/:id", cont.Detail)
|
|
aR.POST("/create", cont.Create)
|
|
aR.POST("/update", cont.Update)
|
|
aR.POST("/delete", cont.Delete)
|
|
}
|
|
}
|
|
|
|
func DeviceGroupBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/device_group").Use(middleware.AdminPrivilege())
|
|
{
|
|
cont := &admin.DeviceGroup{}
|
|
aR.GET("/list", cont.List)
|
|
aR.GET("/detail/:id", cont.Detail)
|
|
aR.POST("/create", cont.Create)
|
|
aR.POST("/update", cont.Update)
|
|
aR.POST("/delete", cont.Delete)
|
|
}
|
|
}
|
|
|
|
func TagBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/tag").Use(middleware.AdminPrivilege())
|
|
{
|
|
cont := &admin.Tag{}
|
|
aR.GET("/list", cont.List)
|
|
aR.GET("/detail/:id", cont.Detail)
|
|
aR.POST("/create", cont.Create)
|
|
aR.POST("/update", cont.Update)
|
|
aR.POST("/delete", cont.Delete)
|
|
}
|
|
}
|
|
|
|
func AddressBookBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/address_book")
|
|
{
|
|
cont := &admin.AddressBook{}
|
|
aR.POST("/shareByWebClient", cont.ShareByWebClient)
|
|
|
|
arp := aR.Use(middleware.AdminPrivilege())
|
|
arp.GET("/list", cont.List)
|
|
//arp.GET("/detail/:id", cont.Detail)
|
|
arp.POST("/create", cont.Create)
|
|
arp.POST("/update", cont.Update)
|
|
arp.POST("/delete", cont.Delete)
|
|
arp.POST("/batchCreate", cont.BatchCreate)
|
|
arp.POST("/batchCreateFromPeers", cont.BatchCreateFromPeers)
|
|
|
|
}
|
|
}
|
|
func PeerBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/peer")
|
|
aR.POST("/simpleData", (&admin.Peer{}).SimpleData)
|
|
aR.Use(middleware.AdminPrivilege())
|
|
{
|
|
cont := &admin.Peer{}
|
|
aR.GET("/list", cont.List)
|
|
aR.GET("/detail/:id", cont.Detail)
|
|
aR.POST("/create", cont.Create)
|
|
aR.POST("/update", cont.Update)
|
|
aR.POST("/delete", cont.Delete)
|
|
aR.POST("/batchDelete", cont.BatchDelete)
|
|
}
|
|
}
|
|
|
|
func OauthBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/oauth")
|
|
{
|
|
cont := &admin.Oauth{}
|
|
aR.POST("/confirm", cont.Confirm)
|
|
aR.POST("/bind", cont.ToBind)
|
|
aR.POST("/bindConfirm", cont.BindConfirm)
|
|
aR.POST("/unbind", cont.Unbind)
|
|
aR.GET("/info", cont.Info)
|
|
}
|
|
arp := aR.Use(middleware.AdminPrivilege())
|
|
{
|
|
cont := &admin.Oauth{}
|
|
arp.GET("/list", cont.List)
|
|
arp.GET("/detail/:id", cont.Detail)
|
|
arp.POST("/create", cont.Create)
|
|
arp.POST("/update", cont.Update)
|
|
arp.POST("/delete", cont.Delete)
|
|
|
|
}
|
|
|
|
}
|
|
func LoginLogBind(rg *gin.RouterGroup) {
|
|
cont := &admin.LoginLog{}
|
|
aR := rg.Group("/login_log").Use(middleware.AdminPrivilege())
|
|
aR.GET("/list", cont.List)
|
|
aR.POST("/delete", cont.Delete)
|
|
aR.POST("/batchDelete", cont.BatchDelete)
|
|
}
|
|
func AuditBind(rg *gin.RouterGroup) {
|
|
cont := &admin.Audit{}
|
|
aR := rg.Group("/audit_conn").Use(middleware.AdminPrivilege())
|
|
aR.GET("/list", cont.ConnList)
|
|
aR.POST("/delete", cont.ConnDelete)
|
|
aR.POST("/batchDelete", cont.BatchConnDelete)
|
|
afR := rg.Group("/audit_file").Use(middleware.AdminPrivilege())
|
|
afR.GET("/list", cont.FileList)
|
|
afR.POST("/delete", cont.FileDelete)
|
|
afR.POST("/batchDelete", cont.BatchFileDelete)
|
|
}
|
|
func AddressBookCollectionBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/address_book_collection").Use(middleware.AdminPrivilege())
|
|
{
|
|
cont := &admin.AddressBookCollection{}
|
|
aR.GET("/list", cont.List)
|
|
aR.GET("/detail/:id", cont.Detail)
|
|
aR.POST("/create", cont.Create)
|
|
aR.POST("/update", cont.Update)
|
|
aR.POST("/delete", cont.Delete)
|
|
}
|
|
|
|
}
|
|
func AddressBookCollectionRuleBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/address_book_collection_rule").Use(middleware.AdminPrivilege())
|
|
{
|
|
cont := &admin.AddressBookCollectionRule{}
|
|
aR.GET("/list", cont.List)
|
|
aR.GET("/detail/:id", cont.Detail)
|
|
aR.POST("/create", cont.Create)
|
|
aR.POST("/update", cont.Update)
|
|
aR.POST("/delete", cont.Delete)
|
|
}
|
|
}
|
|
func UserTokenBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/user_token").Use(middleware.AdminPrivilege())
|
|
cont := &admin.UserToken{}
|
|
aR.GET("/list", cont.List)
|
|
aR.POST("/delete", cont.Delete)
|
|
aR.POST("/batchDelete", cont.BatchDelete)
|
|
}
|
|
func ConfigBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/config")
|
|
rs := &admin.Config{}
|
|
|
|
aR.GET("/admin", rs.AdminConfig)
|
|
|
|
aR.Use(middleware.BackendUserAuth())
|
|
aR.GET("/server", rs.ServerConfig)
|
|
aR.GET("/app", rs.AppConfig)
|
|
|
|
}
|
|
|
|
/*
|
|
func FileBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/file")
|
|
{
|
|
cont := &admin.File{}
|
|
aR.POST("/notify", cont.Notify)
|
|
aR.OPTIONS("/oss_token", nil)
|
|
aR.OPTIONS("/upload", nil)
|
|
aR.GET("/oss_token", cont.OssToken)
|
|
aR.POST("/upload", cont.Upload)
|
|
}
|
|
}*/
|
|
|
|
func MyBind(rg *gin.RouterGroup) {
|
|
{
|
|
cont := &my.ShareRecord{}
|
|
rg.GET("/my/share_record/list", cont.List)
|
|
rg.POST("/my/share_record/delete", cont.Delete)
|
|
rg.POST("/my/share_record/batchDelete", cont.BatchDelete)
|
|
}
|
|
|
|
{
|
|
cont := &my.AddressBook{}
|
|
rg.GET("/my/address_book/list", cont.List)
|
|
rg.POST("/my/address_book/create", cont.Create)
|
|
rg.POST("/my/address_book/update", cont.Update)
|
|
rg.POST("/my/address_book/delete", cont.Delete)
|
|
rg.POST("/my/address_book/batchCreateFromPeers", cont.BatchCreateFromPeers)
|
|
rg.POST("/my/address_book/batchUpdateTags", cont.BatchUpdateTags)
|
|
}
|
|
|
|
{
|
|
cont := &my.Tag{}
|
|
rg.GET("/my/tag/list", cont.List)
|
|
rg.POST("/my/tag/create", cont.Create)
|
|
rg.POST("/my/tag/update", cont.Update)
|
|
rg.POST("/my/tag/delete", cont.Delete)
|
|
}
|
|
|
|
{
|
|
cont := &my.AddressBookCollection{}
|
|
rg.GET("/my/address_book_collection/list", cont.List)
|
|
rg.POST("/my/address_book_collection/create", cont.Create)
|
|
rg.POST("/my/address_book_collection/update", cont.Update)
|
|
rg.POST("/my/address_book_collection/delete", cont.Delete)
|
|
}
|
|
|
|
{
|
|
cont := &my.AddressBookCollectionRule{}
|
|
rg.GET("/my/address_book_collection_rule/list", cont.List)
|
|
rg.POST("/my/address_book_collection_rule/create", cont.Create)
|
|
rg.POST("/my/address_book_collection_rule/update", cont.Update)
|
|
rg.POST("/my/address_book_collection_rule/delete", cont.Delete)
|
|
}
|
|
{
|
|
cont := &my.Peer{}
|
|
rg.GET("/my/peer/list", cont.List)
|
|
|
|
}
|
|
|
|
{
|
|
cont := &my.LoginLog{}
|
|
rg.GET("/my/login_log/list", cont.List)
|
|
rg.POST("/my/login_log/delete", cont.Delete)
|
|
rg.POST("/my/login_log/batchDelete", cont.BatchDelete)
|
|
}
|
|
}
|
|
|
|
func ShareRecordBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/share_record").Use(middleware.AdminPrivilege())
|
|
{
|
|
cont := &admin.ShareRecord{}
|
|
aR.GET("/list", cont.List)
|
|
aR.POST("/delete", cont.Delete)
|
|
aR.POST("/batchDelete", cont.BatchDelete)
|
|
}
|
|
|
|
}
|
|
|
|
func ClientConfigBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/client_config")
|
|
{
|
|
cont := &admin.ClientConfig{}
|
|
aR.POST("/generate", cont.Generate)
|
|
aR.GET("/list", cont.List)
|
|
aR.GET("/download/:id", cont.Download)
|
|
aR.POST("/delete", cont.Delete)
|
|
}
|
|
}
|
|
|
|
func ClientBuildBind(rg *gin.RouterGroup) {
|
|
aR := rg.Group("/client_build")
|
|
{
|
|
cont := &admin.ClientBuild{}
|
|
aR.POST("/generate", cont.Generate)
|
|
aR.POST("/upload_config", cont.UploadConfigFile)
|
|
aR.GET("/list", cont.List)
|
|
aR.GET("/status/:uuid", cont.Status)
|
|
aR.GET("/download/:uuid", cont.Download)
|
|
aR.POST("/delete/:id", cont.Delete)
|
|
}
|
|
}
|