From 5707e38912be16dc32f6bfb97728986b7e93b47e Mon Sep 17 00:00:00 2001 From: Gucheng <85475922+nomeguy@users.noreply.github.com> Date: Tue, 13 Sep 2022 20:31:22 +0800 Subject: [PATCH] feat: add batchSize to conf (#1120) --- authz/authz.go | 2 +- conf/app.conf | 1 + conf/conf.go | 33 ++++++++++++++++++++++----------- object/adapter.go | 2 +- object/permission_enforcer.go | 2 +- object/user.go | 3 ++- 6 files changed, 28 insertions(+), 15 deletions(-) diff --git a/authz/authz.go b/authz/authz.go index 05c238b5..0942d9e4 100644 --- a/authz/authz.go +++ b/authz/authz.go @@ -30,7 +30,7 @@ func InitAuthz() { var err error tableNamePrefix := conf.GetConfigString("tableNamePrefix") - a, err := xormadapter.NewAdapterWithTableName(conf.GetConfigString("driverName"), conf.GetBeegoConfDataSourceName()+conf.GetConfigString("dbName"), "casbin_rule", tableNamePrefix, true) + a, err := xormadapter.NewAdapterWithTableName(conf.GetConfigString("driverName"), conf.GetConfigDataSourceName()+conf.GetConfigString("dbName"), "casbin_rule", tableNamePrefix, true) if err != nil { panic(err) } diff --git a/conf/app.conf b/conf/app.conf index 59c0e85c..739a15f5 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -18,3 +18,4 @@ logPostOnly = true origin = staticBaseUrl = "https://cdn.casbin.org" isDemoMode = false +batchSize = 100 diff --git a/conf/conf.go b/conf/conf.go index 256522ae..38343c22 100644 --- a/conf/conf.go +++ b/conf/conf.go @@ -24,6 +24,19 @@ import ( "github.com/astaxie/beego" ) +func init() { + // this array contains the beego configuration items that may be modified via env + presetConfigItems := []string{"httpport", "appname"} + for _, key := range presetConfigItems { + if value, ok := os.LookupEnv(key); ok { + err := beego.AppConfig.Set(key, value) + if err != nil { + panic(err) + } + } + } +} + func GetConfigString(key string) string { if value, ok := os.LookupEnv(key); ok { return value @@ -55,17 +68,7 @@ func GetConfigInt64(key string) (int64, error) { return num, err } -func init() { - // this array contains the beego configuration items that may be modified via env - presetConfigItems := []string{"httpport", "appname"} - for _, key := range presetConfigItems { - if value, ok := os.LookupEnv(key); ok { - beego.AppConfig.Set(key, value) - } - } -} - -func GetBeegoConfDataSourceName() string { +func GetConfigDataSourceName() string { dataSourceName := GetConfigString("dataSourceName") runningInDocker := os.Getenv("RUNNING_IN_DOCKER") @@ -84,3 +87,11 @@ func GetBeegoConfDataSourceName() string { func IsDemoMode() bool { return strings.ToLower(GetConfigString("isDemoMode")) == "true" } + +func GetConfigBatchSize() int { + res, err := strconv.Atoi(GetConfigString("batchSize")) + if err != nil { + res = 100 + } + return res +} diff --git a/object/adapter.go b/object/adapter.go index 0ee3f9e8..749ddc40 100644 --- a/object/adapter.go +++ b/object/adapter.go @@ -43,7 +43,7 @@ func InitConfig() { } func InitAdapter(createDatabase bool) { - adapter = NewAdapter(conf.GetConfigString("driverName"), conf.GetBeegoConfDataSourceName(), conf.GetConfigString("dbName")) + adapter = NewAdapter(conf.GetConfigString("driverName"), conf.GetConfigDataSourceName(), conf.GetConfigString("dbName")) if createDatabase { adapter.CreateDatabase() } diff --git a/object/permission_enforcer.go b/object/permission_enforcer.go index 5b93e4ee..7d199973 100644 --- a/object/permission_enforcer.go +++ b/object/permission_enforcer.go @@ -29,7 +29,7 @@ func getEnforcer(permission *Permission) *casbin.Enforcer { tableName = permission.Adapter } tableNamePrefix := conf.GetConfigString("tableNamePrefix") - adapter, err := xormadapter.NewAdapterWithTableName(conf.GetConfigString("driverName"), conf.GetBeegoConfDataSourceName()+conf.GetConfigString("dbName"), tableName, tableNamePrefix, true) + adapter, err := xormadapter.NewAdapterWithTableName(conf.GetConfigString("driverName"), conf.GetConfigDataSourceName()+conf.GetConfigString("dbName"), tableName, tableNamePrefix, true) if err != nil { panic(err) } diff --git a/object/user.go b/object/user.go index 79b8316e..321048f8 100644 --- a/object/user.go +++ b/object/user.go @@ -18,6 +18,7 @@ import ( "fmt" "strings" + "github.com/casdoor/casdoor/conf" "github.com/casdoor/casdoor/util" "github.com/duo-labs/webauthn/webauthn" "xorm.io/core" @@ -487,7 +488,7 @@ func AddUsers(users []*User) bool { } func AddUsersInBatch(users []*User) bool { - batchSize := 1000 + batchSize := conf.GetConfigBatchSize() if len(users) == 0 { return false