Skip to content

Commit caa3ecf

Browse files
committed
refactor(serverHandler): simplify vhostContext
1 parent faf4fb0 commit caa3ecf

File tree

4 files changed

+25
-52
lines changed

4 files changed

+25
-52
lines changed

src/serverHandler/aliasHandler.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ type aliasHandler struct {
8686
headersUrls pathHeadersList
8787
headersDirs pathHeadersList
8888

89-
vary string
90-
9189
postMiddlewares []middleware.Middleware
9290
}
9391

@@ -177,7 +175,7 @@ func (h *aliasHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
177175

178176
// final process
179177
if session.wantJson {
180-
h.json(w, r, data)
178+
h.json(w, r, session, data)
181179
} else if shouldServeAsContent(session.file, data.Item) {
182180
h.content(w, r, session, data)
183181
} else {
@@ -272,8 +270,6 @@ func newAliasHandler(
272270
hideDirs: vhostCtx.hideDirs,
273271
hideFiles: vhostCtx.hideFiles,
274272

275-
vary: vhostCtx.vary,
276-
277273
postMiddlewares: p.PostMiddlewares,
278274
}
279275
return h

src/serverHandler/json.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ func getJsonData(data *responseData) *jsonResponseData {
7272
}
7373
}
7474

75-
func (h *aliasHandler) json(w http.ResponseWriter, r *http.Request, data *responseData) {
75+
func (h *aliasHandler) json(w http.ResponseWriter, r *http.Request, session *sessionContext, data *responseData) {
7676
header := w.Header()
77-
header.Set("Vary", h.vary)
77+
header.Set("Vary", session.vary)
7878
header.Set("X-Content-Type-Options", "nosniff")
7979
header.Set("Content-Type", "application/json; charset=utf-8")
8080
if lacksHeader(header, "Cache-Control") {

src/serverHandler/sessionData.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ func (h *aliasHandler) getSessionData(r *http.Request) (session *sessionContext,
411411
}
412412

413413
restrictAccess, allowAccess := h.isAllowAccess(r, vhostReqPath, fsPath, file, item)
414-
vary := h.vary
414+
vary := "accept-encoding"
415415
if restrictAccess {
416416
vary += ", referer, origin"
417417
}

src/serverHandler/vhostHandler.go

+21-44
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,10 @@ import (
1111
)
1212

1313
type vhostContext struct {
14-
users *user.List
15-
theme theme.Theme
1614
logger *serverLog.Logger
15+
theme theme.Theme
1716

18-
shows *regexp.Regexp
19-
showDirs *regexp.Regexp
20-
showFiles *regexp.Regexp
21-
hides *regexp.Regexp
22-
hideDirs *regexp.Regexp
23-
hideFiles *regexp.Regexp
24-
17+
users *user.List
2518
authUrlsUsers pathIntsList
2619
authDirsUsers pathIntsList
2720
indexUrlsUsers pathIntsList
@@ -33,13 +26,18 @@ type vhostContext struct {
3326
deleteUrlsUsers pathIntsList
3427
deleteDirsUsers pathIntsList
3528

29+
shows *regexp.Regexp
30+
showDirs *regexp.Regexp
31+
showFiles *regexp.Regexp
32+
hides *regexp.Regexp
33+
hideDirs *regexp.Regexp
34+
hideFiles *regexp.Regexp
35+
3636
restrictAccessUrls pathStringsList
3737
restrictAccessDirs pathStringsList
3838

3939
headersUrls pathHeadersList
4040
headersDirs pathHeadersList
41-
42-
vary string
4341
}
4442

4543
func NewVhostHandler(
@@ -86,41 +84,22 @@ func NewVhostHandler(
8684
return nil, errs
8785
}
8886

89-
// auth/index/upload/mkdir/delete urls/dirs users
90-
authUrlsUsers := pathUsernamesToPathUids(users, p.AuthUrlsUsers)
91-
authDirsUsers := pathUsernamesToPathUids(users, p.AuthDirsUsers)
92-
indexUrlsUsers := pathUsernamesToPathUids(users, p.IndexUrlsUsers)
93-
indexDirsUsers := pathUsernamesToPathUids(users, p.IndexDirsUsers)
94-
uploadUrlsUsers := pathUsernamesToPathUids(users, p.UploadUrlsUsers)
95-
uploadDirsUsers := pathUsernamesToPathUids(users, p.UploadDirsUsers)
96-
mkdirUrlsUsers := pathUsernamesToPathUids(users, p.MkdirUrlsUsers)
97-
mkdirDirsUsers := pathUsernamesToPathUids(users, p.MkdirDirsUsers)
98-
deleteUrlsUsers := pathUsernamesToPathUids(users, p.DeleteUrlsUsers)
99-
deleteDirsUsers := pathUsernamesToPathUids(users, p.DeleteDirsUsers)
100-
101-
// restrict access
102-
restrictAccessUrls := newRestrictAccesses(p.RestrictAccessUrls)
103-
restrictAccessDirs := newRestrictAccesses(p.RestrictAccessDirs)
104-
105-
// `Vary` header
106-
vary := "accept-encoding"
107-
10887
// alias param
10988
vhostCtx := &vhostContext{
11089
theme: theme,
11190
logger: logger,
11291

11392
users: users,
114-
authUrlsUsers: authUrlsUsers,
115-
authDirsUsers: authDirsUsers,
116-
indexUrlsUsers: indexUrlsUsers,
117-
indexDirsUsers: indexDirsUsers,
118-
uploadUrlsUsers: uploadUrlsUsers,
119-
uploadDirsUsers: uploadDirsUsers,
120-
mkdirUrlsUsers: mkdirUrlsUsers,
121-
mkdirDirsUsers: mkdirDirsUsers,
122-
deleteUrlsUsers: deleteUrlsUsers,
123-
deleteDirsUsers: deleteDirsUsers,
93+
authUrlsUsers: pathUsernamesToPathUids(users, p.AuthUrlsUsers),
94+
authDirsUsers: pathUsernamesToPathUids(users, p.AuthDirsUsers),
95+
indexUrlsUsers: pathUsernamesToPathUids(users, p.IndexUrlsUsers),
96+
indexDirsUsers: pathUsernamesToPathUids(users, p.IndexDirsUsers),
97+
uploadUrlsUsers: pathUsernamesToPathUids(users, p.UploadUrlsUsers),
98+
uploadDirsUsers: pathUsernamesToPathUids(users, p.UploadDirsUsers),
99+
mkdirUrlsUsers: pathUsernamesToPathUids(users, p.MkdirUrlsUsers),
100+
mkdirDirsUsers: pathUsernamesToPathUids(users, p.MkdirDirsUsers),
101+
deleteUrlsUsers: pathUsernamesToPathUids(users, p.DeleteUrlsUsers),
102+
deleteDirsUsers: pathUsernamesToPathUids(users, p.DeleteDirsUsers),
124103

125104
shows: shows,
126105
showDirs: showDirs,
@@ -129,13 +108,11 @@ func NewVhostHandler(
129108
hideDirs: hideDirs,
130109
hideFiles: hideFiles,
131110

132-
restrictAccessUrls: restrictAccessUrls,
133-
restrictAccessDirs: restrictAccessDirs,
111+
restrictAccessUrls: newRestrictAccesses(p.RestrictAccessUrls),
112+
restrictAccessDirs: newRestrictAccesses(p.RestrictAccessDirs),
134113

135114
headersUrls: newPathHeaders(p.HeadersUrls),
136115
headersDirs: newPathHeaders(p.HeadersDirs),
137-
138-
vary: vary,
139116
}
140117

141118
handler = newMultiplexHandler(p, vhostCtx)

0 commit comments

Comments
 (0)