multi-tenant
This commit is contained in:
@@ -58,6 +58,7 @@ func (s *UDMSubController) ResetData(c *gin.Context) {
|
||||
func (s *UDMSubController) List(c *gin.Context) {
|
||||
querys := ctx.QueryMap(c)
|
||||
querys["neId"] = ""
|
||||
querys["userName"] = ctx.LoginUserToUserName(c)
|
||||
data := s.udmSubService.Page(querys)
|
||||
c.JSON(200, result.Ok(data))
|
||||
}
|
||||
|
||||
@@ -106,10 +106,25 @@ func (r *UDMSubImpl) SelectPage(query map[string]any) map[string]any {
|
||||
err := dborm.DefaultDB().Table("sys_tenant").
|
||||
Where("tenant_name=?", v).Cols("tenant_id").Distinct().Find(&tenantID)
|
||||
if err != nil {
|
||||
log.Errorf("Find tenant_id err => %v", err)
|
||||
log.Errorf("Find tenant_id from sys_user err => %v", err)
|
||||
}
|
||||
log.Tracef("userName=%v, tenantID=%v", v, tenantID)
|
||||
if len(tenantID) > 0 {
|
||||
conditions = append(conditions, "s.tenant_id = ?")
|
||||
params = append(params, tenantID[0])
|
||||
}
|
||||
} else if v, ok := query["userName"]; ok && v != "" {
|
||||
var tenantID []string
|
||||
err := dborm.DefaultDB().Table("sys_user").
|
||||
Where("user_name=?", v).Cols("tenant_id").Distinct().Find(&tenantID)
|
||||
if err != nil {
|
||||
log.Errorf("Find tenant_id from sys_user err => %v", err)
|
||||
}
|
||||
log.Tracef("userName=%v, tenantID=%v", v, tenantID)
|
||||
if len(tenantID) > 0 {
|
||||
conditions = append(conditions, "s.tenant_id = ?")
|
||||
params = append(params, tenantID[0])
|
||||
}
|
||||
conditions = append(conditions, "s.tenant_id = ?")
|
||||
params = append(params, tenantID[0])
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
@@ -339,7 +354,7 @@ func (r *UDMSubImpl) SetTenantID(subArr *[]model.UDMSub) {
|
||||
for s := 0; s < len(*subArr); s++ {
|
||||
var tenantID []string
|
||||
err := dborm.DefaultDB().Table("sys_tenant").
|
||||
Where("tenancy_type='IMSI' and tenancy_key=?", (*subArr)[s].Imsi).Cols("parent_id").Distinct().Find(&tenantID)
|
||||
Where("status='1' and tenancy_type='IMSI' and ? like tenancy_key", (*subArr)[s].Imsi).Cols("parent_id").Distinct().Find(&tenantID)
|
||||
if err != nil {
|
||||
log.Errorf("Find tenant_id err => %v", err)
|
||||
continue
|
||||
|
||||
@@ -15,6 +15,7 @@ import (
|
||||
"be.ems/src/modules/system/model"
|
||||
"be.ems/src/modules/system/service"
|
||||
|
||||
dborm "be.ems/lib/core/datasource"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
@@ -42,6 +43,11 @@ func (s *SysLogOperateController) List(c *gin.Context) {
|
||||
querys["title"] = i18n.TFindKeyPrefix(language, "log.operate.title", v.(string))
|
||||
}
|
||||
|
||||
// multi-tenancy, only filter user setting tenant_id
|
||||
userName := ctx.LoginUserToUserName(c)
|
||||
if s.IsTenancyUser(userName) {
|
||||
querys["operName"] = userName
|
||||
}
|
||||
data := s.SysLogOperateService.SelectSysLogOperatePage(querys)
|
||||
rows := data["rows"].([]model.SysLogOperate)
|
||||
|
||||
@@ -204,3 +210,12 @@ func (s *SysLogOperateController) Export(c *gin.Context) {
|
||||
|
||||
c.FileAttachment(saveFilePath, fileName)
|
||||
}
|
||||
|
||||
func (s *SysLogOperateController) IsTenancyUser(userName string) bool {
|
||||
var tenantID []int64
|
||||
dborm.DefaultDB().Table("sys_user").Where("user_name=?", userName).Cols("tenant_id").Find(&tenantID)
|
||||
if len(tenantID) > 0 {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -99,6 +99,12 @@ func (r *SysLogOperateImpl) SelectSysLogOperatePage(query map[string]any) map[st
|
||||
params = append(params, parse.Number(endTime.(string)))
|
||||
}
|
||||
|
||||
// multi-tenancy, only filter user setting tenant_id
|
||||
if v, ok := query["operName"]; ok && v != "" {
|
||||
conditions = append(conditions, "oper_name=?")
|
||||
params = append(params, v)
|
||||
}
|
||||
|
||||
// 构建查询条件语句
|
||||
whereSql := ""
|
||||
if len(conditions) > 0 {
|
||||
|
||||
Reference in New Issue
Block a user