-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathuser.go
59 lines (54 loc) · 1.8 KB
/
user.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package rdb
// User is an user on Ripple.
type User struct {
ID int `json:"id"`
Username string `json:"username"`
Password string `json:"password" gorm:"column:password_md5"`
Salt string `json:"salt"`
Email string `json:"email"`
RegisteredOn UnixTimestamp `json:"registered_on" gorm:"column:register_datetime"`
Privileges int `json:"privileges"`
DonorExpire UnixTimestamp `json:"donor_expire"`
BannedOn UnixTimestamp `json:"banned_on" gorm:"column:ban_datetime"`
AQN bool `json:"aqn" gorm:"column:aqn"`
// Technically a row, but since it's LONGTEXT we don't want to fetch it for every SELECT query.
// Notes string `json:"notes"`
LatestActivity UnixTimestamp `json:"latest_activity"`
SilenceEnd UnixTimestamp `json:"silence_end"`
SilenceReason string `json:"silence_reason"`
PasswordVersion int `json:"password_version"`
UsernameSafe string `json:"username_safe"`
Flags int `json:"flags"`
}
// GetUser retrieves an user knowing its ID.
func GetUser(id int) *User {
var u User
if DB.First(&u, id).RecordNotFound() {
return nil
}
return &u
}
// GetUserByUsername retrieves an user knowing its username.
func GetUserByUsername(s string) *User {
var u User
if DB.Where("username = ?", s).First(&u).RecordNotFound() {
return nil
}
return &u
}
// GetUserByUsernameSafe retrieves an user knowing its username_safe.
func GetUserByUsernameSafe(s string) *User {
var u User
if DB.Where("username_safe = ?", s).First(&u).RecordNotFound() {
return nil
}
return &u
}
// GetUserByEmail retrieves an user knowing its email.
func GetUserByEmail(s string) *User {
var u User
if DB.Where("email = ?", s).First(&u).RecordNotFound() {
return nil
}
return &u
}