Combine server into single 'git-style' executable

This commit is contained in:
2013-09-02 09:36:03 -04:00
parent a6c296e0fd
commit 2599717d09
9 changed files with 43 additions and 38 deletions

35
asinkd/users.go Normal file
View File

@ -0,0 +1,35 @@
package main
import (
"crypto/sha256"
"fmt"
)
type UserRole uint32
const (
//User roles
ADMIN = 1 << iota
NORMAL
)
type User struct {
Id int64
Username string
PWHash string
Role UserRole
}
func HashPassword(pw string) string {
hashfn := sha256.New()
hashfn.Write([]byte(pw))
return fmt.Sprintf("%x", hashfn.Sum(nil))
}
func (u *User) ValidPassword(pw string) bool {
return HashPassword(pw) == u.PWHash
}
func (u *User) IsAdmin() bool {
return u.Role&ADMIN == ADMIN
}