comparison pkg/controllers/routes.go @ 472:39b5deee8810

Replaced 'all' by 'any' in routes.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 23 Aug 2018 12:57:15 +0200
parents 5e8ac1c67fe6
children b2dea4e56ff1
comparison
equal deleted inserted replaced
471:1b08432a0e5d 472:39b5deee8810
15 15
16 api := m.PathPrefix("/api").Subrouter() 16 api := m.PathPrefix("/api").Subrouter()
17 17
18 var ( 18 var (
19 sysAdmin = auth.EnsureRole("sys_admin") 19 sysAdmin = auth.EnsureRole("sys_admin")
20 all = auth.EnsureRole("sys_admin", "waterway_admin", "waterway_user") 20 any = auth.EnsureRole("sys_admin", "waterway_admin", "waterway_user")
21 ) 21 )
22 22
23 // User management. 23 // User management.
24 api.Handle("/users", all(&JSONHandler{ 24 api.Handle("/users", any(&JSONHandler{
25 Handle: listUsers, 25 Handle: listUsers,
26 })).Methods(http.MethodGet) 26 })).Methods(http.MethodGet)
27 27
28 api.Handle("/users", sysAdmin(&JSONHandler{ 28 api.Handle("/users", sysAdmin(&JSONHandler{
29 Input: func() interface{} { return new(models.User) }, 29 Input: func() interface{} { return new(models.User) },
30 Handle: createUser, 30 Handle: createUser,
31 })).Methods(http.MethodPost) 31 })).Methods(http.MethodPost)
32 32
33 api.Handle("/users/{user}", all(&JSONHandler{ 33 api.Handle("/users/{user}", any(&JSONHandler{
34 Handle: listUser, 34 Handle: listUser,
35 })).Methods(http.MethodGet) 35 })).Methods(http.MethodGet)
36 36
37 api.Handle("/users/{user}", all(&JSONHandler{ 37 api.Handle("/users/{user}", any(&JSONHandler{
38 Input: func() interface{} { return new(models.User) }, 38 Input: func() interface{} { return new(models.User) },
39 Handle: updateUser, 39 Handle: updateUser,
40 })).Methods(http.MethodPut) 40 })).Methods(http.MethodPut)
41 41
42 api.Handle("/users/{user}", sysAdmin(&JSONHandler{ 42 api.Handle("/users/{user}", sysAdmin(&JSONHandler{
57 external := &httputil.ReverseProxy{ 57 external := &httputil.ReverseProxy{
58 Director: proxyDirector(models.ExternalServices.Find), 58 Director: proxyDirector(models.ExternalServices.Find),
59 ModifyResponse: proxyModifyResponse("/api/external/"), 59 ModifyResponse: proxyModifyResponse("/api/external/"),
60 } 60 }
61 61
62 externalAuth := all(external) 62 externalAuth := any(external)
63 63
64 api.Handle("/external/{hash}/{url}", externalAuth). 64 api.Handle("/external/{hash}/{url}", externalAuth).
65 Methods( 65 Methods(
66 http.MethodGet, http.MethodPost, 66 http.MethodGet, http.MethodPost,
67 http.MethodPut, http.MethodDelete) 67 http.MethodPut, http.MethodDelete)
75 internal := &httputil.ReverseProxy{ 75 internal := &httputil.ReverseProxy{
76 Director: proxyDirector(models.PublishedServices.Find), 76 Director: proxyDirector(models.PublishedServices.Find),
77 ModifyResponse: proxyModifyResponse("/api/internal/"), 77 ModifyResponse: proxyModifyResponse("/api/internal/"),
78 } 78 }
79 79
80 internalAuth := all( 80 internalAuth := any(
81 middleware.ModifyQuery(internal, middleware.InjectUser)) 81 middleware.ModifyQuery(internal, middleware.InjectUser))
82 82
83 api.Handle("/internal/{hash}/{url}", internalAuth). 83 api.Handle("/internal/{hash}/{url}", internalAuth).
84 Methods( 84 Methods(
85 http.MethodGet, http.MethodPost, 85 http.MethodGet, http.MethodPost,