UsersRolesSeeder.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace Database\Seeders;
  3. /*
  4. * UsersRolesSeeder — выставляет роль superadmin существующему admin
  5. * и создаёт тестовых пользователей для каждой роли.
  6. * Логины: admin/editor/viewer + пароль: 1234
  7. */
  8. use App\Models\User;
  9. use Illuminate\Database\Seeder;
  10. use Illuminate\Support\Facades\Hash;
  11. class UsersRolesSeeder extends Seeder
  12. {
  13. public function run(): void
  14. {
  15. // Существующий admin → superadmin
  16. User::where('name', 'admin')->update(['role' => 'superadmin', 'is_admin' => true]);
  17. $users = [
  18. [
  19. 'name' => 'manager',
  20. 'email' => 'manager@tocha.local',
  21. 'role' => 'admin',
  22. 'is_admin' => true,
  23. 'comment' => 'Администратор (admin/1234)',
  24. ],
  25. [
  26. 'name' => 'editor',
  27. 'email' => 'editor@tocha.local',
  28. 'role' => 'editor',
  29. 'is_admin' => true,
  30. 'comment' => 'Редактор (editor/1234)',
  31. ],
  32. [
  33. 'name' => 'viewer',
  34. 'email' => 'viewer@tocha.local',
  35. 'role' => 'viewer',
  36. 'is_admin' => true,
  37. 'comment' => 'Наблюдатель (viewer/1234)',
  38. ],
  39. ];
  40. foreach ($users as $data) {
  41. User::updateOrCreate(
  42. ['name' => $data['name']],
  43. [
  44. 'email' => $data['email'],
  45. 'password' => Hash::make('1234'),
  46. 'role' => $data['role'],
  47. 'is_admin' => $data['is_admin'],
  48. ]
  49. );
  50. $this->command->info(' ' . $data['comment']);
  51. }
  52. }
  53. }