|
|
@@ -117,8 +117,8 @@ func (simple *Simple) init(i *infrastructure.Infrastructure) {
|
|
|
|
|
|
permissionGroupEntities := make([]any, 0)
|
|
|
permissionEntities := make([]any, 0)
|
|
|
- permissionGroupIDs := make([]string, 0)
|
|
|
permissionIDs := make([]string, 0)
|
|
|
+ permissionInGroup := make(map[string][]string)
|
|
|
|
|
|
for permissionGroupName, permissions := range permissionGroups {
|
|
|
permissionInGroupIDs := make([]string, 0)
|
|
|
@@ -127,25 +127,30 @@ func (simple *Simple) init(i *infrastructure.Infrastructure) {
|
|
|
permissionID := strutils.SimpleUUID()
|
|
|
permissionInGroupIDs = append(permissionInGroupIDs, permissionID)
|
|
|
permissionEntities = append(permissionEntities, permission.Entity{
|
|
|
- Base: entity.Base{ID: permissionID},
|
|
|
- Name: perm[0],
|
|
|
- Description: perm[0],
|
|
|
- Resource: perm[1],
|
|
|
- Action: perm[2],
|
|
|
- UserIDFields: entity.UserIDFields{CreateUserID: adminUserID},
|
|
|
+ Base: entity.Base{ID: permissionID},
|
|
|
+ Name: perm[0],
|
|
|
+ Description: perm[0],
|
|
|
+ Resource: perm[1],
|
|
|
+ Action: perm[2],
|
|
|
+ UserIDFields: entity.UserIDFields{
|
|
|
+ CreateUserID: adminUserID,
|
|
|
+ LastUpdateUserID: adminUserID,
|
|
|
+ },
|
|
|
})
|
|
|
}
|
|
|
|
|
|
permissionIDs = append(permissionIDs, permissionInGroupIDs...)
|
|
|
|
|
|
permissionGroupID := strutils.SimpleUUID()
|
|
|
- permissionGroupIDs = append(permissionGroupIDs, permissionGroupID)
|
|
|
+ permissionInGroup[permissionGroupID] = permissionInGroupIDs
|
|
|
permissionGroupEntities = append(permissionGroupEntities, permission_group.Entity{
|
|
|
- Base: entity.Base{ID: permissionGroupID},
|
|
|
- Name: permissionGroupName,
|
|
|
- Description: permissionGroupName,
|
|
|
- PermissionIDs: permissionInGroupIDs,
|
|
|
- UserIDFields: entity.UserIDFields{CreateUserID: adminUserID},
|
|
|
+ Base: entity.Base{ID: permissionGroupID},
|
|
|
+ Name: permissionGroupName,
|
|
|
+ Description: permissionGroupName,
|
|
|
+ UserIDFields: entity.UserIDFields{
|
|
|
+ CreateUserID: adminUserID,
|
|
|
+ LastUpdateUserID: adminUserID,
|
|
|
+ },
|
|
|
})
|
|
|
}
|
|
|
|
|
|
@@ -159,16 +164,17 @@ func (simple *Simple) init(i *infrastructure.Infrastructure) {
|
|
|
UserName: adminUserName,
|
|
|
Password: encryptedAdminUserPassword,
|
|
|
Name: adminUserName,
|
|
|
- RoleIDs: []string{adminRoleID},
|
|
|
}
|
|
|
|
|
|
adminRoleEntity := &role.Entity{
|
|
|
- Base: entity.Base{ID: adminRoleID},
|
|
|
- Name: adminRoleName,
|
|
|
- Description: adminRoleName,
|
|
|
- UserIDs: []string{adminUserID},
|
|
|
- PermissionIDs: permissionIDs,
|
|
|
- UserIDFields: entity.UserIDFields{CreateUserID: adminUserID},
|
|
|
+ Base: entity.Base{ID: adminRoleID},
|
|
|
+ Name: adminRoleName,
|
|
|
+ Description: adminRoleName,
|
|
|
+ UserIDs: []string{adminUserID},
|
|
|
+ UserIDFields: entity.UserIDFields{
|
|
|
+ CreateUserID: adminUserID,
|
|
|
+ LastUpdateUserID: adminUserID,
|
|
|
+ },
|
|
|
}
|
|
|
|
|
|
err = database.Transaction(dbExecutor, func(tx database.Executor) error {
|
|
|
@@ -196,6 +202,55 @@ func (simple *Simple) init(i *infrastructure.Infrastructure) {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
+ // 关联权限组和权限
|
|
|
+ permissionGroupAndPermissionTableRows := make([]sql.TableRow, 0)
|
|
|
+ for permissionGroupID, permissionInGroupIDs := range permissionInGroup {
|
|
|
+ for _, permissionInGroupID := range permissionInGroupIDs {
|
|
|
+ tableRow := sql.NewTableRow().
|
|
|
+ Add(domain.RelationColumnName(&permission_group.Entity{}), permissionGroupID).
|
|
|
+ Add(domain.RelationColumnName(&permission.Entity{}), permissionInGroupID)
|
|
|
+
|
|
|
+ permissionGroupAndPermissionTableRows = append(permissionGroupAndPermissionTableRows, *tableRow)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ err = database.InsertBatch(tx, &sql.InsertBatchExecuteParams{
|
|
|
+ TableName: domain.RelationTableName(simple.Schema, &permission_group.Entity{}, &permission.Entity{}),
|
|
|
+ TableRowBatch: permissionGroupAndPermissionTableRows,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ // 关联管理员角色和权限
|
|
|
+ roleAndPermissionTableRows := make([]sql.TableRow, 0)
|
|
|
+ for _, permissionID := range permissionIDs {
|
|
|
+ tableRow := sql.NewTableRow().
|
|
|
+ Add(domain.RelationColumnName(&role.Entity{}), adminRoleID).
|
|
|
+ Add(domain.RelationColumnName(&permission.Entity{}), permissionID)
|
|
|
+
|
|
|
+ roleAndPermissionTableRows = append(roleAndPermissionTableRows, *tableRow)
|
|
|
+ }
|
|
|
+
|
|
|
+ err = database.InsertBatch(tx, &sql.InsertBatchExecuteParams{
|
|
|
+ TableName: domain.RelationTableName(simple.Schema, &role.Entity{}, &permission.Entity{}),
|
|
|
+ TableRowBatch: roleAndPermissionTableRows,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ // 关联管理员用户和管理员角色
|
|
|
+ err = database.Insert(tx, &sql.InsertExecuteParams{
|
|
|
+ TableName: domain.RelationTableName(simple.Schema, &user.Entity{}, &role.Entity{}),
|
|
|
+ TableRow: sql.NewTableRow().
|
|
|
+ Add(domain.RelationColumnName(&user.Entity{}), adminUserID).
|
|
|
+ Add(domain.RelationColumnName(&role.Entity{}), adminRoleID),
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
return nil
|
|
|
})
|
|
|
if err != nil {
|