feat: adding smtp server permission (#20)

This commit is contained in:
silenceqi 2024-12-10 15:55:48 +08:00 committed by GitHub
parent bbf4c10c89
commit 3dd3ba9db0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 8 deletions

View File

@ -38,6 +38,8 @@ const (
CommandRead = "system.command:read" CommandRead = "system.command:read"
CredentialAll = "system.credential:all" CredentialAll = "system.credential:all"
CredentialRead = "system.credential:read" CredentialRead = "system.credential:read"
SmtpServerAll = "system.smtp_server:all"
SmtpServerRead = "system.smtp_server:read"
InstanceRead = "gateway.instance:read" InstanceRead = "gateway.instance:read"
InstanceAll = "gateway.instance:all" InstanceAll = "gateway.instance:all"
@ -142,6 +144,8 @@ const (
PermissionMigrationTaskWrite = "task:write" PermissionMigrationTaskWrite = "task:write"
PermissionComparisonTaskRead = "comparison_task:read" PermissionComparisonTaskRead = "comparison_task:read"
PermissionComparisonTaskWrite = "comparison_task:write" PermissionComparisonTaskWrite = "comparison_task:write"
PermissionSmtpServerRead = "smtp_server:read"
PermissionSmtpServerWrite = "smtp_server:write"
) )
var ( var (
@ -217,6 +221,8 @@ var (
DashboardAllPermission = []string{PermissionLayoutRead, PermissionLayoutWrite} DashboardAllPermission = []string{PermissionLayoutRead, PermissionLayoutWrite}
WorkbenchReadPermission = []string{PermissionElasticsearchClusterRead, PermissionActivityRead, PermissionAlertMessageRead, PermissionElasticsearchMetricRead} WorkbenchReadPermission = []string{PermissionElasticsearchClusterRead, PermissionActivityRead, PermissionAlertMessageRead, PermissionElasticsearchMetricRead}
WorkbenchAllPermission = WorkbenchReadPermission WorkbenchAllPermission = WorkbenchReadPermission
SmtpServerReadPermission = []string{PermissionSmtpServerRead}
SmtpServerAllPermission = []string{PermissionSmtpServerRead, PermissionSmtpServerWrite}
) )
var AdminPrivilege = []string{ var AdminPrivilege = []string{
@ -228,7 +234,7 @@ var AdminPrivilege = []string{
ClusterOverviewAll, MonitoringAll, ActivitiesAll, ClusterOverviewAll, MonitoringAll, ActivitiesAll,
AliasAll, AgentInstanceAll, CredentialAll, AliasAll, AgentInstanceAll, CredentialAll,
DataMigrationAll, DataComparisonAll, DashboardAll, DevtoolConsoleAll, DataMigrationAll, DataComparisonAll, DashboardAll, DevtoolConsoleAll,
WorkbenchAll, TenantCustomerAll, SubscriptionAll, AuditLogsAll, WorkbenchAll, TenantCustomerAll, SubscriptionAll, AuditLogsAll, SmtpServerAll,
} }
func init() { func init() {
@ -298,6 +304,8 @@ func init() {
SubscriptionRead: SubscriptionReadPermission, SubscriptionRead: SubscriptionReadPermission,
SubscriptionAll: SubscriptionAllPermission, SubscriptionAll: SubscriptionAllPermission,
SmtpServerRead: SmtpServerReadPermission,
SmtpServerAll: SmtpServerAllPermission,
} }
} }

View File

@ -29,6 +29,8 @@ package email
import ( import (
log "github.com/cihub/seelog" log "github.com/cihub/seelog"
"infini.sh/console/core"
"infini.sh/console/core/security/enum"
"infini.sh/console/model" "infini.sh/console/model"
"infini.sh/console/plugin/api/email/common" "infini.sh/console/plugin/api/email/common"
"infini.sh/framework/core/api" "infini.sh/framework/core/api"
@ -38,17 +40,17 @@ import (
) )
type EmailAPI struct { type EmailAPI struct {
api.Handler core.Handler
} }
func InitAPI() { func InitAPI() {
email := EmailAPI{} email := EmailAPI{}
api.HandleAPIMethod(api.POST, "/email/server/_test", email.testEmailServer) api.HandleAPIMethod(api.POST, "/email/server/_test", email.RequirePermission(email.testEmailServer, enum.PermissionSmtpServerRead))
api.HandleAPIMethod(api.GET, "/email/server/:email_server_id", email.getEmailServer) api.HandleAPIMethod(api.GET, "/email/server/:email_server_id", email.RequirePermission(email.getEmailServer, enum.PermissionAlertRuleRead))
api.HandleAPIMethod(api.POST, "/email/server", email.createEmailServer) api.HandleAPIMethod(api.POST, "/email/server", email.RequirePermission(email.createEmailServer, enum.PermissionSmtpServerWrite))
api.HandleAPIMethod(api.PUT, "/email/server/:email_server_id", email.updateEmailServer) api.HandleAPIMethod(api.PUT, "/email/server/:email_server_id", email.RequirePermission(email.updateEmailServer, enum.PermissionSmtpServerWrite))
api.HandleAPIMethod(api.DELETE, "/email/server/:email_server_id", email.deleteEmailServer) api.HandleAPIMethod(api.DELETE, "/email/server/:email_server_id", email.RequirePermission(email.deleteEmailServer, enum.PermissionSmtpServerWrite))
api.HandleAPIMethod(api.GET, "/email/server/_search", email.searchEmailServer) api.HandleAPIMethod(api.GET, "/email/server/_search", email.RequirePermission(email.searchEmailServer, enum.PermissionSmtpServerRead))
credential.RegisterChangeEvent(func(cred *credential.Credential) { credential.RegisterChangeEvent(func(cred *credential.Credential) {
query := util.MapStr{ query := util.MapStr{