comparison controllers/routes.go @ 276:863ec6010045

merge
author Thomas Junk <thomas.junk@intevation.de>
date Mon, 30 Jul 2018 13:13:26 +0200
parents d1b0d964af09
children 3c5420976910
comparison
equal deleted inserted replaced
275:89f1aa33adcf 276:863ec6010045
10 10
11 func BindRoutes(m *mux.Router) { 11 func BindRoutes(m *mux.Router) {
12 12
13 api := m.PathPrefix("/api").Subrouter() 13 api := m.PathPrefix("/api").Subrouter()
14 14
15 sysAdmin := auth.EnsureRole("sys_admin") 15 var (
16 sysAdmin = auth.EnsureRole("sys_admin")
17 all = auth.EnsureRole("sys_admin", "waterway_admin", "waterway_user")
18 )
16 19
17 api.Handle("/users", sysAdmin(&JSONHandler{ 20 api.Handle("/users", sysAdmin(&JSONHandler{
18 Handle: listUsers, 21 Handle: listUsers,
19 })).Methods(http.MethodGet) 22 })).Methods(http.MethodGet)
20 23
21 api.Handle("/users", sysAdmin(&JSONHandler{ 24 api.Handle("/users", sysAdmin(&JSONHandler{
22 Input: func() interface{} { return new(User) }, 25 Input: func() interface{} { return new(User) },
23 Handle: createUser, 26 Handle: createUser,
24 })).Methods(http.MethodPost) 27 })).Methods(http.MethodPost)
25 28
26 api.Handle("/users/{user}", sysAdmin(&JSONHandler{ 29 api.Handle("/users/{user}", all(&JSONHandler{
27 Handle: listUser, 30 Handle: listUser,
28 })).Methods(http.MethodGet) 31 })).Methods(http.MethodGet)
29 32
30 api.Handle("/users/{user}", sysAdmin(&JSONHandler{ 33 api.Handle("/users/{user}", all(&JSONHandler{
31 Input: func() interface{} { return new(User) }, 34 Input: func() interface{} { return new(User) },
32 Handle: updateUser, 35 Handle: updateUser,
33 })).Methods(http.MethodPut) 36 })).Methods(http.MethodPut)
34 37
35 api.Handle("/users/{user}", sysAdmin(&JSONHandler{ 38 api.Handle("/users/{user}", sysAdmin(&JSONHandler{