EmployeesTableSeeder.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. use App\Shop\Employees\Employee;
  3. use App\Shop\Permissions\Permission;
  4. use App\Shop\Roles\Repositories\RoleRepository;
  5. use App\Shop\Roles\Role;
  6. use Illuminate\Database\Seeder;
  7. class EmployeesTableSeeder extends Seeder
  8. {
  9. public function run()
  10. {
  11. $createProductPerm = factory(Permission::class)->create([
  12. 'name' => 'create-product',
  13. 'display_name' => 'Create product'
  14. ]);
  15. $viewProductPerm = factory(Permission::class)->create([
  16. 'name' => 'view-product',
  17. 'display_name' => 'View product'
  18. ]);
  19. $updateProductPerm = factory(Permission::class)->create([
  20. 'name' => 'update-product',
  21. 'display_name' => 'Update product'
  22. ]);
  23. $deleteProductPerm = factory(Permission::class)->create([
  24. 'name' => 'delete-product',
  25. 'display_name' => 'Delete product'
  26. ]);
  27. $updateOrderPerm = factory(Permission::class)->create([
  28. 'name' => 'update-order',
  29. 'display_name' => 'Update order'
  30. ]);
  31. $employee = factory(Employee::class)->create([
  32. 'email' => 'john@doe.com'
  33. ]);
  34. $super = factory(Role::class)->create([
  35. 'name' => 'superadmin',
  36. 'display_name' => 'Super Admin'
  37. ]);
  38. $roleSuperRepo = new RoleRepository($super);
  39. $roleSuperRepo->attachToPermission($createProductPerm);
  40. $roleSuperRepo->attachToPermission($viewProductPerm);
  41. $roleSuperRepo->attachToPermission($updateProductPerm);
  42. $roleSuperRepo->attachToPermission($deleteProductPerm);
  43. $roleSuperRepo->attachToPermission($updateOrderPerm);
  44. $employee->roles()->save($super);
  45. $employee = factory(Employee::class)->create([
  46. 'email' => 'admin@doe.com'
  47. ]);
  48. $admin = factory(Role::class)->create([
  49. 'name' => 'admin',
  50. 'display_name' => 'Admin'
  51. ]);
  52. $roleAdminRepo = new RoleRepository($admin);
  53. $roleAdminRepo->attachToPermission($createProductPerm);
  54. $roleAdminRepo->attachToPermission($viewProductPerm);
  55. $roleAdminRepo->attachToPermission($updateProductPerm);
  56. $roleAdminRepo->attachToPermission($deleteProductPerm);
  57. $roleAdminRepo->attachToPermission($updateOrderPerm);
  58. $employee->roles()->save($admin);
  59. $employee = factory(Employee::class)->create([
  60. 'email' => 'clerk@doe.com'
  61. ]);
  62. $clerk = factory(Role::class)->create([
  63. 'name' => 'clerk',
  64. 'display_name' => 'Clerk'
  65. ]);
  66. $roleClerkRepo = new RoleRepository($clerk);
  67. $roleClerkRepo->attachToPermission($createProductPerm);
  68. $roleClerkRepo->attachToPermission($viewProductPerm);
  69. $roleClerkRepo->attachToPermission($updateProductPerm);
  70. $employee->roles()->save($clerk);
  71. }
  72. }