@@ -64,6 +64,29 @@ INSERT INTO Functions ([Code],[DisplayName],[ModuleId])
6464 VALUES ('Api.Logs.View','Api View Logs', @modId);
6565 END
6666 " ) ;
67+
68+
69+ // add allan if missing (hash created here once & inlined)
70+ var hash = BCrypt . Net . BCrypt . HashPassword ( "allan" ) ;
71+ migrationBuilder . Sql ( $@ "
72+ IF NOT EXISTS (SELECT 1 FROM [Users] WHERE [UserName]='allan')
73+ BEGIN
74+ INSERT INTO [Users]([UserName],[Password]) VALUES ('allan','{ hash } ');
75+ END
76+ " ) ;
77+
78+ // link allan ↔ Operator if missing
79+ migrationBuilder . Sql ( @"
80+ DECLARE @uid INT = (SELECT TOP 1 [Id] FROM [Users] WHERE [UserName]='allan');
81+ DECLARE @rid INT = (SELECT TOP 1 [Id] FROM [Roles] WHERE [Name]='Admin');
82+
83+ IF @uid IS NOT NULL AND @rid IS NOT NULL
84+ AND NOT EXISTS(SELECT 1 FROM [UserRoles] WHERE [UserId]=@uid AND [RoleId]=@rid)
85+ BEGIN
86+ INSERT INTO [UserRoles]([UserId],[RoleId]) VALUES (@uid,@rid);
87+ END
88+ " ) ;
89+
6790 }
6891
6992 protected override void Down ( MigrationBuilder migrationBuilder )
@@ -87,6 +110,16 @@ FROM Modules M
87110 name : "Type" ,
88111 table : "Modules"
89112 ) ;
113+
114+ // Remove allan user and its roles
115+ migrationBuilder . Sql ( @"
116+ DECLARE @uid INT = (SELECT TOP 1 [Id] FROM [Users] WHERE [UserName]='allan');
117+ IF @uid IS NOT NULL
118+ BEGIN
119+ DELETE FROM [UserRoles] WHERE [UserId]=@uid;
120+ DELETE FROM [Users] WHERE [Id]=@uid;
121+ END
122+ " ) ;
90123 }
91124
92125 }
0 commit comments