From 4233a68b9507ad76b733fc442721de3e20772139 Mon Sep 17 00:00:00 2001 From: DacongDA Date: Thu, 17 Oct 2024 23:36:16 +0800 Subject: [PATCH] feat: add initDataNewOnly to app.conf to skip overriding existing data in initDataFromFile() (#3294) * feat: support control whether overwrite existing data during initDataFromFile * feat: change conf var name * feat: change conf var name --- conf/app.conf | 1 + object/init_data.go | 73 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/conf/app.conf b/conf/app.conf index b7f40376..59cb8398 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -30,4 +30,5 @@ radiusSecret = "secret" quota = {"organization": -1, "user": -1, "application": -1, "provider": -1} logConfig = {"filename": "logs/casdoor.log", "maxdays":99999, "perm":"0770"} initDataFile = "./init_data.json" +initDataNewOnly = false frontendBaseDir = "../casdoor" \ No newline at end of file diff --git a/object/init_data.go b/object/init_data.go index 3cf1111d..5c293fbf 100644 --- a/object/init_data.go +++ b/object/init_data.go @@ -48,12 +48,16 @@ type InitData struct { Transactions []*Transaction `json:"transactions"` } +var initDataNewOnly bool + func InitFromFile() { initDataFile := conf.GetConfigString("initDataFile") if initDataFile == "" { return } + initDataNewOnly = conf.GetConfigBool("initDataNewOnly") + initData, err := readInitDataFromFile(initDataFile) if err != nil { panic(err) @@ -269,6 +273,9 @@ func initDefinedOrganization(organization *Organization) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := deleteOrganization(organization) if err != nil { panic(err) @@ -295,6 +302,9 @@ func initDefinedApplication(application *Application) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := deleteApplication(application) if err != nil { panic(err) @@ -316,6 +326,9 @@ func initDefinedUser(user *User) { panic(err) } if existed != nil { + if initDataNewOnly { + return + } affected, err := deleteUser(user) if err != nil { panic(err) @@ -342,6 +355,9 @@ func initDefinedCert(cert *Cert) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteCert(cert) if err != nil { panic(err) @@ -364,6 +380,9 @@ func initDefinedLdap(ldap *Ldap) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteLdap(ldap) if err != nil { panic(err) @@ -385,6 +404,9 @@ func initDefinedProvider(provider *Provider) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteProvider(provider) if err != nil { panic(err) @@ -406,6 +428,9 @@ func initDefinedModel(model *Model) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteModel(model) if err != nil { panic(err) @@ -428,6 +453,9 @@ func initDefinedPermission(permission *Permission) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := deletePermission(permission) if err != nil { panic(err) @@ -450,6 +478,9 @@ func initDefinedPayment(payment *Payment) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeletePayment(payment) if err != nil { panic(err) @@ -472,6 +503,9 @@ func initDefinedProduct(product *Product) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteProduct(product) if err != nil { panic(err) @@ -494,6 +528,9 @@ func initDefinedResource(resource *Resource) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteResource(resource) if err != nil { panic(err) @@ -516,6 +553,9 @@ func initDefinedRole(role *Role) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := deleteRole(role) if err != nil { panic(err) @@ -538,6 +578,9 @@ func initDefinedSyncer(syncer *Syncer) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteSyncer(syncer) if err != nil { panic(err) @@ -560,6 +603,9 @@ func initDefinedToken(token *Token) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteToken(token) if err != nil { panic(err) @@ -582,6 +628,9 @@ func initDefinedWebhook(webhook *Webhook) { } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteWebhook(webhook) if err != nil { panic(err) @@ -603,6 +652,9 @@ func initDefinedGroup(group *Group) { panic(err) } if existed != nil { + if initDataNewOnly { + return + } affected, err := deleteGroup(group) if err != nil { panic(err) @@ -624,6 +676,9 @@ func initDefinedAdapter(adapter *Adapter) { panic(err) } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteAdapter(adapter) if err != nil { panic(err) @@ -645,6 +700,9 @@ func initDefinedEnforcer(enforcer *Enforcer) { panic(err) } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteEnforcer(enforcer) if err != nil { panic(err) @@ -666,6 +724,9 @@ func initDefinedPlan(plan *Plan) { panic(err) } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeletePlan(plan) if err != nil { panic(err) @@ -687,6 +748,9 @@ func initDefinedPricing(pricing *Pricing) { panic(err) } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeletePricing(pricing) if err != nil { panic(err) @@ -708,6 +772,9 @@ func initDefinedInvitation(invitation *Invitation) { panic(err) } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteInvitation(invitation) if err != nil { panic(err) @@ -743,6 +810,9 @@ func initDefinedSubscription(subscription *Subscription) { panic(err) } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteSubscription(subscription) if err != nil { panic(err) @@ -764,6 +834,9 @@ func initDefinedTransaction(transaction *Transaction) { panic(err) } if existed != nil { + if initDataNewOnly { + return + } affected, err := DeleteTransaction(transaction) if err != nil { panic(err)