comparison pkg/controllers/user.go @ 5330:b1b9b384540d extented-report

Adjust user model and controller to handle reports field.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 31 May 2021 12:56:44 +0200
parents e020e6e34ad7
children 95dafb72a288
comparison
equal deleted inserted replaced
5329:795a0a0b5047 5330:b1b9b384540d
35 mw "gemma.intevation.de/gemma/pkg/middleware" 35 mw "gemma.intevation.de/gemma/pkg/middleware"
36 ) 36 )
37 37
38 const ( 38 const (
39 createUserSQL = `INSERT INTO users.list_users 39 createUserSQL = `INSERT INTO users.list_users
40 VALUES ($1, $2, $3, $4, NULL, $5)` 40 VALUES ($1, $2, $3, $4, NULL, $5, $6)`
41 createUserExtentSQL = `INSERT INTO users.list_users 41 createUserExtentSQL = `INSERT INTO users.list_users
42 VALUES ($1, $2, $3, $4, 42 VALUES ($1, $2, $3, $4,
43 ST_MakeBox2D(ST_Point($5, $6), ST_Point($7, $8)), $9)` 43 ST_MakeBox2D(ST_Point($5, $6), ST_Point($7, $8)), $9, $10)`
44 44
45 updateUserUnprivSQL = `UPDATE users.list_users 45 updateUserUnprivSQL = `UPDATE users.list_users
46 SET (pw, map_extent, email_address) 46 SET (pw, map_extent, email_address)
47 = ($2, ST_MakeBox2D(ST_Point($3, $4), ST_Point($5, $6)), $7) 47 = ($2, ST_MakeBox2D(ST_Point($3, $4), ST_Point($5, $6)), $7)
48 WHERE username = $1` 48 WHERE username = $1`
49 updateUserSQL = `UPDATE users.list_users 49 updateUserSQL = `UPDATE users.list_users
50 SET (rolname, username, pw, country, map_extent, email_address) 50 SET (rolname, username, pw, country, map_extent, email_address, report_reciever)
51 = ($2, $3, $4, $5, NULL, $6) 51 = ($2, $3, $4, $5, NULL, $6, $7)
52 WHERE username = $1` 52 WHERE username = $1`
53 updateUserExtentSQL = `UPDATE users.list_users 53 updateUserExtentSQL = `UPDATE users.list_users
54 SET (rolname, username, pw, country, map_extent, email_address) 54 SET (rolname, username, pw, country, map_extent, email_address, report_reciever)
55 = ($2, $3, $4, $5, ST_MakeBox2D(ST_Point($6, $7), ST_Point($8, $9)), $10) 55 = ($2, $3, $4, $5, ST_MakeBox2D(ST_Point($6, $7), ST_Point($8, $9)), $10, $11)
56 WHERE username = $1` 56 WHERE username = $1`
57 57
58 deleteUserSQL = `DELETE FROM users.list_users WHERE username = $1` 58 deleteUserSQL = `DELETE FROM users.list_users WHERE username = $1`
59 59
60 listUsersSQL = `SELECT 60 listUsersSQL = `SELECT
61 rolname, 61 rolname,
62 username, 62 username,
63 country, 63 country,
64 email_address, 64 email_address,
65 ST_XMin(map_extent), ST_YMin(map_extent), 65 ST_XMin(map_extent), ST_YMin(map_extent),
66 ST_XMax(map_extent), ST_YMax(map_extent) 66 ST_XMax(map_extent), ST_YMax(map_extent),
67 report_reciever
67 FROM users.list_users` 68 FROM users.list_users`
68 69
69 listUserSQL = `SELECT 70 listUserSQL = `SELECT
70 rolname, 71 rolname,
71 country, 72 country,
72 email_address, 73 email_address,
73 ST_XMin(map_extent), ST_YMin(map_extent), 74 ST_XMin(map_extent), ST_YMin(map_extent),
74 ST_XMax(map_extent), ST_YMax(map_extent) 75 ST_XMax(map_extent), ST_YMax(map_extent),
76 report_reciever
75 FROM users.list_users 77 FROM users.list_users
76 WHERE username = $1` 78 WHERE username = $1`
77 ) 79 )
78 80
79 var ( 81 var (
179 newUser.Role, 181 newUser.Role,
180 newUser.User, 182 newUser.User,
181 newUser.Password, 183 newUser.Password,
182 newUser.Country, 184 newUser.Country,
183 newUser.Email, 185 newUser.Email,
186 newUser.Reports,
184 ) 187 )
185 } else { 188 } else {
186 res, err = db.ExecContext( 189 res, err = db.ExecContext(
187 req.Context(), 190 req.Context(),
188 updateUserExtentSQL, 191 updateUserExtentSQL,
192 newUser.Password, 195 newUser.Password,
193 newUser.Country, 196 newUser.Country,
194 newUser.Extent.X1, newUser.Extent.Y1, 197 newUser.Extent.X1, newUser.Extent.Y1,
195 newUser.Extent.X2, newUser.Extent.Y2, 198 newUser.Extent.X2, newUser.Extent.Y2,
196 newUser.Email, 199 newUser.Email,
200 newUser.Reports,
197 ) 201 )
198 } 202 }
199 } else { 203 } else {
200 if newUser.Extent == nil { 204 if newUser.Extent == nil {
201 err = mw.JSONError{ 205 err = mw.JSONError{
254 user.Role, 258 user.Role,
255 user.User, 259 user.User,
256 user.Password, 260 user.Password,
257 user.Country, 261 user.Country,
258 user.Email, 262 user.Email,
263 user.Reports,
259 ) 264 )
260 } else { 265 } else {
261 _, err = db.ExecContext( 266 _, err = db.ExecContext(
262 req.Context(), 267 req.Context(),
263 createUserExtentSQL, 268 createUserExtentSQL,
266 user.Password, 271 user.Password,
267 user.Country, 272 user.Country,
268 user.Extent.X1, user.Extent.Y1, 273 user.Extent.X1, user.Extent.Y1,
269 user.Extent.X2, user.Extent.Y2, 274 user.Extent.X2, user.Extent.Y2,
270 user.Email, 275 user.Email,
276 user.Reports,
271 ) 277 )
272 } 278 }
273 279
274 if err != nil { 280 if err != nil {
275 m, c := pgxutils.ReadableError{Err: err}.MessageAndCode() 281 m, c := pgxutils.ReadableError{Err: err}.MessageAndCode()
305 &user.User, 311 &user.User,
306 &user.Country, 312 &user.Country,
307 &user.Email, 313 &user.Email,
308 &user.Extent.X1, &user.Extent.Y1, 314 &user.Extent.X1, &user.Extent.Y1,
309 &user.Extent.X2, &user.Extent.Y2, 315 &user.Extent.X2, &user.Extent.Y2,
316 &user.Reports,
310 ); err != nil { 317 ); err != nil {
311 return 318 return
312 } 319 }
313 users = append(users, user) 320 users = append(users, user)
314 } 321 }
341 &result.Role, 348 &result.Role,
342 &result.Country, 349 &result.Country,
343 &result.Email, 350 &result.Email,
344 &result.Extent.X1, &result.Extent.Y1, 351 &result.Extent.X1, &result.Extent.Y1,
345 &result.Extent.X2, &result.Extent.Y2, 352 &result.Extent.X2, &result.Extent.Y2,
353 &result.Reports,
346 ) 354 )
347 355
348 switch { 356 switch {
349 case err == sql.ErrNoRows: 357 case err == sql.ErrNoRows:
350 err = mw.JSONError{ 358 err = mw.JSONError{
380 &userData.Role, 388 &userData.Role,
381 &userData.Country, 389 &userData.Country,
382 &userData.Email, 390 &userData.Email,
383 &userData.Extent.X1, &userData.Extent.Y1, 391 &userData.Extent.X1, &userData.Extent.Y1,
384 &userData.Extent.X2, &userData.Extent.Y2, 392 &userData.Extent.X2, &userData.Extent.Y2,
393 &userData.Reports,
385 ) 394 )
386 395
387 switch { 396 switch {
388 case err == sql.ErrNoRows: 397 case err == sql.ErrNoRows:
389 err = mw.JSONError{ 398 err = mw.JSONError{