UserTableSeeder.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. <?php
  2. use Illuminate\Database\Seeder;
  3. class UserTableSeeder extends Seeder
  4. {
  5. /**
  6. * Run the database seeds.
  7. *
  8. * @return void
  9. */
  10. public function run()
  11. {
  12. //清空表
  13. \Illuminate\Support\Facades\DB::statement('SET FOREIGN_KEY_CHECKS=0;');
  14. \Illuminate\Support\Facades\DB::table('model_has_permissions')->truncate();
  15. \Illuminate\Support\Facades\DB::table('model_has_roles')->truncate();
  16. \Illuminate\Support\Facades\DB::table('role_has_permissions')->truncate();
  17. \Illuminate\Support\Facades\DB::table('users')->truncate();
  18. \Illuminate\Support\Facades\DB::table('roles')->truncate();
  19. \Illuminate\Support\Facades\DB::table('permissions')->truncate();
  20. \Illuminate\Support\Facades\DB::statement('SET FOREIGN_KEY_CHECKS=1;');
  21. //用户
  22. $user = \App\Models\User::create([
  23. 'username' => 'root',
  24. 'phone' => '18908221080',
  25. 'name' => '超级管理员',
  26. 'email' => 'root@dgg.net',
  27. 'password' => bcrypt('123456'),
  28. 'uuid' => \Faker\Provider\Uuid::uuid()
  29. ]);
  30. //角色
  31. $role = \App\Models\Role::create([
  32. 'name' => 'root',
  33. 'display_name' => '超级管理员'
  34. ]);
  35. //权限
  36. $permissions = [
  37. [
  38. 'name' => 'system.manage',
  39. 'display_name' => '系统管理',
  40. 'route' => '',
  41. 'icon_id' => '100',
  42. 'child' => [
  43. [
  44. 'name' => 'system.user',
  45. 'display_name' => '用户管理',
  46. 'route' => 'admin.user',
  47. 'icon_id' => '123',
  48. 'child' => [
  49. ['name' => 'system.user.create', 'display_name' => '添加用户','route'=>'admin.user.create'],
  50. ['name' => 'system.user.edit', 'display_name' => '编辑用户','route'=>'admin.user.edit'],
  51. ['name' => 'system.user.destroy', 'display_name' => '删除用户','route'=>'admin.user.destroy'],
  52. ['name' => 'system.user.role', 'display_name' => '分配角色','route'=>'admin.user.role'],
  53. ['name' => 'system.user.permission', 'display_name' => '分配权限','route'=>'admin.user.permission'],
  54. ]
  55. ],
  56. [
  57. 'name' => 'system.role',
  58. 'display_name' => '角色管理',
  59. 'route' => 'admin.role',
  60. 'icon_id' => '121',
  61. 'child' => [
  62. ['name' => 'system.role.create', 'display_name' => '添加角色','route'=>'admin.role.create'],
  63. ['name' => 'system.role.edit', 'display_name' => '编辑角色','route'=>'admin.role.edit'],
  64. ['name' => 'system.role.destroy', 'display_name' => '删除角色','route'=>'admin.role.destroy'],
  65. ['name' => 'system.role.permission', 'display_name' => '分配权限','route'=>'admin.role.permission'],
  66. ]
  67. ],
  68. [
  69. 'name' => 'system.permission',
  70. 'display_name' => '权限管理',
  71. 'route' => 'admin.permission',
  72. 'icon_id' => '12',
  73. 'child' => [
  74. ['name' => 'system.permission.create', 'display_name' => '添加权限','route'=>'admin.permission.create'],
  75. ['name' => 'system.permission.edit', 'display_name' => '编辑权限','route'=>'admin.permission.edit'],
  76. ['name' => 'system.permission.destroy', 'display_name' => '删除权限','route'=>'admin.permission.destroy'],
  77. ]
  78. ],
  79. ]
  80. ],
  81. [
  82. 'name' => 'zixun.manage',
  83. 'display_name' => '资讯管理',
  84. 'route' => '',
  85. 'icon_id' => '100',
  86. 'child' => [
  87. [
  88. 'name' => 'zixun.category',
  89. 'display_name' => '分类管理',
  90. 'route' => 'admin.category',
  91. 'icon_id' => '29',
  92. 'child' => [
  93. ['name' => 'zixun.category.create', 'display_name' => '添加分类','route'=>'admin.category.create'],
  94. ['name' => 'zixun.category.edit', 'display_name' => '编辑分类','route'=>'admin.category.edit'],
  95. ['name' => 'zixun.category.destroy', 'display_name' => '删除分类','route'=>'admin.category.destroy'],
  96. ]
  97. ],
  98. [
  99. 'name' => 'zixun.tag',
  100. 'display_name' => '标签管理',
  101. 'route' => 'admin.tag',
  102. 'icon_id' => '15',
  103. 'child' => [
  104. ['name' => 'zixun.tag.create', 'display_name' => '添加标签','route'=>'admin.tag.create'],
  105. ['name' => 'zixun.tag.edit', 'display_name' => '编辑标签','route'=>'admin.tag.edit'],
  106. ['name' => 'zixun.tag.destroy', 'display_name' => '删除标签','route'=>'admin.tag.destroy'],
  107. ]
  108. ],
  109. [
  110. 'name' => 'zixun.article',
  111. 'display_name' => '文章管理',
  112. 'route' => 'admin.article',
  113. 'icon_id' => '89',
  114. 'child' => [
  115. ['name' => 'zixun.article.create', 'display_name' => '添加文章','route'=>'admin.article.create'],
  116. ['name' => 'zixun.article.edit', 'display_name' => '编辑文章','route'=>'admin.article.edit'],
  117. ['name' => 'zixun.article.destroy', 'display_name' => '删除文章','route'=>'admin.article.destroy'],
  118. ]
  119. ],
  120. ]
  121. ],
  122. [
  123. 'name' => 'config.manage',
  124. 'display_name' => '配置管理',
  125. 'route' => '',
  126. 'icon_id' => '28',
  127. 'child' => [
  128. [
  129. 'name' => 'config.site',
  130. 'display_name' => '站点配置',
  131. 'route' => 'admin.site',
  132. 'icon_id' => '25',
  133. 'child' => [
  134. ['name' => 'config.site.update', 'display_name' => '更新配置','route'=>'admin.site.update']
  135. ]
  136. ],
  137. [
  138. 'name' => 'config.position',
  139. 'display_name' => '广告位置',
  140. 'route' => 'admin.position',
  141. 'icon_id' => '30',
  142. 'child' => [
  143. ['name' => 'config.position.create', 'display_name' => '添加广告位','route'=>'admin.position.create'],
  144. ['name' => 'config.position.edit', 'display_name' => '编辑广告位','route'=>'admin.position.edit'],
  145. ['name' => 'config.position.destroy', 'display_name' => '删除广告位','route'=>'admin.position.destroy'],
  146. ]
  147. ],
  148. [
  149. 'name' => 'config.advert',
  150. 'display_name' => '广告信息',
  151. 'route' => 'admin.advert',
  152. 'icon_id' => '107',
  153. 'child' => [
  154. ['name' => 'config.advert.create', 'display_name' => '添加信息','route'=>'admin.advert.create'],
  155. ['name' => 'config.advert.edit', 'display_name' => '编辑信息','route'=>'admin.advert.edit'],
  156. ['name' => 'config.advert.destroy', 'display_name' => '删除信息','route'=>'admin.advert.destroy'],
  157. ]
  158. ],
  159. ]
  160. ],
  161. [
  162. 'name' => 'member.manage',
  163. 'display_name' => '会员管理',
  164. 'route' => '',
  165. 'icon_id' => '59',
  166. 'child' => [
  167. [
  168. 'name' => 'member.member',
  169. 'display_name' => '账号管理',
  170. 'route' => 'admin.member',
  171. 'icon_id' => '10',
  172. 'child' => [
  173. ['name' => 'member.member.create', 'display_name' => '添加账号','route'=>'admin.member.create'],
  174. ['name' => 'member.member.edit', 'display_name' => '编辑账号','route'=>'admin.member.edit'],
  175. ['name' => 'member.member.destroy', 'display_name' => '删除账号','route'=>'admin.member.destroy'],
  176. ]
  177. ],
  178. ]
  179. ],
  180. [
  181. 'name' => 'message.manage',
  182. 'display_name' => '消息管理',
  183. 'route' => '',
  184. 'icon_id' => '24',
  185. 'child' => [
  186. [
  187. 'name' => 'message.message.mine',
  188. 'display_name' => '我的消息',
  189. 'route' => 'admin.message.mine',
  190. 'icon_id' => '124',
  191. ],
  192. [
  193. 'name' => 'message.message',
  194. 'display_name' => '消息管理',
  195. 'route' => 'admin.message',
  196. 'icon_id' => '24',
  197. 'child' => [
  198. ['name' => 'message.message.create', 'display_name' => '推送消息','route'=>'admin.message.create'],
  199. ['name' => 'message.message.destroy', 'display_name' => '删除消息','route'=>'admin.message.destroy'],
  200. ]
  201. ],
  202. ]
  203. ]
  204. ];
  205. foreach ($permissions as $pem1) {
  206. //生成一级权限
  207. $p1 = \App\Models\Permission::create([
  208. 'name' => $pem1['name'],
  209. 'display_name' => $pem1['display_name'],
  210. 'route' => $pem1['route']??'',
  211. 'icon_id' => $pem1['icon_id']??1,
  212. ]);
  213. //为角色添加权限
  214. $role->givePermissionTo($p1);
  215. //为用户添加权限
  216. $user->givePermissionTo($p1);
  217. if (isset($pem1['child'])) {
  218. foreach ($pem1['child'] as $pem2) {
  219. //生成二级权限
  220. $p2 = \App\Models\Permission::create([
  221. 'name' => $pem2['name'],
  222. 'display_name' => $pem2['display_name'],
  223. 'parent_id' => $p1->id,
  224. 'route' => $pem2['route']??1,
  225. 'icon_id' => $pem2['icon_id']??1,
  226. ]);
  227. //为角色添加权限
  228. $role->givePermissionTo($p2);
  229. //为用户添加权限
  230. $user->givePermissionTo($p2);
  231. if (isset($pem2['child'])) {
  232. foreach ($pem2['child'] as $pem3) {
  233. //生成三级权限
  234. $p3 = \App\Models\Permission::create([
  235. 'name' => $pem3['name'],
  236. 'display_name' => $pem3['display_name'],
  237. 'parent_id' => $p2->id,
  238. 'route' => $pem3['route']??'',
  239. 'icon_id' => $pem3['icon_id']??1,
  240. ]);
  241. //为角色添加权限
  242. $role->givePermissionTo($p3);
  243. //为用户添加权限
  244. $user->givePermissionTo($p3);
  245. }
  246. }
  247. }
  248. }
  249. }
  250. //为用户添加角色
  251. $user->assignRole($role);
  252. //初始化的角色
  253. $roles = [
  254. ['name' => 'business', 'display_name' => '商务'],
  255. ['name' => 'assessor', 'display_name' => '审核员'],
  256. ['name' => 'channel', 'display_name' => '渠道专员'],
  257. ['name' => 'editor', 'display_name' => '编辑人员'],
  258. ['name' => 'admin', 'display_name' => '管理员'],
  259. ];
  260. foreach ($roles as $role) {
  261. \App\Models\Role::create($role);
  262. }
  263. }
  264. }