Skip to content

Commit 14a29af

Browse files
committed
fix revel#1095 param map overwrite priority
1 parent 57885dc commit 14a29af

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

params.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) 2012-2016 The Revel Framework Authors, All rights reserved.
1+
// Copyright (c) 2012-2017 The Revel Framework Authors, All rights reserved.
22
// Revel Framework source code and usage is governed by a MIT style
33
// license that can be found in the LICENSE file.
44

@@ -97,20 +97,27 @@ func (p *Params) calcValues() url.Values {
9797
return p.Form
9898
}
9999

100-
// Copy everything into the same map.
100+
// Copy everything into a param map,
101+
// order of priority is least to most trusted
101102
values := make(url.Values, numParams)
102-
for k, v := range p.Fixed {
103+
104+
// ?query vars first
105+
for k, v := range p.Query {
103106
values[k] = append(values[k], v...)
104107
}
105-
for k, v := range p.Query {
108+
// form vars overwrite
109+
for k, v := range p.Form {
106110
values[k] = append(values[k], v...)
107111
}
112+
// :/path vars overwrite
108113
for k, v := range p.Route {
109114
values[k] = append(values[k], v...)
110115
}
111-
for k, v := range p.Form {
116+
// fixed vars overwrite
117+
for k, v := range p.Fixed {
112118
values[k] = append(values[k], v...)
113119
}
120+
114121
return values
115122
}
116123

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy