1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- use Illuminate\Support\Facades\Schema;
- use Illuminate\Database\Seeder;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Str;
- use Illuminate\Support\Facades\Config;
- class LaratrustSeeder extends Seeder
- {
- /**
- * Run the database seeds.
- *
- * @return void
- */
- public function run()
- {
- $this->command->info('Truncating User, Role and Permission tables');
- $this->truncateLaratrustTables();
- $config = config('laratrust_seeder.roles_structure');
- $mapPermission = collect(config('laratrust_seeder.permissions_map'));
- foreach ($config as $key => $modules) {
- // Create a new role
- $role = \App\Role::firstOrCreate([
- 'name' => $key,
- 'display_name' => ucwords(str_replace('_', ' ', $key)),
- 'description' => ucwords(str_replace('_', ' ', $key))
- ]);
- $permissions = [];
- $this->command->info('Creating Role '. strtoupper($key));
- // Reading role permission modules
- foreach ($modules as $module => $value) {
- foreach (explode(',', $value) as $p => $perm) {
- $permissionValue = $mapPermission->get($perm);
- $permissions[] = \App\Permission::firstOrCreate([
- 'name' => $permissionValue . '-' . $module,
- 'display_name' => ucfirst($permissionValue) . ' ' . ucfirst($module),
- 'description' => ucfirst($permissionValue) . ' ' . ucfirst($module),
- ])->id;
- $this->command->info('Creating Permission to '.$permissionValue.' for '. $module);
- }
- }
- // Attach all permissions to the role
- $role->permissions()->sync($permissions);
- if(Config::get('laratrust_seeder.create_users')) {
- $this->command->info("Creating '{$key}' user");
- // Create default user for each role
- $user = \App\User::create([
- 'name' => ucwords(str_replace('_', ' ', $key)),
- 'email' => $key.'@app.com',
- 'password' => bcrypt('password')
- ]);
- $user->attachRole($role);
- }
- }
- }
- /**
- * Truncates all the laratrust tables and the users table
- *
- * @return void
- */
- public function truncateLaratrustTables()
- {
- Schema::disableForeignKeyConstraints();
- DB::table('permission_role')->truncate();
- DB::table('permission_user')->truncate();
- DB::table('role_user')->truncate();
- if(Config::get('laratrust_seeder.truncate_tables')) {
- \App\Role::truncate();
- \App\Permission::truncate();
- }
- if(Config::get('laratrust_seeder.truncate_tables') && Config::get('laratrust_seeder.create_users')) {
- \App\User::truncate();
- }
- Schema::enableForeignKeyConstraints();
- }
- }
|