/** * Run the database seeds. * * @return void */ public function run() { // Add first user (Admin) DB::table('users')->insert(['username' => 'admin', 'email' => '*****@*****.**', 'password' => bcrypt('password'), 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s')]); // Create Admin role $roleAdmin = Defender::createRole('admin'); $permission = Defender::createPermission('root', 'Unlimited access'); $user = User::where('username', 'admin')->first(); // Add the user to root group. $roleAdmin->attachPermission($permission); // Now 'admin' user is in the Root group. $user->attachRole($roleAdmin); }
/** * Run the database seeds. * * @return void */ public function run() { // Create Roles $roleRoot = Defender::createRole('root'); $roleOfficer = Defender::createRole('officer'); $roleGuildie = Defender::createRole('guildie'); $roleNew = Defender::createRole('new'); // Create Permissions $permissions = ['news' => ['create' => ['desc' => 'Ability to Create/Edit/Delete news posts', 'role' => ['root', 'officer']]], 'user' => ['edit' => ['desc' => 'Able to edit user editable fields', 'role' => ['root', 'officer', 'guildie', 'new']], 'ban' => ['desc' => 'Able to set/remove bans', 'role' => ['root', 'officer']]], 'forum' => ['thread.edit' => ['desc' => 'Edit forum threads', 'role' => ['root', 'officer']], 'thread.delete' => ['desc' => 'Delete threads', 'role' => ['root', 'officer']], 'thread.create' => ['desc' => 'Create new threads', 'role' => ['root', 'officer', 'guildie', 'new']], 'thread.lock' => ['desc' => 'Lock/Unlock forum thread', 'role' => ['root', 'officer']], 'thread.sticky' => ['desc' => 'Set/Unset forum thread sticky status', 'role' => ['root', 'officer']], 'post.create' => ['desc' => 'Create new posts on a thread', 'role' => ['root', 'officer', 'guildie', 'new']], 'post.delete' => ['desc' => 'Edit posts', 'role' => ['root', 'officer', 'guildie', 'new']]]]; // Read above data, create and assign permissions foreach ($permissions as $permissionCategory => $category) { // print var_dump($category); print "\r\n\r\n"; print "=================================================\r\n"; print " Category: \t" . ucfirst($permissionCategory) . "\r\n"; print "-------------------------------------------------\r\n"; // How many permissions in array $permissionCount = count($category); $permissionCurrent = 0; foreach ($category as $permission => $permissionData) { print " Permission: \t" . $permission . "\r\n"; print " Description: \t" . $permissionData['desc'] . "\r\n"; print " Dot.Name: \t" . ($permissionCategory . '.' . $permission) . "\r\n"; print " Variable: \t" . ('$' . $permissionCategory . ucfirst($permission)) . "\r\n"; print " Roles: \t"; // How many roles in array $roleCount = count($permissionData['role']); $roleCurrent = 0; // Create permission $newPermission = Defender::createPermission($permissionCategory . '.' . $permission, $permissionData['desc']); foreach ($permissionData['role'] as $role) { $roleCount === ++$roleCurrent ? print $role : (print $role . ' | '); // Attach Permissions to Roles ${"role" . ucfirst($role)}->attachPermission($newPermission); } $permissionCount === ++$permissionCurrent ? null : (print "\r\n\r\n +++\r\n"); print "\r\n"; } } }