| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package controllers
- import (
- "dashoo.cn/backend/api/business/register"
- "encoding/json"
- "strconv"
- "strings"
- "github.com/astaxie/beego"
- "dashoo.cn/backend/api/models"
- "dashoo.cn/business2/auth"
- "dashoo.cn/business2/userRole"
- "dashoo.cn/utils"
- )
- // Operations about tokens
- type TokenController struct {
- BaseController
- }
- // @Title CreateToken
- // @Description create token
- // @Param body body models.User4CreateToken true "The user info for create token"
- // @Success 200 {object} models.UserToken
- // @Failure 403 body is empty
- // @router / [post]
- func (this *TokenController) Post() {
- var user4CreateToken models.User4CreateToken
- json.Unmarshal(this.Ctx.Input.RequestBody, &user4CreateToken)
- svc := auth.GetAuthServic(utils.DBE)
- var user userRole.Base_User
- if user4CreateToken.Flag == 1 {
- userToken, err := models.CreateToken(user4CreateToken.Username)
- if err != nil {
- beego.Error("token:", err)
- this.Abort("401")
- }
- //写入登录日志
- ip := strings.Split(this.Ctx.Request.RemoteAddr, ":")[0]
- ipaddr := this.Ctx.Request.RemoteAddr
- svc.WriteLoginLog(utils.ToStr(user.Id), user.Username, user.AccCode, ip, ipaddr, "登录成功")
- this.Data["json"] = &userToken
- this.ServeJSON()
- } else {
- if svc.VerifyUser3DES(user4CreateToken.Username, user4CreateToken.Password, &user) {
- if user4CreateToken.Username!="yanshi"{
- sql := " UserName='" + user4CreateToken.Username + "'"
- var baseUser userRole.Base_User
- svc.GetEntity(&baseUser,sql)
- res:=utils.RBAC.GetRolesForUserInDomain("uid_"+strconv.Itoa(baseUser.Id),utils.DOMAIN)
- if len(res)<=0{
- this.Abort("777")
- }
- }
- userToken, err := models.CreateToken(user4CreateToken.Username)
- if err != nil {
- beego.Error("token:", err)
- this.Abort("401")
- }
- //写入登录日志
- ip := strings.Split(this.Ctx.Request.RemoteAddr, ":")[0]
- ipaddr := this.Ctx.Request.RemoteAddr
- svc.WriteLoginLog(utils.ToStr(user.Id), user.Username, user.AccCode, ip, ipaddr, "登录成功")
- this.Data["json"] = &userToken
- this.ServeJSON()
- } else {
- var registerUser register.OilCorporateInfo
- sql := " UserName='" + user4CreateToken.Username + "' and UserPass='"+user4CreateToken.Password+"'"
- svc.GetEntity(®isterUser,sql)
- if registerUser.UserName!=""{
- this.Abort("777")
- }else {
- this.Abort("401")
- }
- }
- }
- }
- // @Title CheckToken
- // @Description check token
- // @Success 200 {string} message
- // @Failure 401 :auth error
- // @router / [get]
- func (this *TokenController) Get() {
- _, err := this.ParseToken()
- if err != nil {
- beego.Error("checkToken:", err)
- this.Abort("401")
- }
- this.Data["json"] = map[string]string{"msg": "Token is validated"}
- this.ServeJSON()
- }
- // @Title Logout
- // @Description Logout
- // @Success 200
- // @router /logout [get]
- func (this *TokenController) Logout() {
- this.Data["json"] = map[string]string{"msg": "logout"}
- this.ServeJSON()
- }
|