RbacSeeder.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. use App\AdminPermission;
  3. use App\AdminRole;
  4. use App\AdminUser;
  5. use App\Utility\Rbac;
  6. use Illuminate\Database\Seeder;
  7. use Illuminate\Support\Collection;
  8. use Illuminate\Support\Facades\Route;
  9. class RbacSeeder extends Seeder
  10. {
  11. /**
  12. * Run the database seeds.
  13. *
  14. * @return void
  15. */
  16. public function run()
  17. {
  18. //
  19. $adminUser = new AdminUser();
  20. $adminUser->fill([
  21. 'avatar' => '/uploads/avatar/20181031/5bd90252493d1.jpg',
  22. 'nickname' => '最牛逼的程序员',
  23. 'account' => 'admin',
  24. 'password' => 'admin',
  25. ]);
  26. $adminUser->save();
  27. $adminRole = new AdminRole();
  28. $adminRole->fill([
  29. 'name' => '超级管理员',
  30. 'description' => '系统最高权限',
  31. ]);
  32. $adminUser->roles()->save($adminRole);
  33. $routes = Rbac::getAllRoutes()
  34. ->map(function ($route) {
  35. return $route->rbacRule;
  36. });
  37. $adminPerm = new AdminPermission();
  38. $adminPerm->fill([
  39. 'name' => '所有权限',
  40. 'routes' => $routes,
  41. ]);
  42. $adminRole->permissions()->save($adminPerm);
  43. }
  44. }