Mercurial > gemma
comparison pkg/controllers/user.go @ 4242:1458c9b0fdaa json-handler-middleware
Made the sql.Conn in function accessible via the context of the request.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 22 Aug 2019 10:18:13 +0200 |
parents | 1b1218bbd414 |
children | d776110b4db0 |
comparison
equal
deleted
inserted
replaced
4240:a4f76e170290 | 4242:1458c9b0fdaa |
---|---|
97 (inkluding import errors) and details on the concerned import.`)) | 97 (inkluding import errors) and details on the concerned import.`)) |
98 ) | 98 ) |
99 | 99 |
100 func deleteUser( | 100 func deleteUser( |
101 _ interface{}, req *http.Request, | 101 _ interface{}, req *http.Request, |
102 db *sql.Conn, | |
103 ) (jr JSONResult, err error) { | 102 ) (jr JSONResult, err error) { |
104 | 103 |
105 user := mux.Vars(req)["user"] | 104 user := mux.Vars(req)["user"] |
106 if !models.UserName(user).IsValid() { | 105 if !models.UserName(user).IsValid() { |
107 err = JSONError{http.StatusBadRequest, "error: user invalid"} | 106 err = JSONError{http.StatusBadRequest, "error: user invalid"} |
113 err = JSONError{http.StatusBadRequest, "error: cannot delete yourself"} | 112 err = JSONError{http.StatusBadRequest, "error: cannot delete yourself"} |
114 return | 113 return |
115 } | 114 } |
116 | 115 |
117 ctx := req.Context() | 116 ctx := req.Context() |
117 | |
118 db := JSONConn(req) | |
118 | 119 |
119 // Remove scheduled tasks. | 120 // Remove scheduled tasks. |
120 ids, err2 := scheduler.ScheduledUserIDs(ctx, db, user) | 121 ids, err2 := scheduler.ScheduledUserIDs(ctx, db, user) |
121 if err2 == nil { | 122 if err2 == nil { |
122 if len(ids) > 0 { | 123 if len(ids) > 0 { |
148 } | 149 } |
149 | 150 |
150 func updateUser( | 151 func updateUser( |
151 input interface{}, | 152 input interface{}, |
152 req *http.Request, | 153 req *http.Request, |
153 db *sql.Conn, | |
154 ) (jr JSONResult, err error) { | 154 ) (jr JSONResult, err error) { |
155 | 155 |
156 user := models.UserName(mux.Vars(req)["user"]) | 156 user := models.UserName(mux.Vars(req)["user"]) |
157 if !user.IsValid() { | 157 if !user.IsValid() { |
158 err = JSONError{http.StatusBadRequest, "error: user invalid"} | 158 err = JSONError{http.StatusBadRequest, "error: user invalid"} |
159 return | 159 return |
160 } | 160 } |
161 | 161 |
162 newUser := input.(*models.User) | 162 newUser := input.(*models.User) |
163 var res sql.Result | 163 var res sql.Result |
164 | |
165 db := JSONConn(req) | |
164 | 166 |
165 if s, _ := auth.GetSession(req); s.Roles.Has("sys_admin") { | 167 if s, _ := auth.GetSession(req); s.Roles.Has("sys_admin") { |
166 if newUser.Extent == nil { | 168 if newUser.Extent == nil { |
167 res, err = db.ExecContext( | 169 res, err = db.ExecContext( |
168 req.Context(), | 170 req.Context(), |
231 } | 233 } |
232 | 234 |
233 func createUser( | 235 func createUser( |
234 input interface{}, | 236 input interface{}, |
235 req *http.Request, | 237 req *http.Request, |
236 db *sql.Conn, | |
237 ) (jr JSONResult, err error) { | 238 ) (jr JSONResult, err error) { |
238 | 239 |
239 user := input.(*models.User) | 240 user := input.(*models.User) |
241 | |
242 db := JSONConn(req) | |
240 | 243 |
241 if user.Extent == nil { | 244 if user.Extent == nil { |
242 _, err = db.ExecContext( | 245 _, err = db.ExecContext( |
243 req.Context(), | 246 req.Context(), |
244 createUserSQL, | 247 createUserSQL, |
278 } | 281 } |
279 | 282 |
280 func listUsers( | 283 func listUsers( |
281 _ interface{}, | 284 _ interface{}, |
282 req *http.Request, | 285 req *http.Request, |
283 db *sql.Conn, | |
284 ) (jr JSONResult, err error) { | 286 ) (jr JSONResult, err error) { |
285 | 287 |
286 var rows *sql.Rows | 288 var rows *sql.Rows |
287 | 289 |
288 rows, err = db.QueryContext(req.Context(), listUsersSQL) | 290 rows, err = JSONConn(req).QueryContext(req.Context(), listUsersSQL) |
289 if err != nil { | 291 if err != nil { |
290 return | 292 return |
291 } | 293 } |
292 defer rows.Close() | 294 defer rows.Close() |
293 | 295 |
317 } | 319 } |
318 | 320 |
319 func listUser( | 321 func listUser( |
320 _ interface{}, | 322 _ interface{}, |
321 req *http.Request, | 323 req *http.Request, |
322 db *sql.Conn, | |
323 ) (jr JSONResult, err error) { | 324 ) (jr JSONResult, err error) { |
324 | 325 |
325 user := models.UserName(mux.Vars(req)["user"]) | 326 user := models.UserName(mux.Vars(req)["user"]) |
326 if !user.IsValid() { | 327 if !user.IsValid() { |
327 err = JSONError{http.StatusBadRequest, "error: user invalid"} | 328 err = JSONError{http.StatusBadRequest, "error: user invalid"} |
331 result := &models.User{ | 332 result := &models.User{ |
332 User: user, | 333 User: user, |
333 Extent: &models.BoundingBox{}, | 334 Extent: &models.BoundingBox{}, |
334 } | 335 } |
335 | 336 |
336 err = db.QueryRowContext(req.Context(), listUserSQL, user).Scan( | 337 err = JSONConn(req).QueryRowContext(req.Context(), listUserSQL, user).Scan( |
337 &result.Role, | 338 &result.Role, |
338 &result.Country, | 339 &result.Country, |
339 &result.Email, | 340 &result.Email, |
340 &result.Extent.X1, &result.Extent.Y1, | 341 &result.Extent.X1, &result.Extent.Y1, |
341 &result.Extent.X2, &result.Extent.Y2, | 342 &result.Extent.X2, &result.Extent.Y2, |
357 } | 358 } |
358 | 359 |
359 func sendTestMail( | 360 func sendTestMail( |
360 _ interface{}, | 361 _ interface{}, |
361 req *http.Request, | 362 req *http.Request, |
362 db *sql.Conn, | |
363 ) (jr JSONResult, err error) { | 363 ) (jr JSONResult, err error) { |
364 | 364 |
365 user := models.UserName(mux.Vars(req)["user"]) | 365 user := models.UserName(mux.Vars(req)["user"]) |
366 if !user.IsValid() { | 366 if !user.IsValid() { |
367 err = JSONError{http.StatusBadRequest, "error: user invalid"} | 367 err = JSONError{http.StatusBadRequest, "error: user invalid"} |
371 userData := &models.User{ | 371 userData := &models.User{ |
372 User: user, | 372 User: user, |
373 Extent: &models.BoundingBox{}, | 373 Extent: &models.BoundingBox{}, |
374 } | 374 } |
375 | 375 |
376 err = db.QueryRowContext(req.Context(), listUserSQL, user).Scan( | 376 err = JSONConn(req).QueryRowContext(req.Context(), listUserSQL, user).Scan( |
377 &userData.Role, | 377 &userData.Role, |
378 &userData.Country, | 378 &userData.Country, |
379 &userData.Email, | 379 &userData.Email, |
380 &userData.Extent.X1, &userData.Extent.Y1, | 380 &userData.Extent.X1, &userData.Extent.Y1, |
381 &userData.Extent.X2, &userData.Extent.Y2, | 381 &userData.Extent.X2, &userData.Extent.Y2, |