Gradation: add route to add missing users
This commit is contained in:
parent
107b17c11f
commit
3397b9f123
4 changed files with 104 additions and 6 deletions
28
users.go
28
users.go
|
@ -4,6 +4,7 @@ import (
|
|||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -169,6 +170,33 @@ func getUsers() (users []User, err error) {
|
|||
}
|
||||
}
|
||||
|
||||
func getFilteredUsers(promo uint, group string) (users []User, err error) {
|
||||
// Avoid SQL injection: check group name doesn't contains harmful content
|
||||
var validGroup = regexp.MustCompile(`^[a-z0-9-]*$`)
|
||||
if !validGroup.MatchString(group) {
|
||||
return nil, fmt.Errorf("%q is not a valid group name", group)
|
||||
}
|
||||
|
||||
if rows, errr := DBQuery("SELECT id_user, login, email, firstname, lastname, time, promo, groups, is_admin FROM users WHERE promo = ? AND groups LIKE '%,"+group+",%' ORDER BY promo DESC, id_user DESC", promo); errr != nil {
|
||||
return nil, errr
|
||||
} else {
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
var u User
|
||||
if err = rows.Scan(&u.Id, &u.Login, &u.Email, &u.Firstname, &u.Lastname, &u.Time, &u.Promo, &u.Groups, &u.IsAdmin); err != nil {
|
||||
return
|
||||
}
|
||||
users = append(users, u)
|
||||
}
|
||||
if err = rows.Err(); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func getPromos() (promos []uint, err error) {
|
||||
if rows, errr := DBQuery("SELECT DISTINCT promo FROM users ORDER BY promo DESC"); errr != nil {
|
||||
return nil, errr
|
||||
|
|
Reference in a new issue