代码拉取完成,页面将自动刷新
/*******************************************************************************
* 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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。