From 0ea1cc6f672e86df7912f61c0393e46dfd837b3f Mon Sep 17 00:00:00 2001 From: Cairry <115769353+Cairry@users.noreply.github.com> Date: Thu, 1 Aug 2024 10:29:31 +0800 Subject: [PATCH] Fix init admin user tenants is null, del pointer (#63) * Fix audit log recorded wrong status * Reserve expired rule of the silence * Optimize tenant management add member and role * update tenants sql * Fix init admin user tenants is null, del pointer --- deploy/sql/tenants.sql | 2 +- internal/repo/tenant.go | 14 +++++++------- internal/repo/user.go | 13 ++++++++++++- internal/services/user.go | 1 + 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/deploy/sql/tenants.sql b/deploy/sql/tenants.sql index 5211e26..b71e697 100644 --- a/deploy/sql/tenants.sql +++ b/deploy/sql/tenants.sql @@ -1,2 +1,2 @@ -INSERT INTO `tenants` (`id`, `name`, `create_at`, `create_by`, `manager`, `description`, `user_number`, `rule_number`, `duty_number`, `notice_number`, `remove_protection`) VALUES ('tid-co4iic3adq7a2jjeas90', 'default', 1711876400, 'system', 'admin', 'default 租户', 999, 999, 999, 999, 1); +INSERT INTO `tenants` (`id`, `name`, `create_at`, `create_by`, `manager`, `description`, `user_number`, `rule_number`, `duty_number`, `notice_number`, `remove_protection`) VALUES ('default', 'default', 1711876400, 'system', 'admin', 'default 租户', 999, 999, 999, 999, 1); diff --git a/internal/repo/tenant.go b/internal/repo/tenant.go index 0c37a16..fb5a7c3 100644 --- a/internal/repo/tenant.go +++ b/internal/repo/tenant.go @@ -77,7 +77,7 @@ func (tr TenantRepo) Create(t models.Tenant) error { return err } - *userData.Tenants = append(*userData.Tenants, t.ID) + userData.Tenants = append(userData.Tenants, t.ID) err = tr.g.Updates(Updates{ Table: models.Member{}, Where: map[string]interface{}{ @@ -147,7 +147,7 @@ func (tr TenantRepo) List(t models.TenantQuery) (data []models.Tenant, err error } var ts = &[]models.Tenant{} - for _, tid := range *getUser.Tenants { + for _, tid := range getUser.Tenants { getT, err := tr.Tenant().Get(models.TenantQuery{ID: tid}) if err != nil { return nil, err @@ -221,14 +221,14 @@ func (tr TenantRepo) AddTenantLinkedUsers(t models.TenantLinkedUsers) error { } var exist bool - for _, tid := range *userData.Tenants { + for _, tid := range userData.Tenants { if tid == t.ID { exist = true } } if !exist { - *userData.Tenants = append(*userData.Tenants, t.ID) + userData.Tenants = append(userData.Tenants, t.ID) } err = tr.g.Updates(Updates{ Table: models.Member{}, @@ -278,14 +278,14 @@ func (tr TenantRepo) RemoveTenantLinkedUsers(t models.TenantQuery) error { } var newTenants = &[]string{} - for _, tid := range *userData.Tenants { + for _, tid := range userData.Tenants { if tid == t.ID { continue } *newTenants = append(*newTenants, tid) } - *userData.Tenants = *newTenants - + + userData.Tenants = *newTenants err = tr.g.Updates(Updates{ Table: models.Member{}, Where: map[string]interface{}{ diff --git a/internal/repo/user.go b/internal/repo/user.go index d8a0954..a22b3d8 100644 --- a/internal/repo/user.go +++ b/internal/repo/user.go @@ -93,6 +93,17 @@ func (ur UserRepo) Create(r models.Member) error { return err } + if r.UserId == "admin" { + r.Tenants = append(r.Tenants, "default") + err = ur.g.Updates(Updates{ + Table: models.Member{}, + Where: map[string]interface{}{ + "user_id = ?": r.UserId, + }, + Updates: r, + }) + } + return nil } @@ -119,7 +130,7 @@ func (ur UserRepo) Delete(r models.MemberQuery) error { return err } - for _, tid := range *userInfo.Tenants { + for _, tid := range userInfo.Tenants { err = ur.Tenant().RemoveTenantLinkedUsers(models.TenantQuery{ID: tid, UserID: r.UserId}) if err != nil { return err diff --git a/internal/services/user.go b/internal/services/user.go index 0bf01e2..867f0af 100644 --- a/internal/services/user.go +++ b/internal/services/user.go @@ -107,6 +107,7 @@ func (us userService) Register(req interface{}) (interface{}, interface{}) { if r.UserId == "" { r.UserId = cmd.RandUid() } + r.Password = hashPassword r.CreateAt = time.Now().Unix()