Browse Source

feat: create email channel for user after binding email

JustSong 2 years ago
parent
commit
2587f1533b
3 changed files with 18 additions and 1 deletions
  1. 7 0
      controller/channel.go
  2. 1 1
      controller/message.go
  3. 10 0
      controller/user.go

+ 7 - 0
controller/channel.go

@@ -93,6 +93,13 @@ func AddChannel(c *gin.Context) {
 		})
 		return
 	}
+	if channel_.Name == "email" {
+		c.JSON(http.StatusOK, gin.H{
+			"success": false,
+			"message": "不能使用系统保留名称",
+		})
+		return
+	}
 	cleanChannel := model.Channel{
 		Type:        channel_.Type,
 		UserId:      c.GetInt("id"),

+ 1 - 1
controller/message.go

@@ -118,7 +118,7 @@ func pushMessageHelper(c *gin.Context, message *model.Message) {
 	if err != nil {
 		c.JSON(http.StatusOK, gin.H{
 			"success": false,
-			"message": "无效的渠道名称",
+			"message": "无效的渠道名称" + message.Channel,
 		})
 		return
 	}

+ 10 - 0
controller/user.go

@@ -699,6 +699,16 @@ func EmailBind(c *gin.Context) {
 		})
 		return
 	}
+	// create email channel for this user
+	emailChannel := model.Channel{
+		Type:        model.TypeEmail,
+		UserId:      user.Id,
+		Name:        "email",
+		Description: "系统自动创建",
+		Status:      common.ChannelStatusEnabled,
+		CreatedTime: common.GetTimestamp(),
+	}
+	_ = emailChannel.Insert()
 	c.JSON(http.StatusOK, gin.H{
 		"success": true,
 		"message": "",