From 9da29ed1e6d0bae94e011790b688030ad8091c46 Mon Sep 17 00:00:00 2001 From: JIN XiaoFeng Date: Thu, 31 Aug 2023 15:40:10 +0800 Subject: [PATCH] [Controller] add email ntml --- .../db/mysql/migration/rawsql/init.sql | 5 +- .../mysql/migration/rawsql/issu/6.3.1.48.sql | 6 +++ .../controller/db/mysql/migration/version.go | 2 +- server/controller/db/mysql/model.go | 19 ++++---- server/controller/http/service/mail_server.go | 24 ++++++---- server/controller/model/model.go | 48 +++++++++++-------- 6 files changed, 66 insertions(+), 38 deletions(-) create mode 100644 server/controller/db/mysql/migration/rawsql/issu/6.3.1.48.sql diff --git a/server/controller/db/mysql/migration/rawsql/init.sql b/server/controller/db/mysql/migration/rawsql/init.sql index 76a3f0ff1cd..f7c189ce830 100644 --- a/server/controller/db/mysql/migration/rawsql/init.sql +++ b/server/controller/db/mysql/migration/rawsql/init.sql @@ -1885,7 +1885,7 @@ CREATE TABLE IF NOT EXISTS go_genesis_process ( vtap_id INTEGER NOT NULL DEFAULT 0, pid INTEGER NOT NULL, lcuuid CHAR(64) DEFAULT '', - name TEXT, + name TEXT, process_name TEXT, cmd_line TEXT, user VARCHAR(256) DEFAULT '', @@ -2424,6 +2424,9 @@ CREATE TABLE IF NOT EXISTS mail_server ( user TEXT NOT NULL, password TEXT NOT NULL, security TEXT Not NULL, + ntlm_enabled int, + ntlm_name TEXT, + ntlm_password TEXT, lcuuid CHAR(64) DEFAULT '' )ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; TRUNCATE TABLE mail_server; diff --git a/server/controller/db/mysql/migration/rawsql/issu/6.3.1.48.sql b/server/controller/db/mysql/migration/rawsql/issu/6.3.1.48.sql new file mode 100644 index 00000000000..bbdf29dac40 --- /dev/null +++ b/server/controller/db/mysql/migration/rawsql/issu/6.3.1.48.sql @@ -0,0 +1,6 @@ +ALTER TABLE mail_server ADD COLUMN ntlm_enabled int; +ALTER TABLE mail_server ADD COLUMN ntlm_name TEXT; +ALTER TABLE mail_server ADD COLUMN ntlm_password TEXT; + +UPDATE db_version SET version='6.3.1.48'; + diff --git a/server/controller/db/mysql/migration/version.go b/server/controller/db/mysql/migration/version.go index 86f3f922cab..02386e29b6a 100644 --- a/server/controller/db/mysql/migration/version.go +++ b/server/controller/db/mysql/migration/version.go @@ -18,5 +18,5 @@ package migration const ( DB_VERSION_TABLE = "db_version" - DB_VERSION_EXPECTED = "6.3.1.47" + DB_VERSION_EXPECTED = "6.3.1.48" ) diff --git a/server/controller/db/mysql/model.go b/server/controller/db/mysql/model.go index 0e3373f9c97..f64075c2227 100644 --- a/server/controller/db/mysql/model.go +++ b/server/controller/db/mysql/model.go @@ -1379,14 +1379,17 @@ func (Plugin) TableName() string { } type MailServer struct { - ID int `gorm:"primaryKey;column:id;type:int;not null" json:"ID"` - Status int `gorm:"column:status;type:int;not null" json:"STATUS"` - Host string `gorm:"column:host;type:text;not null" json:"HOST"` - Port int `gorm:"column:port;type:int;not null" json:"PORT"` - User string `gorm:"column:user;type:text;not null" json:"USER"` - Password string `gorm:"column:password;type:text;not null" json:"PASSWORD"` - Security string `gorm:"column:security;type:text;not null" json:"SECURITY"` - Lcuuid string `gorm:"unique;column:lcuuid;type:char(64)" json:"LCUUID"` + ID int `gorm:"primaryKey;column:id;type:int;not null" json:"ID"` + Status int `gorm:"column:status;type:int;not null" json:"STATUS"` + Host string `gorm:"column:host;type:text;not null" json:"HOST"` + Port int `gorm:"column:port;type:int;not null" json:"PORT"` + User string `gorm:"column:user;type:text;not null" json:"USER"` + Password string `gorm:"column:password;type:text;not null" json:"PASSWORD"` + Security string `gorm:"column:security;type:text;not null" json:"SECURITY"` + NtlmEnabled int `gorm:"column:ntlm_enabled;type:int" json:"NTLM_ENABLED"` + NtlmName string `gorm:"column:ntlm_name;type:text" json:"NTLM_NAME"` + NtlmPassword string `gorm:"column:ntlm_password;type:text" json:"NTLM_PASSWORD"` + Lcuuid string `gorm:"unique;column:lcuuid;type:char(64)" json:"LCUUID"` } func (MailServer) TableName() string { diff --git a/server/controller/http/service/mail_server.go b/server/controller/http/service/mail_server.go index 12e1fab0e03..638b205f6d1 100644 --- a/server/controller/http/service/mail_server.go +++ b/server/controller/http/service/mail_server.go @@ -44,14 +44,17 @@ func GetMailServer(filter map[string]interface{}) (resp []model.MailServer, err } for _, mail := range mails { mailResp := model.MailServer{ - ID: mail.ID, - Status: mail.Status, - Host: mail.Host, - Port: mail.Port, - User: mail.User, - Password: mail.Password, - Security: mail.Security, - Lcuuid: mail.Lcuuid, + ID: mail.ID, + Status: mail.Status, + Host: mail.Host, + Port: mail.Port, + User: mail.User, + Password: mail.Password, + Security: mail.Security, + NtlmEnabled: mail.NtlmEnabled, + NtlmName: mail.NtlmName, + NtlmPassword: mail.NtlmPassword, + Lcuuid: mail.Lcuuid, } response = append(response, mailResp) } @@ -67,6 +70,9 @@ func CreateMailServer(mailCreate model.MailServerCreate) (model.MailServer, erro mailServer.User = mailCreate.User mailServer.Password = mailCreate.Password mailServer.Security = mailCreate.Security + mailServer.NtlmEnabled = mailCreate.NtlmEnabled + mailServer.NtlmName = mailCreate.NtlmName + mailServer.NtlmPassword = mailCreate.NtlmPassword mailServer.Lcuuid = uuid.New().String() mysql.Db.Create(&mailServer) @@ -88,7 +94,7 @@ func UpdateMailServer(lcuuid string, mailServerUpdate map[string]interface{}) (m log.Infof("update mailServer(%s) config %v", mailServer.User, mailServerUpdate) - for _, key := range []string{"STATUS", "HOST", "PORT", "USER", "PASSWORD", "SECURITY"} { + for _, key := range []string{"STATUS", "HOST", "PORT", "USER", "PASSWORD", "SECURITY", "NTLM_ENABLED", "NTLM_NAME", "NTLM_PASSWORD"} { if _, ok := mailServerUpdate[key]; ok { dbUpdateMap[strings.ToLower(key)] = mailServerUpdate[key] } diff --git a/server/controller/model/model.go b/server/controller/model/model.go index a061db02aca..43578912f33 100644 --- a/server/controller/model/model.go +++ b/server/controller/model/model.go @@ -837,30 +837,40 @@ type Plugin struct { } type MailServerCreate struct { - Status int `json:"STATUS"` - Host string `json:"HOST" binding:"required"` - Port int `json:"PORT" binding:"required"` - User string `json:"USER" binding:"required"` - Password string `json:"PASSWORD" binding:"required"` - Security string `json:"SECURITY" binding:"required"` + Status int `json:"STATUS"` + Host string `json:"HOST" binding:"required"` + Port int `json:"PORT" binding:"required"` + User string `json:"USER" binding:"required"` + Password string `json:"PASSWORD" binding:"required"` + NtlmEnabled int `json:"NTLM_ENABLED"` + NtlmName string `json:"NTLM_NAME"` + NtlmPassword string `json:"NTLM_PASSWORD"` + Security string `json:"SECURITY" binding:"required"` } type MailServerUpdate struct { - Status int `json:"STATUS"` - Host string `json:"HOST"` - Port int `json:"PORT"` - User string `json:"USER"` - Password string `json:"PASSWORD"` + Status int `json:"STATUS"` + Host string `json:"HOST"` + Port int `json:"PORT"` + User string `json:"USER"` + Password string `json:"PASSWORD"` + NtlmEnabled int `json:"NTLM_ENABLED"` + NtlmName string `json:"NTLM_NAME"` + NtlmPassword string `json:"NTLM_PASSWORD"` + Security string `json:"SECURITY"` } type MailServer struct { - ID int `json:"ID"` - Status int `json:"STATUS"` - Host string `json:"HOST"` - Port int `json:"PORT"` - User string `json:"USER"` - Password string `json:"PASSWORD"` - Security string `json:"SECURITY"` - Lcuuid string `json:"LCUUID"` + ID int `json:"ID"` + Status int `json:"STATUS"` + Host string `json:"HOST"` + Port int `json:"PORT"` + User string `json:"USER"` + Password string `json:"PASSWORD"` + Security string `json:"SECURITY"` + NtlmEnabled int `json:"NTLM_ENABLED"` + NtlmName string `json:"NTLM_NAME"` + NtlmPassword string `json:"NTLM_PASSWORD"` + Lcuuid string `json:"LCUUID"` }