DefaultRoleAndUserCreator.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. using System.Linq;
  2. using ShwasherSys.Authorization.Roles;
  3. using ShwasherSys.Authorization.Users;
  4. using ShwasherSys.EntityFramework;
  5. using IwbZero.Authorization.Permissions;
  6. using IwbZero.Authorization.Roles;
  7. using IwbZero.Authorization.Users;
  8. using Microsoft.AspNet.Identity;
  9. namespace ShwasherSys.Migrations.SeedData
  10. {
  11. public class DefaultRoleAndUserCreator
  12. {
  13. private readonly ShwasherDbContext _context;
  14. public DefaultRoleAndUserCreator(ShwasherDbContext context)
  15. {
  16. _context = context;
  17. }
  18. public void Create()
  19. {
  20. CreateAdminRoleAndUsers();
  21. CreateSystemRoleAndUsers();
  22. }
  23. #region Admin
  24. private void CreateAdminRoleAndUsers()
  25. {
  26. //Admin role for host
  27. var adminRole = _context.Roles.FirstOrDefault(r => r.Name == RoleBase.AdminRoleName);
  28. if (adminRole == null)
  29. {
  30. adminRole = _context.Roles.Add(new SysRole
  31. {
  32. Name = RoleBase.AdminRoleName,
  33. RoleDisplayName = RoleBase.AdminRoleDisplayName,
  34. IsStatic = true,
  35. RoleType = 1
  36. });
  37. _context.SaveChanges();
  38. AddRolePermission(adminRole.Id);
  39. }
  40. else
  41. {
  42. AddRolePermission(adminRole.Id);
  43. }
  44. //Admin user
  45. var adminUser = _context.Users.FirstOrDefault(u => u.UserName == UserBase.AdminUserName);
  46. if (adminUser == null)
  47. {
  48. adminUser = _context.Users.Add(
  49. new SysUser
  50. {
  51. UserName = UserBase.AdminUserName,
  52. RealName = "Administrator",
  53. //AccountType = 1,
  54. UserType = 1,
  55. //Surname = "Administrator",
  56. EmailAddress = "admin@iwbnet.com",
  57. IsEmailConfirmed = true,
  58. Password = new PasswordHasher().HashPassword(SysUser.DefaultPassword)
  59. });
  60. _context.SaveChanges();
  61. AddUserPermission(adminUser.Id);
  62. _context.UserRoles.Add(new SysUserRole(adminUser.Id, adminRole.Id));
  63. _context.SaveChanges();
  64. }
  65. else
  66. {
  67. AddUserPermission(adminUser.Id);
  68. _context.SaveChanges();
  69. }
  70. }
  71. private void CreateSystemRoleAndUsers()
  72. {
  73. //System role for host
  74. var systemRole = _context.Roles.FirstOrDefault(r => r.Name == "System");
  75. if (systemRole == null)
  76. {
  77. systemRole = _context.Roles.Add(new SysRole
  78. {
  79. Name = "System",
  80. RoleDisplayName = "System",
  81. IsStatic = true,
  82. RoleType = 2
  83. });
  84. _context.SaveChanges();
  85. AddRolePermission(systemRole.Id);
  86. }
  87. else
  88. {
  89. AddRolePermission(systemRole.Id);
  90. }
  91. //System user
  92. var systemUser = _context.Users.FirstOrDefault(u => u.UserName == "System");
  93. if (systemUser == null)
  94. {
  95. systemUser = _context.Users.Add(
  96. new SysUser
  97. {
  98. UserName = "System",
  99. RealName = "SystemManager",
  100. //Surname = "Administrator",
  101. //AccountType = 1,
  102. UserType = 2,
  103. EmailAddress = "System@iwbnet.com",
  104. IsEmailConfirmed = true,
  105. Password = new PasswordHasher().HashPassword("system")
  106. });
  107. _context.SaveChanges();
  108. _context.UserRoles.Add(new SysUserRole(systemUser.Id, systemRole.Id));
  109. _context.SaveChanges();
  110. }
  111. }
  112. /// <summary>
  113. /// 添加用户权限
  114. /// </summary>
  115. /// <param name="userId"></param>
  116. private void AddUserPermission(long userId)
  117. {
  118. var funs = _context.Functions.Where(a => a.IsDeleted == false).OrderBy(a => a.CreationTime);
  119. foreach (var fun in funs)
  120. {
  121. //if (_context.Permissions.FirstOrDefault(a => a.Master == 1 && a.MasterValue == userId + "") == null)
  122. //{
  123. //}
  124. _context.Permissions.Add(
  125. new SysPermission
  126. {
  127. PermissionName = fun.PermissionName,
  128. IsGranted = true,
  129. Master = 1,
  130. MasterValue = userId + ""
  131. });
  132. }
  133. _context.SaveChanges();
  134. }
  135. /// <summary>
  136. /// 添加角色权限
  137. /// </summary>
  138. /// <param name="roleId"></param>
  139. private void AddRolePermission(int roleId)
  140. {
  141. var funs = _context.Functions.Where(a => a.IsDeleted == false).OrderBy(a => a.CreationTime);
  142. foreach (var fun in funs)
  143. {
  144. //if (_context.Permissions.FirstOrDefault(a => a.Master == 2 && a.MasterValue == roleId + "") == null)
  145. //{
  146. //}
  147. _context.Permissions.Add(
  148. new SysPermission
  149. {
  150. PermissionName = fun.PermissionName,
  151. IsGranted = true,
  152. Master = 2,
  153. MasterValue = roleId + ""
  154. });
  155. }
  156. _context.SaveChanges();
  157. }
  158. #endregion
  159. }
  160. }