Browse Source

fix(core): Restore deleted superadmin entities

Relates to #1307
Michael Bromley 4 years ago
parent
commit
498a5c68e7
1 changed files with 26 additions and 0 deletions
  1. 26 0
      packages/core/src/service/services/administrator.service.ts

+ 26 - 0
packages/core/src/service/services/administrator.service.ts

@@ -230,6 +230,32 @@ export class AdministratorService {
                 lastName: 'Admin',
                 roleIds: [superAdminRole.id],
             });
+        } else {
+            const superAdministrator = await this.connection.getRepository(Administrator).findOne({
+                where: {
+                    user: superAdminUser,
+                },
+            });
+            if (!superAdministrator) {
+                const administrator = new Administrator({
+                    emailAddress: superadminCredentials.identifier,
+                    firstName: 'Super',
+                    lastName: 'Admin',
+                });
+                const createdAdministrator = await this.connection
+                    .getRepository(Administrator)
+                    .save(administrator);
+                createdAdministrator.user = superAdminUser;
+                await this.connection.getRepository(Administrator).save(createdAdministrator);
+            } else if (superAdministrator.deletedAt != null) {
+                superAdministrator.deletedAt = null;
+                await this.connection.getRepository(Administrator).save(superAdministrator);
+            }
+
+            if (superAdminUser.deletedAt != null) {
+                superAdminUser.deletedAt = null;
+                await this.connection.getRepository(User).save(superAdminUser);
+            }
         }
     }
 }