fix platform authorization and workflow integrity
This commit is contained in:
@@ -74,11 +74,19 @@ func ActiveRecords(query *gorm.DB) *gorm.DB {
|
||||
}
|
||||
|
||||
func ListPage[T any](ctx *gin.Context) {
|
||||
ListPageFiltered[T](ctx, nil)
|
||||
}
|
||||
|
||||
// ListPageFiltered applies a resource-specific exact filter before pagination.
|
||||
func ListPageFiltered[T any](ctx *gin.Context, filter func(*gorm.DB) *gorm.DB) {
|
||||
page, size := PageSize(ctx)
|
||||
var list []T
|
||||
var total int64
|
||||
model := new(T)
|
||||
databaseQuery := ApplyKeywordFilter(ctx, ActiveRecords(impl.DBService.Model(model)), model)
|
||||
if filter != nil {
|
||||
databaseQuery = filter(databaseQuery)
|
||||
}
|
||||
if err := databaseQuery.Count(&total).Error; err != nil {
|
||||
infra.Response.Error(ctx, err)
|
||||
return
|
||||
@@ -172,7 +180,7 @@ func gormColumn(tag string) string {
|
||||
|
||||
func GetByIdentity[T any](ctx *gin.Context) {
|
||||
var data T
|
||||
if err := impl.DBService.Where("identity = ?", ctx.Param("identity")).First(&data).Error; err != nil {
|
||||
if err := ActiveRecords(impl.DBService).Where("identity = ?", ctx.Param("identity")).First(&data).Error; err != nil {
|
||||
RespondRecordError(ctx, err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ func ListResource(ctx *gin.Context, model any) {
|
||||
|
||||
func GetResource(ctx *gin.Context, model any) {
|
||||
data := reflect.New(reflect.TypeOf(model).Elem())
|
||||
if err := impl.DBService.Where("identity = ?", ctx.Param("identity")).First(data.Interface()).Error; err != nil {
|
||||
if err := ActiveRecords(impl.DBService).Where("identity = ?", ctx.Param("identity")).First(data.Interface()).Error; err != nil {
|
||||
RespondRecordError(ctx, err)
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user