From 3ed1a5dc436ce76a9aa4d1f45963e6cdd9520d92 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Sat, 9 Nov 2019 19:27:47 +0800 Subject: [PATCH] Add: default settings rows in migration --- models/migration.go | 105 ++++++++++++++++++++++++++++++++++++++++---- pkg/conf/version.go | 1 + 2 files changed, 98 insertions(+), 8 deletions(-) diff --git a/models/migration.go b/models/migration.go index abdcf3d..556add9 100644 --- a/models/migration.go +++ b/models/migration.go @@ -27,8 +27,104 @@ func migration() { // 自动迁移模式 DB.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&User{}, &Setting{}) - // 添加初始用户 + // 创建初始管理员账户 + addDefaultUser() + + // 向设置数据表添加初始设置 + addDefaultSettings() + + // 迁移完毕后写入版本锁 version.lock + err := conf.WriteVersionLock() + if err != nil { + util.Log().Warning("无法写入版本控制锁 version.lock, ", err) + } + +} + +func addDefaultSettings() { + defaultSettings := []Setting{ + {Name: "siteURL", Value: `http://lite.aoaoao.me/`, Type: "basic"}, + {Name: "siteName", Value: `Cloudreve`, Type: "basic"}, + {Name: "siteStatus", Value: `open`, Type: "basic"}, + {Name: "regStatus", Value: `0`, Type: "register"}, + {Name: "defaultGroup", Value: `3`, Type: "register"}, + {Name: "siteKeywords", Value: `网盘,网盘`, Type: "basic"}, + {Name: "siteDes", Value: `Cloudreve`, Type: "basic"}, + {Name: "siteTitle", Value: `平步云端`, Type: "basic"}, + {Name: "fromName", Value: `Cloudreve`, Type: "mail"}, + {Name: "fromAdress", Value: `no-reply@acg.blue`, Type: "mail"}, + {Name: "smtpHost", Value: `smtp.mxhichina.com`, Type: "mail"}, + {Name: "smtpPort", Value: `25`, Type: "mail"}, + {Name: "replyTo", Value: `abslant@126.com`, Type: "mail"}, + {Name: "smtpUser", Value: `no-reply@acg.blue`, Type: "mail"}, + {Name: "smtpPass", Value: ``, Type: "mail"}, + {Name: "encriptionType", Value: `no`, Type: "mail"}, + {Name: "over_used_template", Value: `容量超额提醒
容量超额警告
亲爱的{userName}
由于{notifyReason},您在{siteTitle}的账户的容量使用超出配额,您将无法继续上传新文件,请尽快清理文件,否则我们将会禁用您的账户。
登录{siteTitle}
感谢您选择{siteTitle}。
`, Type: "mail_template"}, + {Name: "ban_time", Value: `10`, Type: "storage_policy"}, + {Name: "maxEditSize", Value: `100000`, Type: "file_edit"}, + {Name: "timeout", Value: `3600`, Type: "oss"}, + {Name: "allowdVisitorDownload", Value: `false`, Type: "share"}, + {Name: "login_captcha", Value: `0`, Type: "login"}, + {Name: "qq_login", Value: `0`, Type: "login"}, + {Name: "qq_login_id", Value: ``, Type: "login"}, + {Name: "qq_login_key", Value: ``, Type: "login"}, + {Name: "reg_captcha", Value: `0`, Type: "login"}, + {Name: "email_active", Value: `0`, Type: "register"}, + {Name: "mail_activation_template", Value: `容量超额提醒
激活{siteTitle}账户
亲爱的{userName}
感谢您注册{siteTitle},请点击下方按钮完成账户激活。
激活账户
感谢您选择{siteTitle}。
`, Type: "mail_template"}, + {Name: "forget_captcha", Value: `0`, Type: "login"}, + {Name: "mail_reset_pwd_template", Value: `重设密码
重设{siteTitle}密码
亲爱的{userName}
请点击下方按钮完成密码重设。如果非你本人操作,请忽略此邮件。
重设密码
感谢您选择{siteTitle}。
`, Type: "mail_template"}, + {Name: "allow_buy_pack", Value: `1`, Type: "pack"}, + {Name: "allow_buy_pack_by_pack", Value: `1`, Type: "pack"}, + {Name: "allow_buy_pack_by_slider", Value: `1`, Type: "pack"}, + {Name: "pack_data", Value: `[]`, Type: "pack"}, + {Name: "database_version", Value: `6`, Type: "version"}, + {Name: "payment_type", Value: `youzan`, Type: "payment"}, + {Name: "appid", Value: ``, Type: "payment"}, + {Name: "appkey", Value: ``, Type: "payment"}, + {Name: "shopid", Value: ``, Type: "payment"}, + {Name: "hot_share_num", Value: `10`, Type: "share"}, + {Name: "allow_buy_group", Value: `1`, Type: "group_sell"}, + {Name: "group_sell_data", Value: `[]`, Type: "group_sell"}, + {Name: "gravatar_server", Value: `https://v2ex.assets.uxengine.net/gravatar/`, Type: "avatar"}, + {Name: "admin_color_body", Value: `fixed-nav sticky-footer bg-light`, Type: "admin"}, + {Name: "admin_color_nav", Value: `navbar navbar-expand-lg fixed-top navbar-light bg-light`, Type: "admin"}, + {Name: "js_code", Value: ``, Type: "basic"}, + {Name: "sendfile", Value: `0`, Type: "download"}, + {Name: "defaultTheme", Value: `#3f51b5`, Type: "basic"}, + {Name: "header", Value: `X-Sendfile`, Type: "download"}, + {Name: "themes", Value: `{"#3f51b5":{"palette":{"common":{"black":"#000","white":"#fff"},"background":{"paper":"#fff","default":"#fafafa"},"primary":{"light":"#7986cb","main":"#3f51b5","dark":"#303f9f","contrastText":"#fff"},"secondary":{"light":"#ff4081","main":"#f50057","dark":"#c51162","contrastText":"#fff"},"error":{"light":"#e57373","main":"#f44336","dark":"#d32f2f","contrastText":"#fff"},"text":{"primary":"rgba(0, 0, 0, 0.87)","secondary":"rgba(0, 0, 0, 0.54)","disabled":"rgba(0, 0, 0, 0.38)","hint":"rgba(0, 0, 0, 0.38)"},"explorer":{"filename":"#474849","icon":"#8f8f8f","bgSelected":"#D5DAF0","emptyIcon":"#e8e8e8"}}}} +`, Type: "basic"}, + {Name: "refererCheck", Value: `true`, Type: "share"}, + {Name: "header", Value: `X-Sendfile`, Type: "download"}, + {Name: "aria2_tmppath", Value: `/path/to/public/download`, Type: "aria2"}, + {Name: "aria2_token", Value: `your token`, Type: "aria2"}, + {Name: "aria2_rpcurl", Value: `http://127.0.0.1:6800/`, Type: "aria2"}, + {Name: "aria2_options", Value: `{"max-tries":5}`, Type: "aria2"}, + {Name: "task_queue_token", Value: ``, Type: "task"}, + } + + for _, value := range defaultSettings { + DB.Where(Setting{Name: value.Name}).FirstOrCreate(&value) + } +} + +func addDefaultUser() { _, err := GetUser(1) + + // 未找到初始用户时,则创建 if gorm.IsRecordNotFoundError(err) { defaultUser := NewUser() //TODO 动态生成密码 @@ -45,11 +141,4 @@ func migration() { util.Log().Panic("无法创建初始用户, ", err) } } - - // 迁移完毕后写入版本锁 version.lock - err = conf.WriteVersionLock() - if err != nil { - util.Log().Warning("无法写入版本控制锁 version.lock, ", err) - } - } diff --git a/pkg/conf/version.go b/pkg/conf/version.go index e7c7724..2674845 100644 --- a/pkg/conf/version.go +++ b/pkg/conf/version.go @@ -2,6 +2,7 @@ package conf import "io/ioutil" +// 当前后端版本号 const BackendVersion = string("3.0.0-b") // WriteVersionLock 将当前版本信息写入 version.lock