package server import ( "net/http" ) func (s *Server) requireAuth(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { cookie, err := r.Cookie("ydropbox_session") if err != nil { http.Error(w, "Unauthorized", http.StatusUnauthorized) return } s.mu.Lock() _, exists := s.sessions[cookie.Value] s.mu.Unlock() if !exists { http.Error(w, "Unauthorized", http.StatusUnauthorized) return } next(w, r) } } func (s *Server) requireAuthPage(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { cookie, err := r.Cookie("ydropbox_session") if err != nil { http.Redirect(w, r, "/login", http.StatusFound) return } s.mu.Lock() _, exists := s.sessions[cookie.Value] s.mu.Unlock() if !exists { http.Redirect(w, r, "/login", http.StatusFound) return } next(w, r) } }