@@ -49,6 +49,12 @@ func (service *MercuryFsService) authenticate(writer http.ResponseWriter, reques
4949 }
5050}
5151
52+ func (service * MercuryFsService ) logout (w http.ResponseWriter , r * http.Request ) {
53+ authToken := r .Header .Get ("Authorization" )
54+ service .Users .remove (authToken )
55+ w .WriteHeader (http .StatusOK )
56+ }
57+
5258func (service * MercuryFsService ) checkAuthHeader (w http.ResponseWriter , r * http.Request ) (user * HdaUser ) {
5359 authToken := r .Header .Get ("Authorization" )
5460 user = service .Users .find (authToken )
@@ -60,14 +66,19 @@ func (service *MercuryFsService) checkAuthHeader(w http.ResponseWriter, r *http.
6066
6167func (service * MercuryFsService ) authMiddleware (pass http.HandlerFunc ) http.HandlerFunc {
6268 return func (w http.ResponseWriter , r * http.Request ) {
63- service .checkAuthHeader (w , r )
64- pass (w , r )
69+ user := service .checkAuthHeader (w , r )
70+ if user != nil {
71+ pass (w , r )
72+ }
6573 }
6674}
6775
6876func (service * MercuryFsService ) shareReadAccess (pass http.HandlerFunc ) http.HandlerFunc {
6977 return func (w http.ResponseWriter , r * http.Request ) {
7078 user := service .checkAuthHeader (w , r )
79+ if user == nil {
80+ return
81+ }
7182 shareName := r .URL .Query ().Get ("s" )
7283 if access , err := user .HasReadAccess (shareName ); ! access {
7384 if err == nil {
@@ -84,6 +95,9 @@ func (service *MercuryFsService) shareReadAccess(pass http.HandlerFunc) http.Han
8495func (service * MercuryFsService ) shareWriteAccess (pass http.HandlerFunc ) http.HandlerFunc {
8596 return func (w http.ResponseWriter , r * http.Request ) {
8697 user := service .checkAuthHeader (w , r )
98+ if user == nil {
99+ return
100+ }
87101 shareName := r .URL .Query ().Get ("s" )
88102 if access , err := user .HasWriteAccess (shareName ); ! access {
89103 if err == nil {
0 commit comments