@@ -40,43 +40,13 @@ type aliasHandler struct {
4040 dirIndexes []string
4141 aliases aliases
4242
43- globalAuth bool
44- authUrls []string
45- authUrlsUsers pathIntsList
46- authDirs []string
47- authDirsUsers pathIntsList
48-
49- globalIndex bool
50- indexUrls []string
51- indexUrlsUsers pathIntsList
52- indexDirs []string
53- indexDirsUsers pathIntsList
54-
55- globalUpload bool
56- uploadUrls []string
57- uploadUrlsUsers pathIntsList
58- uploadDirs []string
59- uploadDirsUsers pathIntsList
60-
61- globalMkdir bool
62- mkdirUrls []string
63- mkdirUrlsUsers pathIntsList
64- mkdirDirs []string
65- mkdirDirsUsers pathIntsList
66-
67- globalDelete bool
68- deleteUrls []string
69- deleteUrlsUsers pathIntsList
70- deleteDirs []string
71- deleteDirsUsers pathIntsList
72-
73- globalArchive bool
74- archiveUrls []string
75- archiveDirs []string
76-
77- globalCors bool
78- corsUrls []string
79- corsDirs []string
43+ auth * hierarchyAvailability
44+ index * hierarchyAvailability
45+ upload * hierarchyAvailability
46+ mkdir * hierarchyAvailability
47+ delete * hierarchyAvailability
48+ archive * hierarchyAvailability
49+ cors * hierarchyAvailability
8050
8151 globalRestrictAccess []string
8252 restrictAccessUrls pathStringsList
@@ -217,43 +187,13 @@ func newAliasHandler(
217187 dirIndexes : p .DirIndexes ,
218188 aliases : allAliases .filterSuccessor (currentAlias .url ),
219189
220- globalAuth : p .GlobalAuth || prefixMatched (p .AuthUrls , util .HasUrlPrefixDir , currentAlias .url ) || prefixMatched (p .AuthDirs , util .HasFsPrefixDir , currentAlias .fs ),
221- authUrls : filterSuccessor (p .AuthUrls , util .HasUrlPrefixDir , currentAlias .url ),
222- authUrlsUsers : vhostCtx .authUrlsUsers .filterSuccessor (true , util .HasUrlPrefixDir , currentAlias .url ),
223- authDirs : filterSuccessor (p .AuthDirs , util .HasFsPrefixDir , currentAlias .fs ),
224- authDirsUsers : vhostCtx .authDirsUsers .filterSuccessor (true , util .HasFsPrefixDir , currentAlias .fs ),
225-
226- globalIndex : prefixMatched (p .IndexUrls , util .HasUrlPrefixDir , currentAlias .url ) || prefixMatched (p .IndexDirs , util .HasFsPrefixDir , currentAlias .fs ),
227- indexUrls : filterSuccessor (p .IndexUrls , util .HasUrlPrefixDir , currentAlias .url ),
228- indexUrlsUsers : vhostCtx .indexUrlsUsers .filterSuccessor (true , util .HasUrlPrefixDir , currentAlias .url ),
229- indexDirs : filterSuccessor (p .IndexDirs , util .HasFsPrefixDir , currentAlias .fs ),
230- indexDirsUsers : vhostCtx .indexDirsUsers .filterSuccessor (true , util .HasFsPrefixDir , currentAlias .fs ),
231-
232- globalUpload : p .GlobalUpload || prefixMatched (p .UploadUrls , util .HasUrlPrefixDir , currentAlias .url ) || prefixMatched (p .UploadDirs , util .HasFsPrefixDir , currentAlias .fs ),
233- uploadUrls : filterSuccessor (p .UploadUrls , util .HasUrlPrefixDir , currentAlias .url ),
234- uploadUrlsUsers : vhostCtx .uploadUrlsUsers .filterSuccessor (true , util .HasUrlPrefixDir , currentAlias .url ),
235- uploadDirs : filterSuccessor (p .UploadDirs , util .HasFsPrefixDir , currentAlias .fs ),
236- uploadDirsUsers : vhostCtx .uploadDirsUsers .filterSuccessor (true , util .HasFsPrefixDir , currentAlias .fs ),
237-
238- globalMkdir : p .GlobalMkdir || prefixMatched (p .MkdirUrls , util .HasUrlPrefixDir , currentAlias .url ) || prefixMatched (p .MkdirDirs , util .HasFsPrefixDir , currentAlias .fs ),
239- mkdirUrls : filterSuccessor (p .MkdirUrls , util .HasUrlPrefixDir , currentAlias .url ),
240- mkdirUrlsUsers : vhostCtx .mkdirUrlsUsers .filterSuccessor (true , util .HasUrlPrefixDir , currentAlias .url ),
241- mkdirDirs : filterSuccessor (p .MkdirDirs , util .HasFsPrefixDir , currentAlias .fs ),
242- mkdirDirsUsers : vhostCtx .mkdirDirsUsers .filterSuccessor (true , util .HasFsPrefixDir , currentAlias .fs ),
243-
244- globalDelete : p .GlobalDelete || prefixMatched (p .DeleteUrls , util .HasUrlPrefixDir , currentAlias .url ) || prefixMatched (p .DeleteDirs , util .HasFsPrefixDir , currentAlias .fs ),
245- deleteUrls : filterSuccessor (p .DeleteUrls , util .HasUrlPrefixDir , currentAlias .url ),
246- deleteUrlsUsers : vhostCtx .deleteUrlsUsers .filterSuccessor (true , util .HasUrlPrefixDir , currentAlias .url ),
247- deleteDirs : filterSuccessor (p .DeleteDirs , util .HasFsPrefixDir , currentAlias .fs ),
248- deleteDirsUsers : vhostCtx .deleteDirsUsers .filterSuccessor (true , util .HasFsPrefixDir , currentAlias .fs ),
249-
250- globalArchive : p .GlobalArchive || prefixMatched (p .ArchiveUrls , util .HasUrlPrefixDir , currentAlias .url ) || prefixMatched (p .ArchiveDirs , util .HasFsPrefixDir , currentAlias .fs ),
251- archiveUrls : filterSuccessor (p .ArchiveUrls , util .HasUrlPrefixDir , currentAlias .url ),
252- archiveDirs : filterSuccessor (p .ArchiveDirs , util .HasFsPrefixDir , currentAlias .fs ),
253-
254- globalCors : p .GlobalCors || prefixMatched (p .CorsUrls , util .HasUrlPrefixDir , currentAlias .url ) || prefixMatched (p .CorsDirs , util .HasFsPrefixDir , currentAlias .fs ),
255- corsUrls : filterSuccessor (p .CorsUrls , util .HasUrlPrefixDir , currentAlias .url ),
256- corsDirs : filterSuccessor (p .CorsDirs , util .HasFsPrefixDir , currentAlias .fs ),
190+ auth : newHierarchyAvailability (currentAlias .url , currentAlias .fs , p .GlobalAuth , p .AuthUrls , vhostCtx .authUrlsUsers , p .AuthDirs , vhostCtx .authDirsUsers ),
191+ index : newHierarchyAvailability (currentAlias .url , currentAlias .fs , false , p .IndexUrls , vhostCtx .indexUrlsUsers , p .IndexDirs , vhostCtx .indexDirsUsers ),
192+ upload : newHierarchyAvailability (currentAlias .url , currentAlias .fs , p .GlobalUpload , p .UploadUrls , vhostCtx .uploadUrlsUsers , p .UploadDirs , vhostCtx .uploadDirsUsers ),
193+ mkdir : newHierarchyAvailability (currentAlias .url , currentAlias .fs , p .GlobalMkdir , p .MkdirUrls , vhostCtx .mkdirUrlsUsers , p .MkdirDirs , vhostCtx .mkdirDirsUsers ),
194+ delete : newHierarchyAvailability (currentAlias .url , currentAlias .fs , p .GlobalDelete , p .DeleteUrls , vhostCtx .deleteUrlsUsers , p .DeleteDirs , vhostCtx .deleteDirsUsers ),
195+ archive : newHierarchyAvailability (currentAlias .url , currentAlias .fs , p .GlobalArchive , p .ArchiveUrls , nil , p .ArchiveDirs , nil ),
196+ cors : newHierarchyAvailability (currentAlias .url , currentAlias .fs , p .GlobalCors , p .CorsUrls , nil , p .CorsDirs , nil ),
257197
258198 globalRestrictAccess : globalRestrictAccess ,
259199 restrictAccessUrls : vhostCtx .restrictAccessUrls .filterSuccessor (false , util .HasUrlPrefixDir , currentAlias .url ),
0 commit comments