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,