105 lines
2.0 KiB
Go
105 lines
2.0 KiB
Go
package user
|
|
|
|
import (
|
|
"github.com/astaxie/beego/orm"
|
|
_ "github.com/go-sql-driver/mysql"
|
|
|
|
"git.kingpenguin.tk/chteufleur/datahouse.git/models/database"
|
|
"git.kingpenguin.tk/chteufleur/datahouse.git/models/utils"
|
|
)
|
|
|
|
type User struct {
|
|
Id int64
|
|
Login string
|
|
Password string
|
|
JID string
|
|
}
|
|
|
|
func init() {
|
|
// register model
|
|
orm.RegisterModel(new(User))
|
|
}
|
|
|
|
func IsUserExist(login string) bool {
|
|
o := orm.NewOrm()
|
|
o.Using(database.Alias)
|
|
|
|
ret := false
|
|
var maps []orm.Params
|
|
_, err := o.QueryTable(new(User)).Filter("Login", login).Values(&maps)
|
|
if err == nil {
|
|
for _, _ = range maps {
|
|
ret = true
|
|
break
|
|
}
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func GetUserByLogin(login string) *User {
|
|
o := orm.NewOrm()
|
|
o.Using(database.Alias)
|
|
|
|
ret := new(User)
|
|
var maps []orm.Params
|
|
_, err := o.QueryTable(new(User)).Filter("Login", login).Values(&maps)
|
|
if err == nil {
|
|
for _, m := range maps {
|
|
ret.Id = utils.GetInt(m, "Id")
|
|
ret.Login = utils.GetString(m, "Login")
|
|
ret.Password = utils.GetString(m, "Password")
|
|
ret.JID = utils.GetString(m, "JID")
|
|
break
|
|
}
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func GetUser(id int64) *User {
|
|
o := orm.NewOrm()
|
|
o.Using(database.Alias)
|
|
|
|
ret := new(User)
|
|
var maps []orm.Params
|
|
_, err := o.QueryTable(new(User)).Filter("Id", id).Values(&maps)
|
|
if err == nil {
|
|
for _, m := range maps {
|
|
ret.Id = utils.GetInt(m, "Id")
|
|
ret.Login = utils.GetString(m, "Login")
|
|
ret.Password = utils.GetString(m, "Password")
|
|
ret.JID = utils.GetString(m, "JID")
|
|
break
|
|
}
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func AddUser(login, sha256Pass string) {
|
|
o := orm.NewOrm()
|
|
o.Using(database.Alias)
|
|
|
|
_, _ = o.Insert(&User{Login: login, Password: sha256Pass})
|
|
}
|
|
|
|
func ChangePassword(login, newPwd string) {
|
|
o := orm.NewOrm()
|
|
o.Using(database.Alias)
|
|
|
|
user := GetUserByLogin(login)
|
|
if o.Read(user) == nil {
|
|
user.Password = newPwd
|
|
o.Update(user)
|
|
}
|
|
}
|
|
|
|
func ChangeJID(login, newJid string) {
|
|
o := orm.NewOrm()
|
|
o.Using(database.Alias)
|
|
|
|
user := GetUserByLogin(login)
|
|
if o.Read(user) == nil {
|
|
user.JID = newJid
|
|
o.Update(user)
|
|
}
|
|
}
|