You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
3.0 KiB

package middleware
import (
"base/app/common"
"base/app/lib/bean"
broker2 "base/app/logic/broker"
"base/app/logic/broker/user"
"base/app/model"
"git.oa00.com/go/mysql"
"github.com/gin-gonic/gin"
)
func BrokerAuth(c *gin.Context) {
token := c.GetHeader("Broker-Token")
if token == "" {
bean.Response.ResultFail(c, 100000, "用户未登录")
c.Abort()
return
}
brokerId, err := broker2.LoginLogic.Auth(token)
if err != nil {
bean.Response.ResultFail(c, 100000, err.Error())
c.Abort()
return
}
broker := model.Broker{Id: brokerId}
if mysql.Db.First(&broker).Error != nil {
bean.Response.ResultFail(c, 100000, "账号错误")
c.Abort()
return
}
c.Set("brokerId", brokerId)
c.Set("broker", broker)
}
func H5BrokerAuth(c *gin.Context) {
token := c.GetHeader("H5-Broker-Token")
if token == "" {
bean.Response.ResultFail(c, 100000, "用户未登录")
c.Abort()
return
}
brokerId, err := broker2.LoginLogic.Auth(token)
if err != nil {
bean.Response.ResultFail(c, 100000, err.Error())
c.Abort()
return
}
broker := model.Broker{Id: brokerId}
if mysql.Db.First(&broker).Error != nil {
bean.Response.ResultFail(c, 100000, "账号错误")
c.Abort()
return
}
c.Set("brokerId", brokerId)
c.Set("broker", broker)
}
// 非基础用户验证
func BrokerLevelNotBase(c *gin.Context) {
broker := user.UserLogic.GetBrokerInfo(c)
if broker.Level == model.BrokerLevelBase {
bean.Response.ResultFail(c, 100000, "权限不足")
c.Abort()
return
}
}
// 入驻商所有者
func RoleBusinessOwner(c *gin.Context) {
c.Set("roles", model.BrokerAbilityBusinessOwner)
BrokerLevelBusinessRole(c)
}
// 入驻商门店店长及以上
func RoleStoreOwner(c *gin.Context) {
c.Set("roles", model.BrokerAbilityStoreOwner)
BrokerLevelBusinessRole(c)
}
// 入驻商门店车务及以上
func RoleBusinessStaffWorker(c *gin.Context) {
c.Set("roles", model.BrokerAbilityBusinessStaffWorker)
BrokerLevelBusinessRole(c)
}
// 入驻商门店经纪人及以上
func RoleBusinessStaffBroker(c *gin.Context) {
c.Set("roles", model.BrokerAbilityBusinessStaffSale)
BrokerLevelBusinessRole(c)
}
func BrokerLevelBusinessRole(c *gin.Context) {
broker := user.UserLogic.GetBrokerInfo(c)
if broker.Level != model.BrokerLevelBusiness {
bean.Response.ResultFail(c, 100000, "非入驻商")
c.Abort()
return
}
staff := model.BrokerBusinessStoreStaff{BrokerId: user.UserLogic.GetBrokerId(c)}
if mysql.Db.Where(&staff).First(&staff).Error != nil {
bean.Response.ResultFail(c, 100000, "入驻商信息错误")
c.Abort()
return
}
roles, _ := c.Get("roles")
if !common.InArray(staff.RoleId, roles.([]uint)) {
bean.Response.ResultFail(c, 100000, "权限不足")
c.Abort()
return
}
c.Set("staff", staff)
}
func BrokerStore(c *gin.Context) {
broker := user.UserLogic.GetBrokerInfo(c)
if broker.Level != model.BrokerLevelBusiness {
bean.Response.ResultFail(c, 100001, "未授权访问")
c.Abort()
return
}
business := model.BrokerBusiness{}
if business.Id > 0 {
}
}