From 0823d5bd5aea0c2aab63644b3f29e6d7917c93e8 Mon Sep 17 00:00:00 2001 From: eryajf Date: Sun, 29 May 2022 17:53:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=8F=8A=E5=85=B6=E4=BB=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- controller/group_controller.go | 2 +- docs/docker-compose/config/init.ldif | 45 +++++++++++++++-- logic/group_logic.go | 10 ++-- public/common/init_mysql_data.go | 74 +++++++++++++++++++++++++++- 5 files changed, 118 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index e9e4b4f..ddbbb1d 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ $ docker-compose up -d `分组管理:` -![](http://t.eryajf.net/imgs/2022/05/cb7bcd851b2c972f.png) +![](http://t.eryajf.net/imgs/2022/05/e49632b76a4327ec.png) `分组内成员管理:` diff --git a/controller/group_controller.go b/controller/group_controller.go index 983ccd9..7e1ca6e 100644 --- a/controller/group_controller.go +++ b/controller/group_controller.go @@ -35,7 +35,7 @@ func (m *GroupController) UserNoInGroup(c *gin.Context) { // GetTree 接口树 func (m *GroupController) GetTree(c *gin.Context) { - req := new(request.GroupGetTreeReq) + req := new(request.GroupListReq) Run(c, req, func() (interface{}, interface{}) { return logic.Group.GetTree(c, req) }) diff --git a/docs/docker-compose/config/init.ldif b/docs/docker-compose/config/init.ldif index ff2c9fb..bfb50b5 100644 --- a/docs/docker-compose/config/init.ldif +++ b/docs/docker-compose/config/init.ldif @@ -1,7 +1,44 @@ dn: ou=people,dc=eryajf,dc=net -objectClass: organizationalUnit ou: people - -dn: ou=group,dc=eryajf,dc=net +description: 用户根目录 objectClass: organizationalUnit -ou: group \ No newline at end of file + +dn: ou=eryajf,dc=eryajf,dc=net +ou: eryajf +description: 二丫讲梵有限公司 +objectClass: top +objectClass: organizationalUnit + +dn: ou=jenkins,dc=eryajf,dc=net +ou: jenkins +description: Jenkins对应权限组管理 +objectClass: top +objectClass: organizationalUnit + +dn: cn=ceshizu,ou=eryajf,dc=eryajf,dc=net +cn: ceshizu +description: 测试组 +objectClass: top +objectClass: groupOfUniqueNames +uniquemember: cn=admin,dc=eryajf,dc=net + +dn: cn=yunweizu,ou=eryajf,dc=eryajf,dc=net +cn: yunweizu +description: 运维组 +objectClass: top +objectClass: groupOfUniqueNames +uniquemember: cn=admin,dc=eryajf,dc=net + +dn: cn=test-admin,ou=jenkins,dc=eryajf,dc=net +cn: test-admin +description: admin测试环境 +objectClass: top +objectClass: groupOfUniqueNames +uniquemember: cn=admin,dc=eryajf,dc=net + +dn: cn=prod-admin,ou=jenkins,dc=eryajf,dc=net +cn: prod-admin +description: admin正式环境 +objectClass: top +objectClass: groupOfUniqueNames +uniquemember: cn=admin,dc=eryajf,dc=net \ No newline at end of file diff --git a/logic/group_logic.go b/logic/group_logic.go index 1b671c5..b72ede4 100644 --- a/logic/group_logic.go +++ b/logic/group_logic.go @@ -107,18 +107,14 @@ func (l GroupLogic) List(c *gin.Context, req interface{}) (data interface{}, rsp // GetTree 数据树 func (l GroupLogic) GetTree(c *gin.Context, req interface{}) (data interface{}, rspError interface{}) { - r, ok := req.(*request.GroupGetTreeReq) + r, ok := req.(*request.GroupListReq) if !ok { return nil, ReqAssertErr } _ = c - rList := request.GroupListReq{} - rList.PageNum = r.PageNum - rList.PageSize = r.PageSize - rList.GroupName = r.GroupName - rList.Remark = r.Remark + var groups []*model.Group - groups, err := isql.Group.List(&rList) + groups, err := isql.Group.List(r) if err != nil { return nil, tools.NewMySqlError(fmt.Errorf("获取资源列表失败: " + err.Error())) } diff --git a/public/common/init_mysql_data.go b/public/common/init_mysql_data.go index b22b560..1cd6468 100644 --- a/public/common/init_mysql_data.go +++ b/public/common/init_mysql_data.go @@ -209,8 +209,8 @@ func InitData() { } // 3.写入用户 - newUsers := make([]model.User, 0) - users := []model.User{ + newUsers := make([]*model.User, 0) + users := []*model.User{ { Model: gorm.Model{ID: 1}, Username: "admin", @@ -597,4 +597,74 @@ func InitData() { Log.Errorf("写入casbin数据失败:%v", err) } } + + // 6.写入分组 + newGroups := make([]model.Group, 0) + groups := []model.Group{ + { + Model: gorm.Model{ID: 1}, + GroupName: "eryajf", + Remark: "二丫讲梵有限公司", + Creator: "系统", + GroupType: "ou", + ParentId: 0, + }, + { + Model: gorm.Model{ID: 2}, + GroupName: "jenkins", + Remark: "Jenkins对应权限组管理", + Creator: "系统", + GroupType: "ou", + ParentId: 0, + }, + { + Model: gorm.Model{ID: 3}, + GroupName: "ceshizu", + Remark: "测试组", + Creator: "系统", + GroupType: "cn", + Users: users[:1], + ParentId: 1, + }, + { + Model: gorm.Model{ID: 4}, + GroupName: "yunweizu", + Remark: "运维组", + Creator: "系统", + GroupType: "cn", + Users: users[:1], + ParentId: 1, + }, + { + Model: gorm.Model{ID: 5}, + GroupName: "test-admin", + Remark: "admin测试环境", + Creator: "系统", + GroupType: "cn", + Users: users[:1], + ParentId: 2, + }, + { + Model: gorm.Model{ID: 6}, + GroupName: "prod-admin", + Remark: "admin正式环境", + Creator: "系统", + GroupType: "cn", + Users: users[:1], + ParentId: 2, + }, + } + + for _, group := range groups { + err := DB.First(&group, group.ID).Error + if errors.Is(err, gorm.ErrRecordNotFound) { + newGroups = append(newGroups, group) + } + } + if len(newGroups) > 0 { + err := DB.Create(&newGroups).Error + if err != nil { + Log.Errorf("写入分组数据失败:%v", err) + } + } }