You've already forked pocketbase
mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-11-25 23:52:32 +02:00
synced with master
This commit is contained in:
@@ -381,8 +381,10 @@ migrate((db) => {
|
||||
|
||||
collection.name = "test456_update"
|
||||
collection.type = "base"
|
||||
collection.listRule = null
|
||||
collection.deleteRule = "updated > 0 && @request.auth.id != ''"
|
||||
collection.listRule = "@request.auth.id != ''"
|
||||
collection.createRule = "id = \"nil_update\""
|
||||
collection.updateRule = "id = \"2_update\""
|
||||
collection.deleteRule = null
|
||||
collection.options = {}
|
||||
collection.indexes = [
|
||||
"create index test1 on test456_update (f1_name)"
|
||||
@@ -430,7 +432,9 @@ migrate((db) => {
|
||||
collection.name = "test456"
|
||||
collection.type = "auth"
|
||||
collection.listRule = "@request.auth.id != '' && created > 0"
|
||||
collection.deleteRule = null
|
||||
collection.createRule = null
|
||||
collection.updateRule = "id = \"2\""
|
||||
collection.deleteRule = "id = \"3\""
|
||||
collection.options = {
|
||||
"allowEmailAuth": false,
|
||||
"allowOAuth2Auth": false,
|
||||
@@ -507,9 +511,13 @@ func init() {
|
||||
|
||||
collection.Type = "base"
|
||||
|
||||
collection.ListRule = nil
|
||||
collection.ListRule = types.Pointer("@request.auth.id != ''")
|
||||
|
||||
collection.DeleteRule = types.Pointer("updated > 0 && @request.auth.id != ''")
|
||||
collection.CreateRule = types.Pointer("id = \"nil_update\"")
|
||||
|
||||
collection.UpdateRule = types.Pointer("id = \"2_update\"")
|
||||
|
||||
collection.DeleteRule = nil
|
||||
|
||||
options := map[string]any{}
|
||||
json.Unmarshal([]byte(` + "`" + `{}` + "`" + `), &options)
|
||||
@@ -572,7 +580,11 @@ func init() {
|
||||
|
||||
collection.ListRule = types.Pointer("@request.auth.id != '' && created > 0")
|
||||
|
||||
collection.DeleteRule = nil
|
||||
collection.CreateRule = nil
|
||||
|
||||
collection.UpdateRule = types.Pointer("id = \"2\"")
|
||||
|
||||
collection.DeleteRule = types.Pointer("id = \"3\"")
|
||||
|
||||
options := map[string]any{}
|
||||
json.Unmarshal([]byte(` + "`" + `{
|
||||
@@ -653,6 +665,9 @@ func init() {
|
||||
collection.Updated = collection.Created
|
||||
collection.ListRule = types.Pointer("@request.auth.id != '' && created > 0")
|
||||
collection.ViewRule = types.Pointer(`id = "1"`)
|
||||
collection.UpdateRule = types.Pointer(`id = "2"`)
|
||||
collection.CreateRule = nil
|
||||
collection.DeleteRule = types.Pointer(`id = "3"`)
|
||||
collection.Indexes = types.JsonArray[string]{"create index test1 on test456 (f1_name)"}
|
||||
collection.SetOptions(models.CollectionAuthOptions{
|
||||
ManageRule: types.Pointer("created > 0"),
|
||||
@@ -691,7 +706,11 @@ func init() {
|
||||
collection.Name = "test456_update"
|
||||
collection.Type = models.CollectionTypeBase
|
||||
collection.DeleteRule = types.Pointer(`updated > 0 && @request.auth.id != ''`)
|
||||
collection.ListRule = nil
|
||||
collection.ListRule = types.Pointer("@request.auth.id != ''")
|
||||
collection.ViewRule = types.Pointer(`id = "1"`) // no change
|
||||
collection.UpdateRule = types.Pointer(`id = "2_update"`)
|
||||
collection.CreateRule = types.Pointer(`id = "nil_update"`)
|
||||
collection.DeleteRule = nil
|
||||
collection.Indexes = types.JsonArray[string]{
|
||||
"create index test1 on test456_update (f1_name)",
|
||||
}
|
||||
|
||||
@@ -137,53 +137,61 @@ func (p *plugin) jsDiffTemplate(new *models.Collection, old *models.Collection)
|
||||
// note: strconv.Quote is used because %q converts the rule operators in unicode char codes
|
||||
// ---
|
||||
|
||||
formatRule := func(prop string, rule *string) string {
|
||||
if rule == nil {
|
||||
return fmt.Sprintf("%s.%s = null", varName, prop)
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s.%s = %s", varName, prop, strconv.Quote(*rule))
|
||||
}
|
||||
|
||||
if old.ListRule != new.ListRule {
|
||||
if old.ListRule != nil && new.ListRule == nil {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.listRule = null", varName))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.listRule = %s", varName, strconv.Quote(*old.ListRule)))
|
||||
} else if old.ListRule == nil && new.ListRule != nil || *old.ListRule != *new.ListRule {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.listRule = %s", varName, strconv.Quote(*new.ListRule)))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.listRule = null", varName))
|
||||
oldRule := formatRule("listRule", old.ListRule)
|
||||
newRule := formatRule("listRule", new.ListRule)
|
||||
|
||||
if oldRule != newRule {
|
||||
upParts = append(upParts, newRule)
|
||||
downParts = append(downParts, oldRule)
|
||||
}
|
||||
}
|
||||
|
||||
if old.ViewRule != new.ViewRule {
|
||||
if old.ViewRule != nil && new.ViewRule == nil {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.viewRule = null", varName))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.viewRule = %s", varName, strconv.Quote(*old.ViewRule)))
|
||||
} else if old.ViewRule == nil && new.ViewRule != nil || *old.ViewRule != *new.ViewRule {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.viewRule = %s", varName, strconv.Quote(*new.ViewRule)))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.viewRule = null", varName))
|
||||
oldRule := formatRule("viewRule", old.ViewRule)
|
||||
newRule := formatRule("viewRule", new.ViewRule)
|
||||
|
||||
if oldRule != newRule {
|
||||
upParts = append(upParts, newRule)
|
||||
downParts = append(downParts, oldRule)
|
||||
}
|
||||
}
|
||||
|
||||
if old.CreateRule != new.CreateRule {
|
||||
if old.CreateRule != nil && new.CreateRule == nil {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.createRule = null", varName))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.createRule = %s", varName, strconv.Quote(*old.CreateRule)))
|
||||
} else if old.CreateRule == nil && new.CreateRule != nil || *old.CreateRule != *new.CreateRule {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.createRule = %s", varName, strconv.Quote(*new.CreateRule)))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.createRule = null", varName))
|
||||
oldRule := formatRule("createRule", old.CreateRule)
|
||||
newRule := formatRule("createRule", new.CreateRule)
|
||||
|
||||
if oldRule != newRule {
|
||||
upParts = append(upParts, newRule)
|
||||
downParts = append(downParts, oldRule)
|
||||
}
|
||||
}
|
||||
|
||||
if old.UpdateRule != new.UpdateRule {
|
||||
if old.UpdateRule != nil && new.UpdateRule == nil {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.updateRule = null", varName))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.updateRule = %s", varName, strconv.Quote(*old.UpdateRule)))
|
||||
} else if old.UpdateRule == nil && new.UpdateRule != nil || *old.UpdateRule != *new.UpdateRule {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.updateRule = %s", varName, strconv.Quote(*new.UpdateRule)))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.updateRule = null", varName))
|
||||
oldRule := formatRule("updateRule", old.UpdateRule)
|
||||
newRule := formatRule("updateRule", new.UpdateRule)
|
||||
|
||||
if oldRule != newRule {
|
||||
upParts = append(upParts, newRule)
|
||||
downParts = append(downParts, oldRule)
|
||||
}
|
||||
}
|
||||
|
||||
if old.DeleteRule != new.DeleteRule {
|
||||
if old.DeleteRule != nil && new.DeleteRule == nil {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.deleteRule = null", varName))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.deleteRule = %s", varName, strconv.Quote(*old.DeleteRule)))
|
||||
} else if old.DeleteRule == nil && new.DeleteRule != nil || *old.DeleteRule != *new.DeleteRule {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.deleteRule = %s", varName, strconv.Quote(*new.DeleteRule)))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.deleteRule = null", varName))
|
||||
oldRule := formatRule("deleteRule", old.DeleteRule)
|
||||
newRule := formatRule("deleteRule", new.DeleteRule)
|
||||
|
||||
if oldRule != newRule {
|
||||
upParts = append(upParts, newRule)
|
||||
downParts = append(downParts, oldRule)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -521,53 +529,61 @@ func (p *plugin) goDiffTemplate(new *models.Collection, old *models.Collection)
|
||||
// note: strconv.Quote is used because %q converts the rule operators in unicode char codes
|
||||
// ---
|
||||
|
||||
formatRule := func(prop string, rule *string) string {
|
||||
if rule == nil {
|
||||
return fmt.Sprintf("%s.%s = nil\n", varName, prop)
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s.%s = types.Pointer(%s)\n", varName, prop, strconv.Quote(*rule))
|
||||
}
|
||||
|
||||
if old.ListRule != new.ListRule {
|
||||
if old.ListRule != nil && new.ListRule == nil {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.ListRule = nil\n", varName))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.ListRule = types.Pointer(%s)\n", varName, strconv.Quote(*old.ListRule)))
|
||||
} else if old.ListRule == nil && new.ListRule != nil || *old.ListRule != *new.ListRule {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.ListRule = types.Pointer(%s)\n", varName, strconv.Quote(*new.ListRule)))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.ListRule = nil\n", varName))
|
||||
oldRule := formatRule("ListRule", old.ListRule)
|
||||
newRule := formatRule("ListRule", new.ListRule)
|
||||
|
||||
if oldRule != newRule {
|
||||
upParts = append(upParts, newRule)
|
||||
downParts = append(downParts, oldRule)
|
||||
}
|
||||
}
|
||||
|
||||
if old.ViewRule != new.ViewRule {
|
||||
if old.ViewRule != nil && new.ViewRule == nil {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.ViewRule = nil\n", varName))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.ViewRule = types.Pointer(%s)\n", varName, strconv.Quote(*old.ViewRule)))
|
||||
} else if old.ViewRule == nil && new.ViewRule != nil || *old.ViewRule != *new.ViewRule {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.ViewRule = types.Pointer(%s)\n", varName, strconv.Quote(*new.ViewRule)))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.ViewRule = nil\n", varName))
|
||||
oldRule := formatRule("ViewRule", old.ViewRule)
|
||||
newRule := formatRule("ViewRule", new.ViewRule)
|
||||
|
||||
if oldRule != newRule {
|
||||
upParts = append(upParts, newRule)
|
||||
downParts = append(downParts, oldRule)
|
||||
}
|
||||
}
|
||||
|
||||
if old.CreateRule != new.CreateRule {
|
||||
if old.CreateRule != nil && new.CreateRule == nil {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.CreateRule = nil\n", varName))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.CreateRule = types.Pointer(%s)\n", varName, strconv.Quote(*old.CreateRule)))
|
||||
} else if old.CreateRule == nil && new.CreateRule != nil || *old.CreateRule != *new.CreateRule {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.CreateRule = types.Pointer(%s)\n", varName, strconv.Quote(*new.CreateRule)))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.CreateRule = nil\n", varName))
|
||||
oldRule := formatRule("CreateRule", old.CreateRule)
|
||||
newRule := formatRule("CreateRule", new.CreateRule)
|
||||
|
||||
if oldRule != newRule {
|
||||
upParts = append(upParts, newRule)
|
||||
downParts = append(downParts, oldRule)
|
||||
}
|
||||
}
|
||||
|
||||
if old.UpdateRule != new.UpdateRule {
|
||||
if old.UpdateRule != nil && new.UpdateRule == nil {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.UpdateRule = nil\n", varName))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.UpdateRule = types.Pointer(%s)\n", varName, strconv.Quote(*old.UpdateRule)))
|
||||
} else if old.UpdateRule == nil && new.UpdateRule != nil || *old.UpdateRule != *new.UpdateRule {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.UpdateRule = types.Pointer(%s)\n", varName, strconv.Quote(*new.UpdateRule)))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.UpdateRule = nil\n", varName))
|
||||
oldRule := formatRule("UpdateRule", old.UpdateRule)
|
||||
newRule := formatRule("UpdateRule", new.UpdateRule)
|
||||
|
||||
if oldRule != newRule {
|
||||
upParts = append(upParts, newRule)
|
||||
downParts = append(downParts, oldRule)
|
||||
}
|
||||
}
|
||||
|
||||
if old.DeleteRule != new.DeleteRule {
|
||||
if old.DeleteRule != nil && new.DeleteRule == nil {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.DeleteRule = nil\n", varName))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.DeleteRule = types.Pointer(%s)\n", varName, strconv.Quote(*old.DeleteRule)))
|
||||
} else if old.DeleteRule == nil && new.DeleteRule != nil || *old.DeleteRule != *new.DeleteRule {
|
||||
upParts = append(upParts, fmt.Sprintf("%s.DeleteRule = types.Pointer(%s)\n", varName, strconv.Quote(*new.DeleteRule)))
|
||||
downParts = append(downParts, fmt.Sprintf("%s.DeleteRule = nil\n", varName))
|
||||
oldRule := formatRule("DeleteRule", old.DeleteRule)
|
||||
newRule := formatRule("DeleteRule", new.DeleteRule)
|
||||
|
||||
if oldRule != newRule {
|
||||
upParts = append(upParts, newRule)
|
||||
downParts = append(downParts, oldRule)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user