[feat] 移除 resource.WithRolesCondition 方法

This commit is contained in:
what 2023-04-22 18:00:17 +08:00
parent 94364138b7
commit befa3aa0c7

View File

@ -290,94 +290,6 @@ func (this Resource) WithRolesCondition(b *db.Builder, t string, roles ...string
return nil
}
// 获取鉴权条件
func (this Resource) GetRolesCondition(u contracts.User) *db.Builder {
isFullRight := false
isFullNot := false
// NewOrmJoin := do.MustInvoke[helper.NewOrmJoin](this.container)
// GetResRelations := do.MustInvoke[GetResRelations](this.container)
// GetResource := do.MustInvoke[contracts.GetResource](this.container)
// GetResConditions := do.MustInvoke[GetResConditions](this.container)
// GetOrmConditionByRes := do.MustInvoke[GetOrmConditionByRes](this.container)
// roles := do.MustInvoke[GetResRoles](this.container)(this.GetUuid())
// subTables := lo.Reduce(roles, func(carry string, item ResRole, _ int) string {
// db := this.GetDB().Table(string(this.GetTable()), this.GetCode()).Select(db.Raw("`" + this.GetCode() + "`.*"))
// joins := lo.Filter(GetResRelations(item.Uuid), func(item ResRelation, _ int) bool {
// return item.Type == "inner" || item.Type == "left" || item.Type == "right"
// })
// conditions := GetOrmConditionByRes(GetResConditions(item.Uuid))
// for i := 0; i < len(joins); i++ {
// oResource, ok := GetResource(joins[i].ResourceCode)
// if !ok {
// continue
// }
// join := NewOrmJoin(contracts.RelationType(joins[i].Type), oResource, joins[i].Code, joins[i].RelationResource, joins[i].RelationField, joins[i].RelationForeignKey)
// // 关联扩展条件
// join.SetCondition(GetOrmConditionByRes(GetResConditions(joins[i].Uuid)))
// join.Inject(db, nil)
// }
// if len(joins) == 0 && conditions.IsEmpty() {
// // 无权限, 直接跳过这个 unoin 语句
// if carry != "" {
// return carry
// }
// // 第一个无权限除外, 避免所有用户所属角色都是无权限
// db.WhereRaw("false")
// isFullNot = true
// } else if len(joins) == 0 && conditions.IsNotEmpty() && conditions.IsRight() /* 1=1 的这种条件*/ {
// // 只要有1个满权限, 直接返回单条语句
// isFullRight = true
// return db.ToSql()
// } else if conditions.IsNotEmpty() {
// db.WhereRaw(string(conditions.ToSql(nil)))
// // 如果前面是无权限的sql查看, 这直接返回本次查询
// if isFullNot {
// isFullNot = false
// return db.ToSql()
// }
// }
// if carry != "" {
// carry += " union "
// }
// carry += db.ToSql()
// return carry
// }, "")
// // @todo this.GetCode 要换成 alias
// if isFullRight {
// this.GetDB().Table(string(this.GetTable()), this.GetCode())
// } else if isFullNot {
// this.GetDB().Table(string(this.GetTable()), this.GetCode()).WhereRaw("false")
// } else if subTables != "" {
// this.GetDB().Table(subTables, this.GetCode())
// }
// @todo this.GetCode 要换成 alias
if isFullRight {
return this.Route.GetResource().GetDB().Table(string(this.GetTable()), this.GetCode())
} else if isFullNot {
return this.Route.GetResource().GetDB().Table(string(this.GetTable()), this.GetCode()).WhereRaw("false")
} else if subTables != "" {
return this.Route.GetResource().GetDB().Table(subTables, this.GetCode())
}
return this.Route.GetResource().GetDB().Table(string(this.GetTable()), this.GetCode())
return this.GetDB().Table(string(this.GetTable()), this.GetCode())
}
// 格式化保存数据
func (this Resource) formatSaveValue(data map[string]any) {
//