/** * Run the database seeds. * * @return void */ public function run() { $groups = array(array("name" => "Read Only", "description" => "Ability to view most of the settings in the cms.", "permissionIdsFlags" => array(array(1, 0), array(2, 0), array(3, 0), array(4, 0), array(5, 0), array(6, 0), array(8, 0))), array("name" => "Content Management", "description" => "Allows managing media items.", "permissionIdsFlags" => array(array(1, 1))), array("name" => "Shows Management", "description" => "Allows managing shows.", "permissionIdsFlags" => array(array(2, 1))), array("name" => "Playlist Management", "description" => "Allows managing playlists.", "permissionIdsFlags" => array(array(3, 1), array(2, 0), array(1, 0))), array("name" => "Stream Management", "description" => "Allows managing live streams.", "permissionIdsFlags" => array(array(4, 1))), array("name" => "Site Users Management", "description" => "Allows managing site users.", "permissionIdsFlags" => array(array(5, 1))), array("name" => "CMS Users Management", "description" => "Allows managing the CMS users.", "permissionIdsFlags" => array(array(6, 1))), array("name" => "Comments Management", "description" => "Allows managing site comments and commenting as station.", "permissionIdsFlags" => array(array(7, 0))), array("name" => "API Users Management", "description" => "Allows managing API users.", "permissionIdsFlags" => array(array(8, 1)))); foreach ($groups as $i => $a) { $permissionIdsFlags = $a['permissionIdsFlags']; unset($a['permissionIdsFlags']); $a['position'] = $i; $permissionIds = array(); foreach ($permissionIdsFlags as $b) { $permissionIds[] = $b[0]; } $permissions = Permission::whereIn("id", $permissionIds)->get(); $group = new PermissionGroup($a); DB::transaction(function () use(&$group, &$permissions, &$permissionIdsFlags) { $group->save(); foreach ($permissionIdsFlags as $b) { $flag = $b[1]; $permissionId = $b[0]; $group->permissions()->attach($permissions->find($permissionId), array("permission_flag" => $flag)); } }); } $this->command->info('Permissions groups created and permissions assigned to groups!'); }