feat: 接入商务用户资料和全局统计偏好
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
package business
|
||||
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
"kra/pkg/database/migration"
|
||||
)
|
||||
|
||||
func Migrations() []migration.Step {
|
||||
return []migration.Step{{ID: "202611030001_business_preference", Migrate: func(db *gorm.DB) error {
|
||||
// 旧表沿用;已迁移数据库不重建或重置用户偏好。
|
||||
if err := migration.CreateMissingTables(db, &preferencePO{}); err != nil {
|
||||
return err
|
||||
}
|
||||
if !db.Migrator().HasTable("sys_authorities") || !db.Migrator().HasTable("casbin_rule") {
|
||||
return nil
|
||||
}
|
||||
return db.Transaction(func(tx *gorm.DB) error {
|
||||
// 两个接口仅操作当前身份,旧系统对所有已登录用户开放。
|
||||
for _, method := range []string{"GET", "PUT"} {
|
||||
if err := tx.Exec(`INSERT INTO casbin_rule (ptype,v0,v1,v2,v3,v4,v5)
|
||||
SELECT 'p', a.authority_id, ?, ?, '', '', '' FROM sys_authorities a
|
||||
WHERE a.deleted_at IS NULL AND NOT EXISTS (
|
||||
SELECT 1 FROM casbin_rule p WHERE p.ptype='p' AND p.v0=a.authority_id AND p.v1=? AND p.v2=?)`,
|
||||
"/sw/user/preference", method, "/sw/user/preference", method).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}}}
|
||||
}
|
||||
Reference in New Issue
Block a user