Mercurial > gemma
comparison pkg/controllers/user.go @ 442:fc37e7072022
Moved some models used in controllers to to model package because they may be needed elsewhere (e.g. GeoServer config).
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 21 Aug 2018 16:57:55 +0200 |
parents | c49f4c1808b1 |
children | b2dc9c2f69e0 |
comparison
equal
deleted
inserted
replaced
441:76a76691a298 | 442:fc37e7072022 |
---|---|
6 "net/http" | 6 "net/http" |
7 | 7 |
8 "github.com/gorilla/mux" | 8 "github.com/gorilla/mux" |
9 | 9 |
10 "gemma.intevation.de/gemma/pkg/auth" | 10 "gemma.intevation.de/gemma/pkg/auth" |
11 "gemma.intevation.de/gemma/pkg/models" | |
11 ) | 12 ) |
12 | 13 |
13 const ( | 14 const ( |
14 createUserSQL = `INSERT INTO users.list_users | 15 createUserSQL = `INSERT INTO users.list_users |
15 VALUES ($1, $2, $3, $4, NULL, $5)` | 16 VALUES ($1, $2, $3, $4, NULL, $5)` |
55 _ interface{}, req *http.Request, | 56 _ interface{}, req *http.Request, |
56 db *sql.DB, | 57 db *sql.DB, |
57 ) (jr JSONResult, err error) { | 58 ) (jr JSONResult, err error) { |
58 | 59 |
59 user := mux.Vars(req)["user"] | 60 user := mux.Vars(req)["user"] |
60 if !UserName(user).isValid() { | 61 if !models.UserName(user).IsValid() { |
61 err = JSONError{http.StatusBadRequest, "error: user invalid"} | 62 err = JSONError{http.StatusBadRequest, "error: user invalid"} |
62 return | 63 return |
63 } | 64 } |
64 | 65 |
65 session, _ := auth.GetSession(req) | 66 session, _ := auth.GetSession(req) |
92 func updateUser( | 93 func updateUser( |
93 input interface{}, req *http.Request, | 94 input interface{}, req *http.Request, |
94 db *sql.DB, | 95 db *sql.DB, |
95 ) (jr JSONResult, err error) { | 96 ) (jr JSONResult, err error) { |
96 | 97 |
97 user := UserName(mux.Vars(req)["user"]) | 98 user := models.UserName(mux.Vars(req)["user"]) |
98 if !user.isValid() { | 99 if !user.IsValid() { |
99 err = JSONError{http.StatusBadRequest, "error: user invalid"} | 100 err = JSONError{http.StatusBadRequest, "error: user invalid"} |
100 return | 101 return |
101 } | 102 } |
102 | 103 |
103 newUser := input.(*User) | 104 newUser := input.(*models.User) |
104 var res sql.Result | 105 var res sql.Result |
105 | 106 |
106 if s, _ := auth.GetSession(req); s.Roles.Has("sys_admin") { | 107 if s, _ := auth.GetSession(req); s.Roles.Has("sys_admin") { |
107 if newUser.Extent == nil { | 108 if newUser.Extent == nil { |
108 res, err = db.Exec( | 109 res, err = db.Exec( |
171 func createUser( | 172 func createUser( |
172 input interface{}, req *http.Request, | 173 input interface{}, req *http.Request, |
173 db *sql.DB, | 174 db *sql.DB, |
174 ) (jr JSONResult, err error) { | 175 ) (jr JSONResult, err error) { |
175 | 176 |
176 user := input.(*User) | 177 user := input.(*models.User) |
177 | 178 |
178 if user.Extent == nil { | 179 if user.Extent == nil { |
179 _, err = db.Exec( | 180 _, err = db.Exec( |
180 createUserSQL, | 181 createUserSQL, |
181 user.Role, | 182 user.Role, |
221 if err != nil { | 222 if err != nil { |
222 return | 223 return |
223 } | 224 } |
224 defer rows.Close() | 225 defer rows.Close() |
225 | 226 |
226 var users []*User | 227 var users []*models.User |
227 | 228 |
228 for rows.Next() { | 229 for rows.Next() { |
229 user := &User{Extent: &BoundingBox{}} | 230 user := &models.User{Extent: &models.BoundingBox{}} |
230 if err = rows.Scan( | 231 if err = rows.Scan( |
231 &user.Role, | 232 &user.Role, |
232 &user.User, | 233 &user.User, |
233 &user.Country, | 234 &user.Country, |
234 &user.Email, | 235 &user.Email, |
240 users = append(users, user) | 241 users = append(users, user) |
241 } | 242 } |
242 | 243 |
243 jr = JSONResult{ | 244 jr = JSONResult{ |
244 Result: struct { | 245 Result: struct { |
245 Users []*User `json:"users"` | 246 Users []*models.User `json:"users"` |
246 }{users}, | 247 }{users}, |
247 } | 248 } |
248 return | 249 return |
249 } | 250 } |
250 | 251 |
251 func listUser( | 252 func listUser( |
252 _ interface{}, req *http.Request, | 253 _ interface{}, req *http.Request, |
253 db *sql.DB, | 254 db *sql.DB, |
254 ) (jr JSONResult, err error) { | 255 ) (jr JSONResult, err error) { |
255 | 256 |
256 user := UserName(mux.Vars(req)["user"]) | 257 user := models.UserName(mux.Vars(req)["user"]) |
257 if !user.isValid() { | 258 if !user.IsValid() { |
258 err = JSONError{http.StatusBadRequest, "error: user invalid"} | 259 err = JSONError{http.StatusBadRequest, "error: user invalid"} |
259 return | 260 return |
260 } | 261 } |
261 | 262 |
262 result := &User{ | 263 result := &models.User{ |
263 User: user, | 264 User: user, |
264 Extent: &BoundingBox{}, | 265 Extent: &models.BoundingBox{}, |
265 } | 266 } |
266 | 267 |
267 err = db.QueryRow(listUserSQL, user).Scan( | 268 err = db.QueryRow(listUserSQL, user).Scan( |
268 &result.Role, | 269 &result.Role, |
269 &result.Country, | 270 &result.Country, |