You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							45 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							45 lines
						
					
					
						
							1.2 KiB
						
					
					
				| package handlers | |
| 
 | |
| import ( | |
| 	"net/http" | |
| 
 | |
| 	"github.com/gin-gonic/gin" | |
| 	"github.com/seaweedfs/seaweedfs/weed/admin/dash" | |
| 	"github.com/seaweedfs/seaweedfs/weed/admin/view/layout" | |
| ) | |
| 
 | |
| // AuthHandlers contains authentication-related HTTP handlers | |
| type AuthHandlers struct { | |
| 	adminServer *dash.AdminServer | |
| } | |
| 
 | |
| // NewAuthHandlers creates a new instance of AuthHandlers | |
| func NewAuthHandlers(adminServer *dash.AdminServer) *AuthHandlers { | |
| 	return &AuthHandlers{ | |
| 		adminServer: adminServer, | |
| 	} | |
| } | |
| 
 | |
| // ShowLogin displays the login page | |
| func (a *AuthHandlers) ShowLogin(c *gin.Context) { | |
| 	errorMessage := c.Query("error") | |
| 
 | |
| 	// Render login template | |
| 	c.Header("Content-Type", "text/html") | |
| 	loginComponent := layout.LoginForm(c, "SeaweedFS Admin", errorMessage) | |
| 	err := loginComponent.Render(c.Request.Context(), c.Writer) | |
| 	if err != nil { | |
| 		c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to render login template: " + err.Error()}) | |
| 		return | |
| 	} | |
| } | |
| 
 | |
| // HandleLogin handles login form submission | |
| func (a *AuthHandlers) HandleLogin(username, password string) gin.HandlerFunc { | |
| 	return a.adminServer.HandleLogin(username, password) | |
| } | |
| 
 | |
| // HandleLogout handles user logout | |
| func (a *AuthHandlers) HandleLogout(c *gin.Context) { | |
| 	a.adminServer.HandleLogout(c) | |
| }
 |