diff --git a/base/resource.go b/base/resource.go index 13ad2c8..1002421 100644 --- a/base/resource.go +++ b/base/resource.go @@ -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) { //