...
|
...
|
@@ -571,3 +571,54 @@ func ValidUserPermission(urlPath string, userid int64, companyid int64) bool { |
|
|
}
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
//LoginAuthBySecretKey 使用秘钥进行登录
|
|
|
func LoginAuthBySecretKey(secretKey string) (protocol.LoginAuthToken, error) {
|
|
|
var (
|
|
|
err error
|
|
|
logintoken protocol.LoginAuthToken
|
|
|
usercompanyid int64
|
|
|
userdata *models.User
|
|
|
companyData *models.Company
|
|
|
)
|
|
|
var uclientReturn *ucenter.ResponseLogin
|
|
|
uclientReturn, err = ucenter.RequestUCenterLoginBySecret(secretKey)
|
|
|
if err != nil {
|
|
|
return logintoken, protocol.NewErrWithMessage("1")
|
|
|
}
|
|
|
userdata, err = models.GetUserByPhone(uclientReturn.Data.Phone)
|
|
|
if err != nil {
|
|
|
log.Debug("GetUserByUCenter(%d) err:%s", uclientReturn.Data.Id, err)
|
|
|
return logintoken, protocol.NewErrWithMessage("10021")
|
|
|
}
|
|
|
companyData, err = models.GetCompanyByUCenter(uclientReturn.Data.CompanyId)
|
|
|
if err != nil {
|
|
|
log.Error("获取company数据失败:%s", err)
|
|
|
return logintoken, protocol.NewErrWithMessage("10111")
|
|
|
}
|
|
|
ucompany, err := models.GetUserCompanyBy(userdata.Id, companyData.Id)
|
|
|
if err != nil {
|
|
|
log.Error("获取user_company失败;%s", err)
|
|
|
return logintoken, protocol.NewErrWithMessage("10022")
|
|
|
}
|
|
|
|
|
|
logintoken, _ = GenerateAuthToken(userdata.Id, companyData.Id, ucompany.Id)
|
|
|
//更新用户数据
|
|
|
userdata.Accid = uclientReturn.Data.Accid
|
|
|
userdata.Icon = uclientReturn.Data.Avatar
|
|
|
userdata.ImToken = uclientReturn.Data.Imtoken
|
|
|
userdata.NickName = uclientReturn.Data.NickName
|
|
|
userdata.CsAccount = uclientReturn.Data.CustomerAccount
|
|
|
userdata.LastLoginTime = time.Now()
|
|
|
err = models.UpdateUserById(userdata, []string{"Accid", "Icon", "ImToken", "NickName", "CsAccount", "LastLoginTime"})
|
|
|
if err != nil {
|
|
|
log.Error("更新用户user数据失败:%s", err)
|
|
|
}
|
|
|
ucompany.NickName = uclientReturn.Data.NickName
|
|
|
err = models.UpdateUserCompanyById(ucompany, []string{"NickName"})
|
|
|
if err != nil {
|
|
|
log.Error("更新用户user_company数据失败:%s", err)
|
|
|
}
|
|
|
InitPermission(usercompanyid, userdata.Id)
|
|
|
return logintoken, err
|
|
|
} |
...
|
...
|
|