1 Star 0 Fork 0

WisdomClassroom/core

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
user.go 2.93 KB
一键复制 编辑 原始数据 按行查看 历史
哔u哔u 提交于 2020-02-22 12:46 . 类型:fix
/*******************************************************************************
* Copyright 2020 huanggefan.cn
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package models
import (
"gitee.com/WisdomClassroom/core"
"math/rand"
"strconv"
"time"
)
type UserModel struct {
Model
Type int `gorm:"not null; type:int; default:0"`
AccountID int `gorm:"not null; type:int; index:UserModel_accountID"`
Name string `gorm:"not null; type:varchar(32)"`
Gender int `gorm:"not null; type:int; default:0"`
PasswordSSHA string `gorm:"not null; type:varchar(128)"`
PasswordSalt string `gorm:"not null; type:varchar(128)"`
}
type UserCollegeBindModel struct {
Model
UserUUID string `gorm:"not null; type:char(32); index:userCollegeBindModel_userUUID"`
CollegeUUID string `gorm:"not null; type:char(32); index:userCollegeBindModel_collegeUUID"`
}
type UserDisciplineBindModel struct {
Model
UserUUID string `gorm:"not null; type:char(32); index:userDisciplineBindModel_userUUID"`
DisciplineUUID string `gorm:"not null; type:char(32); index:userDisciplineBindModel_disciplineUUID"`
}
type UserClassBindModel struct {
Model
UserUUID string `gorm:"not null; type:char(32); index:userClassBindModel_userUUID"`
ClassUUID string `gorm:"not null; type:char(32); index:userClassBindModel_classUUID"`
}
func (u *UserModel) ComputePasswordSSHA(passwordMD5 string, passwordSalt string) string {
return core.StringToSha256(passwordMD5 + u.PasswordSalt)
}
func (u *UserModel) Check(passwordMD5 string) bool {
return u.PasswordSSHA == u.ComputePasswordSSHA(passwordMD5, u.PasswordSalt)
}
func (u *UserModel) ResetPassword(defaultPasswordMD5 string) {
u.PasswordSalt = u.GenSalt()
u.PasswordSSHA = core.StringToSha256(defaultPasswordMD5 + u.PasswordSalt)
}
func (u *UserModel) GenSalt() string {
return core.StringToSha256(time.Now().String() +
strconv.Itoa(rand.Intn(102400)))
}
func (u *UserModel) SetGender(gender int) bool {
switch gender {
case core.UserGenderTypeCodeMan:
u.Gender = gender
case core.UserGenderTypeCodeWoMan:
u.Gender = gender
case core.UserGenderTypeCodeOther:
u.Gender = gender
default:
return false
}
return true
}
func (u *UserModel) SetType(userType int) bool {
if userType < core.UserRoleTypeCodeUndefine || userType > core.UserRoleTypeCodeDoctoralStudent {
return false
}
u.Type = userType
return true
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/WisdomClassroom/core.git
git@gitee.com:WisdomClassroom/core.git
WisdomClassroom
core
core
v0.3.0

搜索帮助