mirror of https://github.com/Xhofe/alist
				
				
				
			feat!: allow disable user (close #3241)
From this commit, the guest user will be disabled by defaultpull/3279/head
							parent
							
								
									7bf8071095
								
							
						
					
					
						commit
						3d0065bdcf
					
				| 
						 | 
				
			
			@ -48,6 +48,7 @@ func initUser() {
 | 
			
		|||
				Role:       model.GUEST,
 | 
			
		||||
				BasePath:   "/",
 | 
			
		||||
				Permission: 0,
 | 
			
		||||
				Disabled:   true,
 | 
			
		||||
			}
 | 
			
		||||
			if err := db.CreateUser(guest); err != nil {
 | 
			
		||||
				panic(err)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,6 +18,7 @@ type User struct {
 | 
			
		|||
	Password string `json:"password"`                                  // password
 | 
			
		||||
	BasePath string `json:"base_path"`                                 // base path
 | 
			
		||||
	Role     int    `json:"role"`                                      // user's role
 | 
			
		||||
	Disabled bool   `json:"disabled"`
 | 
			
		||||
	// Determine permissions by bit
 | 
			
		||||
	//  0: can see hidden files
 | 
			
		||||
	//  1: can access without password
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,6 +67,10 @@ func UpdateUser(c *gin.Context) {
 | 
			
		|||
	if req.OtpSecret == "" {
 | 
			
		||||
		req.OtpSecret = user.OtpSecret
 | 
			
		||||
	}
 | 
			
		||||
	if req.Disabled && req.IsAdmin() {
 | 
			
		||||
		common.ErrorStrResp(c, "admin user can not be disabled", 400)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if err := op.UpdateUser(&req); err != nil {
 | 
			
		||||
		common.ErrorResp(c, err, 500)
 | 
			
		||||
	} else {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,6 +33,11 @@ func Auth(c *gin.Context) {
 | 
			
		|||
			c.Abort()
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		if guest.Disabled {
 | 
			
		||||
			common.ErrorStrResp(c, "Guest user is disabled, login please", 401)
 | 
			
		||||
			c.Abort()
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		c.Set("user", guest)
 | 
			
		||||
		log.Debugf("use empty token: %+v", guest)
 | 
			
		||||
		c.Next()
 | 
			
		||||
| 
						 | 
				
			
			@ -50,6 +55,11 @@ func Auth(c *gin.Context) {
 | 
			
		|||
		c.Abort()
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if user.Disabled {
 | 
			
		||||
		common.ErrorStrResp(c, "Current user is disabled, replace please", 401)
 | 
			
		||||
		c.Abort()
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	c.Set("user", user)
 | 
			
		||||
	log.Debugf("use login token: %+v", user)
 | 
			
		||||
	c.Next()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue