Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace Database\Seeder\Local;
- use Illuminate\Database\Seeder;
- use App\User;
- use App\Role;
- use App\Permission;
- class UsersTableSeeder extends Seeder
- {
- /**
- * Run the database seeds.
- *
- * @return void
- */
- public function run()
- {
- $permissions = Permission::default();
- $roles = Role::default();
- $totalRoles = \count($roles);
- $totalUsers = $this->askTotalUsers($totalRoles);
- foreach ($permissions as $permission) {
- Permission::firstOrCreate([
- 'name' => $permission,
- ]);
- }
- foreach ($roles as $role) {
- $role = Role::firstOrCreate([
- 'name' => trim($role),
- ]);
- if ($role->name === 'admin') {
- $role->syncPermissions(Permission::all());
- } else {
- $role->syncPermissions(Permission::where('name', 'LIKE', 'view_%')->get());
- }
- $this->createUser($role, $totalUsers);
- }
- }
- private function askTotalUsers($totalRoles): int
- {
- $totalUsers = $this->command->ask('How many users you want to create? Default ' . $totalRoles . '.', $totalRoles);
- if ($totalUsers < $totalRoles) $this->askTotalUsers($totalRoles);
- return $totalUsers;
- }
- private function createUser($role, $total): void
- {
- if ($role->name === 'admin') {
- $user = factory(User::class)->create();
- $user->assignRole($role->name);
- $this->command->warn('E-Mail Address:' . $user->email);
- $this->command->warn('Password: secret');
- } else {
- $user = factory(User::class, $total - 1)->create();
- $user->assignRole($role->name);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement