提交 v1.3.0 beta
This commit is contained in:
@ -6,6 +6,8 @@ import (
|
||||
"os"
|
||||
|
||||
"next-terminal/server/api"
|
||||
"next-terminal/server/api/worker"
|
||||
mw "next-terminal/server/app/middleware"
|
||||
"next-terminal/server/config"
|
||||
"next-terminal/server/log"
|
||||
"next-terminal/server/resource"
|
||||
@ -48,7 +50,7 @@ func setupRoutes() *echo.Echo {
|
||||
fileServer := http.FileServer(http.FS(fsys))
|
||||
handler := WrapHandler(fileServer)
|
||||
e.GET("/", handler)
|
||||
e.GET("/asciinema.html", handler)
|
||||
e.GET("/branding", api.Branding)
|
||||
e.GET("/favicon.ico", handler)
|
||||
e.GET("/static/*", handler)
|
||||
|
||||
@ -58,9 +60,11 @@ func setupRoutes() *echo.Echo {
|
||||
AllowOrigins: []string{"*"},
|
||||
AllowMethods: []string{http.MethodGet, http.MethodHead, http.MethodPut, http.MethodPatch, http.MethodPost, http.MethodDelete},
|
||||
}))
|
||||
e.Use(ErrorHandler)
|
||||
e.Use(TcpWall)
|
||||
e.Use(Auth)
|
||||
e.Use(mw.ErrorHandler)
|
||||
e.Use(mw.TcpWall)
|
||||
e.Use(mw.Auth)
|
||||
//e.Use(RBAC)
|
||||
e.Use(middleware.Gzip())
|
||||
|
||||
accountApi := new(api.AccountApi)
|
||||
guacamoleApi := new(api.GuacamoleApi)
|
||||
@ -71,7 +75,6 @@ func setupRoutes() *echo.Echo {
|
||||
CommandApi := new(api.CommandApi)
|
||||
CredentialApi := new(api.CredentialApi)
|
||||
SessionApi := new(api.SessionApi)
|
||||
ResourceSharerApi := new(api.ResourceSharerApi)
|
||||
LoginLogApi := new(api.LoginLogApi)
|
||||
PropertyApi := new(api.PropertyApi)
|
||||
OverviewApi := new(api.OverviewApi)
|
||||
@ -81,14 +84,17 @@ func setupRoutes() *echo.Echo {
|
||||
StrategyApi := new(api.StrategyApi)
|
||||
AccessGatewayApi := new(api.AccessGatewayApi)
|
||||
BackupApi := new(api.BackupApi)
|
||||
TenantApi := new(api.TenantApi)
|
||||
RoleApi := new(api.RoleApi)
|
||||
LoginPolicyApi := new(api.LoginPolicyApi)
|
||||
StorageLogApi := new(api.StorageLogApi)
|
||||
AuthorisedApi := new(api.AuthorisedApi)
|
||||
|
||||
e.POST("/login", accountApi.LoginEndpoint)
|
||||
e.POST("/loginWithTotp", accountApi.LoginWithTotpEndpoint)
|
||||
|
||||
account := e.Group("/account")
|
||||
{
|
||||
account.GET("/info", accountApi.InfoEndpoint)
|
||||
account.GET("/assets", accountApi.AccountAssetEndpoint)
|
||||
account.GET("/storage", accountApi.AccountStorageEndpoint)
|
||||
account.POST("/logout", accountApi.LogoutEndpoint)
|
||||
account.POST("/change-password", accountApi.ChangePasswordEndpoint)
|
||||
@ -97,30 +103,54 @@ func setupRoutes() *echo.Echo {
|
||||
account.POST("/confirm-totp", accountApi.ConfirmTOTPEndpoint)
|
||||
account.GET("/access-token", accountApi.AccessTokenGetEndpoint)
|
||||
account.POST("/access-token", accountApi.AccessTokenGenEndpoint)
|
||||
account.DELETE("/access-token", accountApi.AccessTokenDelEndpoint)
|
||||
}
|
||||
|
||||
users := e.Group("/users", Admin)
|
||||
_worker := e.Group("/worker")
|
||||
{
|
||||
users.POST("", UserApi.UserCreateEndpoint)
|
||||
users.GET("/paging", UserApi.UserPagingEndpoint)
|
||||
users.PUT("/:id", UserApi.UserUpdateEndpoint)
|
||||
users.PATCH("/:id/status", UserApi.UserUpdateStatusEndpoint)
|
||||
users.DELETE("/:id", UserApi.UserDeleteEndpoint)
|
||||
users.GET("/:id", UserApi.UserGetEndpoint)
|
||||
users.POST("/:id/change-password", UserApi.UserChangePasswordEndpoint)
|
||||
users.POST("/:id/reset-totp", UserApi.UserResetTotpEndpoint)
|
||||
commands := _worker.Group("/commands")
|
||||
{
|
||||
workerCommandApi := new(worker.WorkCommandApi)
|
||||
commands.GET("", workerCommandApi.CommandAllEndpoint)
|
||||
commands.GET("/paging", workerCommandApi.CommandPagingEndpoint)
|
||||
commands.POST("", workerCommandApi.CommandCreateEndpoint)
|
||||
commands.PUT("/:id", workerCommandApi.CommandUpdateEndpoint)
|
||||
commands.DELETE("/:id", workerCommandApi.CommandDeleteEndpoint)
|
||||
commands.GET("/:id", workerCommandApi.CommandGetEndpoint)
|
||||
}
|
||||
|
||||
assets := _worker.Group("/assets")
|
||||
{
|
||||
workAssetApi := new(worker.WorkAssetApi)
|
||||
assets.GET("/paging", workAssetApi.PagingEndpoint)
|
||||
assets.GET("/tags", workAssetApi.TagsEndpoint)
|
||||
}
|
||||
}
|
||||
|
||||
userGroups := e.Group("/user-groups", Admin)
|
||||
users := e.Group("/users", mw.Admin)
|
||||
{
|
||||
users.GET("", UserApi.AllEndpoint)
|
||||
users.GET("/paging", UserApi.PagingEndpoint)
|
||||
users.POST("", UserApi.CreateEndpoint)
|
||||
users.PUT("/:id", UserApi.UpdateEndpoint)
|
||||
users.PATCH("/:id/status", UserApi.UpdateStatusEndpoint)
|
||||
users.DELETE("/:id", UserApi.DeleteEndpoint)
|
||||
users.GET("/:id", UserApi.GetEndpoint)
|
||||
users.POST("/:id/change-password", UserApi.ChangePasswordEndpoint)
|
||||
users.POST("/:id/reset-totp", UserApi.ResetTotpEndpoint)
|
||||
}
|
||||
|
||||
userGroups := e.Group("/user-groups", mw.Admin)
|
||||
{
|
||||
userGroups.POST("", UserGroupApi.UserGroupCreateEndpoint)
|
||||
userGroups.GET("", UserGroupApi.UserGroupAllEndpoint)
|
||||
userGroups.GET("/paging", UserGroupApi.UserGroupPagingEndpoint)
|
||||
userGroups.PUT("/:id", UserGroupApi.UserGroupUpdateEndpoint)
|
||||
userGroups.DELETE("/:id", UserGroupApi.UserGroupDeleteEndpoint)
|
||||
userGroups.GET("/:id", UserGroupApi.UserGroupGetEndpoint)
|
||||
}
|
||||
|
||||
assets := e.Group("/assets", Admin)
|
||||
assets := e.Group("/assets", mw.Admin)
|
||||
{
|
||||
assets.GET("", AssetApi.AssetAllEndpoint)
|
||||
assets.POST("", AssetApi.AssetCreateEndpoint)
|
||||
@ -135,7 +165,7 @@ func setupRoutes() *echo.Echo {
|
||||
|
||||
e.GET("/tags", AssetApi.AssetTagsEndpoint)
|
||||
|
||||
commands := e.Group("/commands")
|
||||
commands := e.Group("/commands", mw.Admin)
|
||||
{
|
||||
commands.GET("", CommandApi.CommandAllEndpoint)
|
||||
commands.GET("/paging", CommandApi.CommandPagingEndpoint)
|
||||
@ -143,12 +173,12 @@ func setupRoutes() *echo.Echo {
|
||||
commands.PUT("/:id", CommandApi.CommandUpdateEndpoint)
|
||||
commands.DELETE("/:id", CommandApi.CommandDeleteEndpoint)
|
||||
commands.GET("/:id", CommandApi.CommandGetEndpoint)
|
||||
commands.POST("/:id/change-owner", CommandApi.CommandChangeOwnerEndpoint, Admin)
|
||||
commands.POST("/:id/change-owner", CommandApi.CommandChangeOwnerEndpoint, mw.Admin)
|
||||
}
|
||||
|
||||
credentials := e.Group("/credentials", Admin)
|
||||
credentials := e.Group("/credentials", mw.Admin)
|
||||
{
|
||||
credentials.GET("", CredentialApi.CredentialAllEndpoint)
|
||||
//credentials.GET("", CredentialApi.CredentialAllEndpoint)
|
||||
credentials.GET("/paging", CredentialApi.CredentialPagingEndpoint)
|
||||
credentials.POST("", CredentialApi.CredentialCreateEndpoint)
|
||||
credentials.PUT("/:id", CredentialApi.CredentialUpdateEndpoint)
|
||||
@ -159,15 +189,15 @@ func setupRoutes() *echo.Echo {
|
||||
|
||||
sessions := e.Group("/sessions")
|
||||
{
|
||||
sessions.GET("/paging", Admin(SessionApi.SessionPagingEndpoint))
|
||||
sessions.POST("/:id/disconnect", Admin(SessionApi.SessionDisconnectEndpoint))
|
||||
sessions.DELETE("/:id", Admin(SessionApi.SessionDeleteEndpoint))
|
||||
sessions.GET("/:id/recording", Admin(SessionApi.SessionRecordingEndpoint))
|
||||
sessions.GET("/:id", Admin(SessionApi.SessionGetEndpoint))
|
||||
sessions.POST("/:id/reviewed", Admin(SessionApi.SessionReviewedEndpoint))
|
||||
sessions.POST("/:id/unreviewed", Admin(SessionApi.SessionUnViewedEndpoint))
|
||||
sessions.POST("/clear", Admin(SessionApi.SessionClearEndpoint))
|
||||
sessions.POST("/reviewed", Admin(SessionApi.SessionReviewedAllEndpoint))
|
||||
sessions.GET("/paging", mw.Admin(SessionApi.SessionPagingEndpoint))
|
||||
sessions.POST("/:id/disconnect", mw.Admin(SessionApi.SessionDisconnectEndpoint))
|
||||
sessions.DELETE("/:id", mw.Admin(SessionApi.SessionDeleteEndpoint))
|
||||
sessions.GET("/:id/recording", mw.Admin(SessionApi.SessionRecordingEndpoint))
|
||||
sessions.GET("/:id", mw.Admin(SessionApi.SessionGetEndpoint))
|
||||
sessions.POST("/:id/reviewed", mw.Admin(SessionApi.SessionReviewedEndpoint))
|
||||
sessions.POST("/:id/unreviewed", mw.Admin(SessionApi.SessionUnViewedEndpoint))
|
||||
sessions.POST("/clear", mw.Admin(SessionApi.SessionClearEndpoint))
|
||||
sessions.POST("/reviewed", mw.Admin(SessionApi.SessionReviewedAllEndpoint))
|
||||
|
||||
sessions.POST("", SessionApi.SessionCreateEndpoint)
|
||||
sessions.POST("/:id/connect", SessionApi.SessionConnectEndpoint)
|
||||
@ -187,34 +217,35 @@ func setupRoutes() *echo.Echo {
|
||||
sessions.POST("/:id/rename", SessionApi.SessionRenameEndpoint)
|
||||
}
|
||||
|
||||
resourceSharers := e.Group("/resource-sharers", Admin)
|
||||
{
|
||||
resourceSharers.GET("", ResourceSharerApi.RSGetSharersEndPoint)
|
||||
resourceSharers.POST("/remove-resources", ResourceSharerApi.ResourceRemoveByUserIdAssignEndPoint)
|
||||
resourceSharers.POST("/add-resources", ResourceSharerApi.ResourceAddByUserIdAssignEndPoint)
|
||||
}
|
||||
|
||||
loginLogs := e.Group("login-logs", Admin)
|
||||
loginLogs := e.Group("login-logs", mw.Admin)
|
||||
{
|
||||
loginLogs.GET("/paging", LoginLogApi.LoginLogPagingEndpoint)
|
||||
loginLogs.DELETE("/:id", LoginLogApi.LoginLogDeleteEndpoint)
|
||||
loginLogs.POST("/clear", LoginLogApi.LoginLogClearEndpoint)
|
||||
}
|
||||
|
||||
properties := e.Group("properties", Admin)
|
||||
storageLogs := e.Group("storage-logs", mw.Admin)
|
||||
{
|
||||
storageLogs.GET("/paging", StorageLogApi.PagingEndpoint)
|
||||
storageLogs.DELETE("/:id", StorageLogApi.DeleteEndpoint)
|
||||
storageLogs.POST("/clear", StorageLogApi.ClearEndpoint)
|
||||
}
|
||||
|
||||
properties := e.Group("properties", mw.Admin)
|
||||
{
|
||||
properties.GET("", PropertyApi.PropertyGetEndpoint)
|
||||
properties.PUT("", PropertyApi.PropertyUpdateEndpoint)
|
||||
}
|
||||
|
||||
overview := e.Group("overview", Admin)
|
||||
overview := e.Group("overview", mw.Admin)
|
||||
{
|
||||
overview.GET("/counter", OverviewApi.OverviewCounterEndPoint)
|
||||
overview.GET("/asset", OverviewApi.OverviewAssetEndPoint)
|
||||
overview.GET("/access", OverviewApi.OverviewAccessEndPoint)
|
||||
overview.GET("/date-counter", OverviewApi.OverviewDateCounterEndPoint)
|
||||
overview.GET("/ps", OverviewApi.OverviewPS)
|
||||
}
|
||||
|
||||
jobs := e.Group("/jobs", Admin)
|
||||
jobs := e.Group("/jobs", mw.Admin)
|
||||
{
|
||||
jobs.POST("", JobApi.JobCreateEndpoint)
|
||||
jobs.GET("/paging", JobApi.JobPagingEndpoint)
|
||||
@ -223,11 +254,12 @@ func setupRoutes() *echo.Echo {
|
||||
jobs.POST("/:id/exec", JobApi.JobExecEndpoint)
|
||||
jobs.DELETE("/:id", JobApi.JobDeleteEndpoint)
|
||||
jobs.GET("/:id", JobApi.JobGetEndpoint)
|
||||
jobs.GET("/:id/logs", JobApi.JobGetLogsEndpoint)
|
||||
|
||||
jobs.GET("/:id/logs/paging", JobApi.JobGetLogsEndpoint)
|
||||
jobs.DELETE("/:id/logs", JobApi.JobDeleteLogsEndpoint)
|
||||
}
|
||||
|
||||
securities := e.Group("/securities", Admin)
|
||||
securities := e.Group("/securities", mw.Admin)
|
||||
{
|
||||
securities.POST("", SecurityApi.SecurityCreateEndpoint)
|
||||
securities.GET("/paging", SecurityApi.SecurityPagingEndpoint)
|
||||
@ -238,12 +270,12 @@ func setupRoutes() *echo.Echo {
|
||||
|
||||
storages := e.Group("/storages")
|
||||
{
|
||||
storages.GET("/paging", StorageApi.StoragePagingEndpoint, Admin)
|
||||
storages.POST("", StorageApi.StorageCreateEndpoint, Admin)
|
||||
storages.DELETE("/:id", StorageApi.StorageDeleteEndpoint, Admin)
|
||||
storages.PUT("/:id", StorageApi.StorageUpdateEndpoint, Admin)
|
||||
storages.GET("/shares", StorageApi.StorageSharesEndpoint, Admin)
|
||||
storages.GET("/:id", StorageApi.StorageGetEndpoint, Admin)
|
||||
storages.GET("/paging", StorageApi.StoragePagingEndpoint, mw.Admin)
|
||||
storages.POST("", StorageApi.StorageCreateEndpoint, mw.Admin)
|
||||
storages.DELETE("/:id", StorageApi.StorageDeleteEndpoint, mw.Admin)
|
||||
storages.PUT("/:id", StorageApi.StorageUpdateEndpoint, mw.Admin)
|
||||
storages.GET("/shares", StorageApi.StorageSharesEndpoint, mw.Admin)
|
||||
storages.GET("/:id", StorageApi.StorageGetEndpoint, mw.Admin)
|
||||
|
||||
storages.POST("/:storageId/ls", StorageApi.StorageLsEndpoint)
|
||||
storages.GET("/:storageId/download", StorageApi.StorageDownloadEndpoint)
|
||||
@ -254,16 +286,17 @@ func setupRoutes() *echo.Echo {
|
||||
storages.POST("/:storageId/edit", StorageApi.StorageEditEndpoint)
|
||||
}
|
||||
|
||||
strategies := e.Group("/strategies", Admin)
|
||||
strategies := e.Group("/strategies", mw.Admin)
|
||||
{
|
||||
strategies.GET("", StrategyApi.StrategyAllEndpoint)
|
||||
strategies.GET("/paging", StrategyApi.StrategyPagingEndpoint)
|
||||
strategies.POST("", StrategyApi.StrategyCreateEndpoint)
|
||||
strategies.DELETE("/:id", StrategyApi.StrategyDeleteEndpoint)
|
||||
strategies.PUT("/:id", StrategyApi.StrategyUpdateEndpoint)
|
||||
strategies.GET("/:id", StrategyApi.GetEndpoint)
|
||||
}
|
||||
|
||||
accessGateways := e.Group("/access-gateways", Admin)
|
||||
accessGateways := e.Group("/access-gateways", mw.Admin)
|
||||
{
|
||||
accessGateways.GET("", AccessGatewayApi.AccessGatewayAllEndpoint)
|
||||
accessGateways.POST("", AccessGatewayApi.AccessGatewayCreateEndpoint)
|
||||
@ -273,11 +306,57 @@ func setupRoutes() *echo.Echo {
|
||||
accessGateways.GET("/:id", AccessGatewayApi.AccessGatewayGetEndpoint)
|
||||
}
|
||||
|
||||
backup := e.Group("/backup", Admin)
|
||||
backup := e.Group("/backup", mw.Admin)
|
||||
{
|
||||
backup.GET("/export", BackupApi.BackupExportEndpoint)
|
||||
backup.POST("/import", BackupApi.BackupImportEndpoint)
|
||||
}
|
||||
|
||||
tenants := e.Group("/tenants", mw.Admin)
|
||||
{
|
||||
tenants.GET("", TenantApi.AllEndpoint)
|
||||
tenants.GET("/paging", TenantApi.PagingEndpoint)
|
||||
tenants.POST("", TenantApi.CreateEndpoint)
|
||||
tenants.DELETE("/:id", TenantApi.DeleteEndpoint)
|
||||
tenants.PUT("/:id", TenantApi.UpdateEndpoint)
|
||||
}
|
||||
|
||||
roles := e.Group("/roles", mw.Admin)
|
||||
{
|
||||
roles.GET("", RoleApi.AllEndpoint)
|
||||
roles.GET("/paging", RoleApi.PagingEndpoint)
|
||||
roles.GET("/:id", RoleApi.GetEndpoint)
|
||||
roles.POST("", RoleApi.CreateEndpoint)
|
||||
roles.DELETE("/:id", RoleApi.DeleteEndpoint)
|
||||
roles.PUT("/:id", RoleApi.UpdateEndpoint)
|
||||
}
|
||||
|
||||
loginPolicies := e.Group("/login-policies", mw.Admin)
|
||||
{
|
||||
loginPolicies.GET("/paging", LoginPolicyApi.PagingEndpoint)
|
||||
loginPolicies.GET("/:id", LoginPolicyApi.GetEndpoint)
|
||||
loginPolicies.GET("/:id/users/paging", LoginPolicyApi.GetUserPageEndpoint)
|
||||
loginPolicies.GET("/:id/users/id", LoginPolicyApi.GetUserIdEndpoint)
|
||||
loginPolicies.POST("", LoginPolicyApi.CreateEndpoint)
|
||||
loginPolicies.DELETE("/:id", LoginPolicyApi.DeleteEndpoint)
|
||||
loginPolicies.PUT("/:id", LoginPolicyApi.UpdateEndpoint)
|
||||
loginPolicies.POST("/:id/bind", LoginPolicyApi.BindEndpoint)
|
||||
loginPolicies.POST("/:id/unbind", LoginPolicyApi.UnbindEndpoint)
|
||||
}
|
||||
|
||||
authorised := e.Group("/authorised", mw.Admin)
|
||||
{
|
||||
authorised.GET("/assets/paging", AuthorisedApi.PagingAsset)
|
||||
authorised.GET("/users/paging", AuthorisedApi.PagingUser)
|
||||
authorised.GET("/user-groups/paging", AuthorisedApi.PagingUserGroup)
|
||||
authorised.GET("/selected", AuthorisedApi.Selected)
|
||||
authorised.POST("/assets", AuthorisedApi.AuthorisedAssets)
|
||||
authorised.POST("/users", AuthorisedApi.AuthorisedUsers)
|
||||
authorised.POST("/user-groups", AuthorisedApi.AuthorisedUserGroups)
|
||||
authorised.DELETE("/:id", AuthorisedApi.Delete)
|
||||
}
|
||||
|
||||
e.GET("/menus", RoleApi.TreeMenus, mw.Admin)
|
||||
|
||||
return e
|
||||
}
|
||||
|
Reference in New Issue
Block a user