| @@ -2,4 +2,11 @@ APP_NAME = Gogs - Go Git Service | |||||
| [server] | [server] | ||||
| HTTP_ADDR = | HTTP_ADDR = | ||||
| HTTP_PORT = 3000 | |||||
| HTTP_PORT = 3000 | |||||
| [database] | |||||
| DB_TYPE = mysql | |||||
| HOST = | |||||
| NAME = gogs | |||||
| USER = root | |||||
| PASSWD = root | |||||
| @@ -4,7 +4,16 @@ | |||||
| package models | package models | ||||
| import "github.com/lunny/xorm" | |||||
| import ( | |||||
| "fmt" | |||||
| "os" | |||||
| _ "github.com/go-sql-driver/mysql" | |||||
| "github.com/lunny/xorm" | |||||
| "github.com/gogits/gogs/utils" | |||||
| "github.com/gogits/gogs/utils/log" | |||||
| ) | |||||
| var ( | var ( | ||||
| orm *xorm.Engine | orm *xorm.Engine | ||||
| @@ -30,3 +39,37 @@ type PullRequest struct { | |||||
| type Comment struct { | type Comment struct { | ||||
| Id int64 | Id int64 | ||||
| } | } | ||||
| func setEngine() { | |||||
| dbType := utils.Cfg.MustValue("database", "DB_TYPE") | |||||
| dbHost := utils.Cfg.MustValue("database", "HOST") | |||||
| dbName := utils.Cfg.MustValue("database", "NAME") | |||||
| dbUser := utils.Cfg.MustValue("database", "USER") | |||||
| dbPwd := utils.Cfg.MustValue("database", "PASSWD") | |||||
| var err error | |||||
| switch dbType { | |||||
| case "mysql": | |||||
| orm, err = xorm.NewEngine("mysql", fmt.Sprintf("%v:%v@%v/%v?charset=utf8", | |||||
| dbUser, dbPwd, dbHost, dbName)) | |||||
| default: | |||||
| log.Critical("Unknown database type: %s", dbType) | |||||
| os.Exit(2) | |||||
| } | |||||
| if err != nil { | |||||
| log.Critical("models.init -> Conntect database: %s", dbType) | |||||
| os.Exit(2) | |||||
| } | |||||
| //x.ShowDebug = true | |||||
| orm.ShowErr = true | |||||
| //x.ShowSQL = true | |||||
| log.Trace("Initialized database -> %s", dbName) | |||||
| } | |||||
| func init() { | |||||
| setEngine() | |||||
| orm.Sync(new(User)) | |||||
| } | |||||
| @@ -97,6 +97,7 @@ func RegisterUser(user *User) (err error) { | |||||
| user.Avatar = utils.EncodeMd5(user.Email) | user.Avatar = utils.EncodeMd5(user.Email) | ||||
| user.Created = time.Now() | user.Created = time.Now() | ||||
| user.Updated = time.Now() | user.Updated = time.Now() | ||||
| user.EncodePasswd() | |||||
| _, err = orm.Insert(user) | _, err = orm.Insert(user) | ||||
| return err | return err | ||||
| } | } | ||||
| @@ -116,7 +117,7 @@ func DeleteUser(user *User) error { | |||||
| } | } | ||||
| // EncodePasswd encodes password to safe format. | // EncodePasswd encodes password to safe format. | ||||
| func (user *User) EncodePasswd(pass string) error { | |||||
| func (user *User) EncodePasswd() error { | |||||
| newPasswd, err := scrypt.Key([]byte(user.Passwd), []byte("!#@FDEWREWR&*("), 16384, 8, 1, 64) | newPasswd, err := scrypt.Key([]byte(user.Passwd), []byte("!#@FDEWREWR&*("), 16384, 8, 1, 64) | ||||
| user.Passwd = fmt.Sprintf("%x", newPasswd) | user.Passwd = fmt.Sprintf("%x", newPasswd) | ||||
| return err | return err | ||||
| @@ -124,8 +125,8 @@ func (user *User) EncodePasswd(pass string) error { | |||||
| // LoginUserPlain validates user by raw user name and password. | // LoginUserPlain validates user by raw user name and password. | ||||
| func LoginUserPlain(name, passwd string) (*User, error) { | func LoginUserPlain(name, passwd string) (*User, error) { | ||||
| user := User{Name: name} | |||||
| if err := user.EncodePasswd(passwd); err != nil { | |||||
| user := User{Name: name, Passwd: passwd} | |||||
| if err := user.EncodePasswd(); err != nil { | |||||
| return nil, err | return nil, err | ||||
| } | } | ||||
| @@ -16,6 +16,10 @@ func init() { | |||||
| logger.SetLogger("console", "") | logger.SetLogger("console", "") | ||||
| } | } | ||||
| func Trace(format string, v ...interface{}) { | |||||
| logger.Trace(format, v...) | |||||
| } | |||||
| func Info(format string, v ...interface{}) { | func Info(format string, v ...interface{}) { | ||||
| logger.Info(format, v...) | logger.Info(format, v...) | ||||
| } | } | ||||
| @@ -27,3 +31,7 @@ func Error(format string, v ...interface{}) { | |||||
| func Warn(format string, v ...interface{}) { | func Warn(format string, v ...interface{}) { | ||||
| logger.Warn(format, v...) | logger.Warn(format, v...) | ||||
| } | } | ||||
| func Critical(format string, v ...interface{}) { | |||||
| logger.Critical(format, v...) | |||||
| } | |||||