admin.go 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. package router
  2. import (
  3. "github.com/gin-gonic/gin"
  4. _ "github.com/lejianwen/rustdesk-api/v2/docs/admin"
  5. "github.com/lejianwen/rustdesk-api/v2/global"
  6. "github.com/lejianwen/rustdesk-api/v2/http/controller/admin"
  7. "github.com/lejianwen/rustdesk-api/v2/http/controller/admin/my"
  8. "github.com/lejianwen/rustdesk-api/v2/http/middleware"
  9. swaggerFiles "github.com/swaggo/files"
  10. ginSwagger "github.com/swaggo/gin-swagger"
  11. )
  12. func Init(g *gin.Engine) {
  13. //swagger
  14. //g.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
  15. if global.Config.App.ShowSwagger == 1 {
  16. g.GET("/admin/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, ginSwagger.InstanceName("admin")))
  17. }
  18. adg := g.Group("/api/admin")
  19. LoginBind(adg)
  20. adg.POST("/user/register", (&admin.User{}).Register)
  21. ConfigBind(adg)
  22. adg.Use(middleware.BackendUserAuth())
  23. //FileBind(adg)
  24. UserBind(adg)
  25. GroupBind(adg)
  26. TagBind(adg)
  27. AddressBookBind(adg)
  28. PeerBind(adg)
  29. OauthBind(adg)
  30. LoginLogBind(adg)
  31. AuditBind(adg)
  32. AddressBookCollectionBind(adg)
  33. AddressBookCollectionRuleBind(adg)
  34. UserTokenBind(adg)
  35. //deprecated by ConfigBind
  36. //rs := &admin.Rustdesk{}
  37. //adg.GET("/server-config", rs.ServerConfig)
  38. //adg.GET("/app-config", rs.AppConfig)
  39. //deprecated end
  40. ShareRecordBind(adg)
  41. MyBind(adg)
  42. RustdeskCmdBind(adg)
  43. DeviceGroupBind(adg)
  44. //访问静态文件
  45. //g.StaticFS("/upload", http.Dir(global.Config.Gin.ResourcesPath+"/upload"))
  46. }
  47. func RustdeskCmdBind(adg *gin.RouterGroup) {
  48. cont := &admin.Rustdesk{}
  49. rg := adg.Group("/rustdesk")
  50. rg.POST("/sendCmd", cont.SendCmd)
  51. rg.GET("/cmdList", cont.CmdList)
  52. rg.POST("/cmdDelete", cont.CmdDelete)
  53. rg.POST("/cmdCreate", cont.CmdCreate)
  54. }
  55. func LoginBind(rg *gin.RouterGroup) {
  56. cont := &admin.Login{}
  57. rg.POST("/login", cont.Login)
  58. rg.GET("/captcha", cont.Captcha)
  59. rg.POST("/logout", cont.Logout)
  60. rg.GET("/login-options", cont.LoginOptions)
  61. rg.POST("/oidc/auth", cont.OidcAuth)
  62. rg.GET("/oidc/auth-query", cont.OidcAuthQuery)
  63. }
  64. func UserBind(rg *gin.RouterGroup) {
  65. aR := rg.Group("/user")
  66. {
  67. cont := &admin.User{}
  68. aR.GET("/current", cont.Current)
  69. aR.POST("/changeCurPwd", cont.ChangeCurPwd)
  70. aR.POST("/myOauth", cont.MyOauth)
  71. //aR.GET("/myPeer", cont.MyPeer)
  72. aR.POST("/groupUsers", cont.GroupUsers)
  73. }
  74. aRP := rg.Group("/user").Use(middleware.AdminPrivilege())
  75. {
  76. cont := &admin.User{}
  77. aRP.GET("/list", cont.List)
  78. aRP.GET("/detail/:id", cont.Detail)
  79. aRP.POST("/create", cont.Create)
  80. aRP.POST("/update", cont.Update)
  81. aRP.POST("/delete", cont.Delete)
  82. aRP.POST("/changePwd", cont.UpdatePassword)
  83. }
  84. }
  85. func GroupBind(rg *gin.RouterGroup) {
  86. aR := rg.Group("/group").Use(middleware.AdminPrivilege())
  87. {
  88. cont := &admin.Group{}
  89. aR.GET("/list", cont.List)
  90. aR.GET("/detail/:id", cont.Detail)
  91. aR.POST("/create", cont.Create)
  92. aR.POST("/update", cont.Update)
  93. aR.POST("/delete", cont.Delete)
  94. }
  95. }
  96. func DeviceGroupBind(rg *gin.RouterGroup) {
  97. aR := rg.Group("/device_group").Use(middleware.AdminPrivilege())
  98. {
  99. cont := &admin.DeviceGroup{}
  100. aR.GET("/list", cont.List)
  101. aR.GET("/detail/:id", cont.Detail)
  102. aR.POST("/create", cont.Create)
  103. aR.POST("/update", cont.Update)
  104. aR.POST("/delete", cont.Delete)
  105. }
  106. }
  107. func TagBind(rg *gin.RouterGroup) {
  108. aR := rg.Group("/tag").Use(middleware.AdminPrivilege())
  109. {
  110. cont := &admin.Tag{}
  111. aR.GET("/list", cont.List)
  112. aR.GET("/detail/:id", cont.Detail)
  113. aR.POST("/create", cont.Create)
  114. aR.POST("/update", cont.Update)
  115. aR.POST("/delete", cont.Delete)
  116. }
  117. }
  118. func AddressBookBind(rg *gin.RouterGroup) {
  119. aR := rg.Group("/address_book")
  120. {
  121. cont := &admin.AddressBook{}
  122. aR.POST("/shareByWebClient", cont.ShareByWebClient)
  123. arp := aR.Use(middleware.AdminPrivilege())
  124. arp.GET("/list", cont.List)
  125. //arp.GET("/detail/:id", cont.Detail)
  126. arp.POST("/create", cont.Create)
  127. arp.POST("/update", cont.Update)
  128. arp.POST("/delete", cont.Delete)
  129. arp.POST("/batchCreate", cont.BatchCreate)
  130. arp.POST("/batchCreateFromPeers", cont.BatchCreateFromPeers)
  131. }
  132. }
  133. func PeerBind(rg *gin.RouterGroup) {
  134. aR := rg.Group("/peer")
  135. aR.POST("/simpleData", (&admin.Peer{}).SimpleData)
  136. aR.Use(middleware.AdminPrivilege())
  137. {
  138. cont := &admin.Peer{}
  139. aR.GET("/list", cont.List)
  140. aR.GET("/detail/:id", cont.Detail)
  141. aR.POST("/create", cont.Create)
  142. aR.POST("/update", cont.Update)
  143. aR.POST("/delete", cont.Delete)
  144. aR.POST("/batchDelete", cont.BatchDelete)
  145. }
  146. }
  147. func OauthBind(rg *gin.RouterGroup) {
  148. aR := rg.Group("/oauth")
  149. {
  150. cont := &admin.Oauth{}
  151. aR.POST("/confirm", cont.Confirm)
  152. aR.POST("/bind", cont.ToBind)
  153. aR.POST("/bindConfirm", cont.BindConfirm)
  154. aR.POST("/unbind", cont.Unbind)
  155. aR.GET("/info", cont.Info)
  156. }
  157. arp := aR.Use(middleware.AdminPrivilege())
  158. {
  159. cont := &admin.Oauth{}
  160. arp.GET("/list", cont.List)
  161. arp.GET("/detail/:id", cont.Detail)
  162. arp.POST("/create", cont.Create)
  163. arp.POST("/update", cont.Update)
  164. arp.POST("/delete", cont.Delete)
  165. }
  166. }
  167. func LoginLogBind(rg *gin.RouterGroup) {
  168. cont := &admin.LoginLog{}
  169. aR := rg.Group("/login_log").Use(middleware.AdminPrivilege())
  170. aR.GET("/list", cont.List)
  171. aR.POST("/delete", cont.Delete)
  172. aR.POST("/batchDelete", cont.BatchDelete)
  173. }
  174. func AuditBind(rg *gin.RouterGroup) {
  175. cont := &admin.Audit{}
  176. aR := rg.Group("/audit_conn").Use(middleware.AdminPrivilege())
  177. aR.GET("/list", cont.ConnList)
  178. aR.POST("/delete", cont.ConnDelete)
  179. aR.POST("/batchDelete", cont.BatchConnDelete)
  180. afR := rg.Group("/audit_file").Use(middleware.AdminPrivilege())
  181. afR.GET("/list", cont.FileList)
  182. afR.POST("/delete", cont.FileDelete)
  183. afR.POST("/batchDelete", cont.BatchFileDelete)
  184. }
  185. func AddressBookCollectionBind(rg *gin.RouterGroup) {
  186. aR := rg.Group("/address_book_collection").Use(middleware.AdminPrivilege())
  187. {
  188. cont := &admin.AddressBookCollection{}
  189. aR.GET("/list", cont.List)
  190. aR.GET("/detail/:id", cont.Detail)
  191. aR.POST("/create", cont.Create)
  192. aR.POST("/update", cont.Update)
  193. aR.POST("/delete", cont.Delete)
  194. }
  195. }
  196. func AddressBookCollectionRuleBind(rg *gin.RouterGroup) {
  197. aR := rg.Group("/address_book_collection_rule").Use(middleware.AdminPrivilege())
  198. {
  199. cont := &admin.AddressBookCollectionRule{}
  200. aR.GET("/list", cont.List)
  201. aR.GET("/detail/:id", cont.Detail)
  202. aR.POST("/create", cont.Create)
  203. aR.POST("/update", cont.Update)
  204. aR.POST("/delete", cont.Delete)
  205. }
  206. }
  207. func UserTokenBind(rg *gin.RouterGroup) {
  208. aR := rg.Group("/user_token").Use(middleware.AdminPrivilege())
  209. cont := &admin.UserToken{}
  210. aR.GET("/list", cont.List)
  211. aR.POST("/delete", cont.Delete)
  212. aR.POST("/batchDelete", cont.BatchDelete)
  213. }
  214. func ConfigBind(rg *gin.RouterGroup) {
  215. aR := rg.Group("/config")
  216. rs := &admin.Config{}
  217. aR.GET("/admin", rs.AdminConfig)
  218. aR.Use(middleware.BackendUserAuth())
  219. aR.GET("/server", rs.ServerConfig)
  220. aR.GET("/app", rs.AppConfig)
  221. }
  222. /*
  223. func FileBind(rg *gin.RouterGroup) {
  224. aR := rg.Group("/file")
  225. {
  226. cont := &admin.File{}
  227. aR.POST("/notify", cont.Notify)
  228. aR.OPTIONS("/oss_token", nil)
  229. aR.OPTIONS("/upload", nil)
  230. aR.GET("/oss_token", cont.OssToken)
  231. aR.POST("/upload", cont.Upload)
  232. }
  233. }*/
  234. func MyBind(rg *gin.RouterGroup) {
  235. {
  236. cont := &my.ShareRecord{}
  237. rg.GET("/my/share_record/list", cont.List)
  238. rg.POST("/my/share_record/delete", cont.Delete)
  239. rg.POST("/my/share_record/batchDelete", cont.BatchDelete)
  240. }
  241. {
  242. cont := &my.AddressBook{}
  243. rg.GET("/my/address_book/list", cont.List)
  244. rg.POST("/my/address_book/create", cont.Create)
  245. rg.POST("/my/address_book/update", cont.Update)
  246. rg.POST("/my/address_book/delete", cont.Delete)
  247. rg.POST("/my/address_book/batchCreateFromPeers", cont.BatchCreateFromPeers)
  248. rg.POST("/my/address_book/batchUpdateTags", cont.BatchUpdateTags)
  249. }
  250. {
  251. cont := &my.Tag{}
  252. rg.GET("/my/tag/list", cont.List)
  253. rg.POST("/my/tag/create", cont.Create)
  254. rg.POST("/my/tag/update", cont.Update)
  255. rg.POST("/my/tag/delete", cont.Delete)
  256. }
  257. {
  258. cont := &my.AddressBookCollection{}
  259. rg.GET("/my/address_book_collection/list", cont.List)
  260. rg.POST("/my/address_book_collection/create", cont.Create)
  261. rg.POST("/my/address_book_collection/update", cont.Update)
  262. rg.POST("/my/address_book_collection/delete", cont.Delete)
  263. }
  264. {
  265. cont := &my.AddressBookCollectionRule{}
  266. rg.GET("/my/address_book_collection_rule/list", cont.List)
  267. rg.POST("/my/address_book_collection_rule/create", cont.Create)
  268. rg.POST("/my/address_book_collection_rule/update", cont.Update)
  269. rg.POST("/my/address_book_collection_rule/delete", cont.Delete)
  270. }
  271. {
  272. cont := &my.Peer{}
  273. rg.GET("/my/peer/list", cont.List)
  274. }
  275. {
  276. cont := &my.LoginLog{}
  277. rg.GET("/my/login_log/list", cont.List)
  278. rg.POST("/my/login_log/delete", cont.Delete)
  279. rg.POST("/my/login_log/batchDelete", cont.BatchDelete)
  280. }
  281. }
  282. func ShareRecordBind(rg *gin.RouterGroup) {
  283. aR := rg.Group("/share_record").Use(middleware.AdminPrivilege())
  284. {
  285. cont := &admin.ShareRecord{}
  286. aR.GET("/list", cont.List)
  287. aR.POST("/delete", cont.Delete)
  288. aR.POST("/batchDelete", cont.BatchDelete)
  289. }
  290. }