diff options
| -rw-r--r-- | charakterin.go | 27 | ||||
| -rw-r--r-- | user.go | 9 |
2 files changed, 21 insertions, 15 deletions
diff --git a/charakterin.go b/charakterin.go index 142484c..253e627 100644 --- a/charakterin.go +++ b/charakterin.go | |||
| @@ -13,9 +13,9 @@ import ( | |||
| 13 | ) | 13 | ) |
| 14 | 14 | ||
| 15 | const ( | 15 | const ( |
| 16 | NoSuchUser = "pq: no_such_user" | 16 | NoSuchUser = "pq: no_such_user" |
| 17 | InvalidPassword = "pq: invalid_password" | 17 | InvalidPassword = "pq: invalid_password" |
| 18 | UsernameTaken = "pq: username_taken" | 18 | UsernameTaken = "pq: username_taken" |
| 19 | EmailAlreadyRegistered = "pq: email_already_registered" | 19 | EmailAlreadyRegistered = "pq: email_already_registered" |
| 20 | ) | 20 | ) |
| 21 | 21 | ||
| @@ -278,27 +278,22 @@ func (c *Charakterin) GetUserFromRequest(r *http.Request) (*User, error) { | |||
| 278 | } | 278 | } |
| 279 | 279 | ||
| 280 | var email, name string | 280 | var email, name string |
| 281 | var displayName *string | 281 | var displayName sql.NullString |
| 282 | var password []byte | 282 | var password []byte |
| 283 | var id int | 283 | var id int |
| 284 | var lastActivity time.Time | 284 | var lastActivity *time.Time |
| 285 | var isActive bool | 285 | var isActive bool |
| 286 | err = c.Database.QueryRow(`SELECT id, email, name, password, display_name, last_activity, is_active FROM login.get_user_by_session($1)`, cookie.Value).Scan(&id, &email, &name, &password, &displayName, &lastActivity, &isActive) | 286 | err = c.Database.QueryRow(`SELECT id, email, name, password, display_name, last_activity, is_active FROM login.get_user_by_session($1)`, cookie.Value).Scan(&id, &email, &name, &password, &displayName, &lastActivity, &isActive) |
| 287 | if err != nil { | 287 | if err != nil { |
| 288 | return nil, err | 288 | return nil, err |
| 289 | } | 289 | } |
| 290 | 290 | ||
| 291 | dspName := "" | ||
| 292 | if displayName != nil { | ||
| 293 | dspName = *displayName | ||
| 294 | } | ||
| 295 | |||
| 296 | user := &User{ | 291 | user := &User{ |
| 297 | id, | 292 | id, |
| 298 | name, | 293 | name, |
| 299 | email, | 294 | email, |
| 300 | password, | 295 | password, |
| 301 | dspName, | 296 | displayName, |
| 302 | lastActivity, | 297 | lastActivity, |
| 303 | isActive, | 298 | isActive, |
| 304 | } | 299 | } |
| @@ -306,6 +301,16 @@ func (c *Charakterin) GetUserFromRequest(r *http.Request) (*User, error) { | |||
| 306 | return user, nil | 301 | return user, nil |
| 307 | } | 302 | } |
| 308 | 303 | ||
| 304 | // GetUserByID gibt den User mit der gegebenen ID zurück | ||
| 305 | func (c *Charakterin) GetUserByID(id int) (*User, error) { | ||
| 306 | user := &User{} | ||
| 307 | err := c.Database.QueryRow(`SELECT id, email, name, password, display_name, last_activity, is_active FROM login.users WHERE id = $1`, id).Scan(&user.ID, &user.EMail, &user.Name, &user.Password, &user.DisplayName, &user.LastActivity, &user.IsActive) | ||
| 308 | if err != nil { | ||
| 309 | return nil, err | ||
| 310 | } | ||
| 311 | return user, nil | ||
| 312 | } | ||
| 313 | |||
| 309 | // ConfirmEmail konfirmiert die email addresse mit der gegebenen confirm id. | 314 | // ConfirmEmail konfirmiert die email addresse mit der gegebenen confirm id. |
| 310 | func (c *Charakterin) ConfirmEmail(confirmId string) error { | 315 | func (c *Charakterin) ConfirmEmail(confirmId string) error { |
| 311 | var result string | 316 | var result string |
| @@ -1,6 +1,7 @@ | |||
| 1 | package charakterin | 1 | package charakterin |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "database/sql" | ||
| 4 | "time" | 5 | "time" |
| 5 | ) | 6 | ) |
| 6 | 7 | ||
| @@ -10,15 +11,15 @@ type User struct { | |||
| 10 | Name string | 11 | Name string |
| 11 | EMail string | 12 | EMail string |
| 12 | Password []byte | 13 | Password []byte |
| 13 | DisplayName string | 14 | DisplayName sql.NullString |
| 14 | LastActivity time.Time | 15 | LastActivity *time.Time |
| 15 | IsActive bool | 16 | IsActive bool |
| 16 | } | 17 | } |
| 17 | 18 | ||
| 18 | // GetName gibt den Anzeigenamen oder wenn dieser nicht gesetzt ist den Benutzernamen zurück. | 19 | // GetName gibt den Anzeigenamen oder wenn dieser nicht gesetzt ist den Benutzernamen zurück. |
| 19 | func (u *User) GetName() string { | 20 | func (u *User) GetName() string { |
| 20 | if len(u.DisplayName) > 0 { | 21 | if u.DisplayName.Valid { |
| 21 | return u.DisplayName | 22 | return u.DisplayName.String |
| 22 | } | 23 | } |
| 23 | return u.Name | 24 | return u.Name |
| 24 | } | 25 | } |
