mirror of
				https://github.com/songquanpeng/one-api.git
				synced 2025-11-04 15:53:42 +08:00 
			
		
		
		
	fix: check user's role when manage user (#30)
This commit is contained in:
		@@ -539,9 +539,23 @@ func ManageUser(c *gin.Context) {
 | 
			
		||||
	switch req.Action {
 | 
			
		||||
	case "disable":
 | 
			
		||||
		user.Status = common.UserStatusDisabled
 | 
			
		||||
		if user.Role == common.RoleRootUser {
 | 
			
		||||
			c.JSON(http.StatusOK, gin.H{
 | 
			
		||||
				"success": false,
 | 
			
		||||
				"message": "无法禁用超级管理员用户",
 | 
			
		||||
			})
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
	case "enable":
 | 
			
		||||
		user.Status = common.UserStatusEnabled
 | 
			
		||||
	case "delete":
 | 
			
		||||
		if user.Role == common.RoleRootUser {
 | 
			
		||||
			c.JSON(http.StatusOK, gin.H{
 | 
			
		||||
				"success": false,
 | 
			
		||||
				"message": "无法删除超级管理员用户",
 | 
			
		||||
			})
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		if err := user.Delete(); err != nil {
 | 
			
		||||
			c.JSON(http.StatusOK, gin.H{
 | 
			
		||||
				"success": false,
 | 
			
		||||
@@ -557,6 +571,13 @@ func ManageUser(c *gin.Context) {
 | 
			
		||||
			})
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		if user.Role >= common.RoleAdminUser {
 | 
			
		||||
			c.JSON(http.StatusOK, gin.H{
 | 
			
		||||
				"success": false,
 | 
			
		||||
				"message": "该用户已经是管理员",
 | 
			
		||||
			})
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		user.Role = common.RoleAdminUser
 | 
			
		||||
	case "demote":
 | 
			
		||||
		if user.Role == common.RoleRootUser {
 | 
			
		||||
@@ -566,6 +587,13 @@ func ManageUser(c *gin.Context) {
 | 
			
		||||
			})
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		if user.Role == common.RoleCommonUser {
 | 
			
		||||
			c.JSON(http.StatusOK, gin.H{
 | 
			
		||||
				"success": false,
 | 
			
		||||
				"message": "该用户已经是普通用户",
 | 
			
		||||
			})
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		user.Role = common.RoleCommonUser
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user