$error .= $language['pass_err'] . '<br />'; } else { setTmpConfig('admin_password', $superCage->post->getEscaped('admin_password')); } $email = $superCage->post->getMatched('admin_email', '/\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b/i'); $ver_email = $superCage->post->getMatched('admin_email_verif', '/\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b/i'); if ($email[0] != $ver_email[0] || $email[0] == '') { // admin email not correct $error .= $language['email_no_match'] . '<br />'; } else { setTmpConfig('admin_email', $email[0]); } } if (isset($config['admin_username']) && isset($config['admin_password']) && isset($config['admin_email']) && !isset($config['install_finished'])) { // create admin if (createAdmin()) { // add finished flag to config setTmpConfig('install_finished', 'done'); // redirect to last page header('Location: install.php?step=' . ($step + 1)); exit; } } html_header(); if ($error != '') { html_error(); } else { if (isset($config['admin_username'])) { setTmpConfig('step', STEP_FINALISE); } }
<?php $testSuite->createGroup('Requests / Admin / Statuses', function ($g) { $admin = createAdmin(); $status = createStatus(); $g->test('List statuses', function ($t) use($admin, $status) { $resp = $t->visit('admin_statuses', ['cookie' => ['traq' => $admin['session_hash']]]); $t->assertEquals(200, $resp->status); $t->assertContains($status['name'], $resp->body); }); $g->test('New status form', function ($t) use($admin) { $resp = $t->visit('admin_new_status', ['cookie' => ['traq' => $admin['session_hash']]]); $t->assertEquals(200, $resp->status); $t->assertContains('<h1 class="page-header">New Status</h1>', $resp->body); }); $g->test('Create status', function ($t) use($admin) { $resp = $t->visit('admin_create_status', ['method' => 'POST', 'post' => ['name' => 'My Status', 'level' => 5], 'cookie' => ['traq' => $admin['session_hash']]]); $t->assertRedirectTo($t->generateUrl('admin_statuses'), $resp); }); $g->test('Name in use', function ($t) use($admin) { $resp = $t->visit('admin_create_status', ['method' => 'POST', 'post' => ['name' => 'New'], 'cookie' => ['traq' => $admin['session_hash']]]); $t->assertContains('Name is already in use', $resp->body); }); $g->test('Edit status form', function ($t) use($admin, $status) { $resp = $t->visit('admin_edit_status', ['routeTokens' => ['id' => $status['id']], 'cookie' => ['traq' => $admin['session_hash']]]); $t->assertContains('<h1 class="page-header">Edit Status</h1>', $resp->body); }); $g->test('Update status', function ($t) use($admin, $status) { $resp = $t->visit('admin_save_status', ['method' => 'PATCH', 'routeTokens' => ['id' => $status['id']], 'post' => ['name' => 'Just Another Status'], 'cookie' => ['traq' => $admin['session_hash']]]); $t->assertRedirectTo($t->generateUrl('admin_statuses'), $resp); });
<?php $config = (require __DIR__ . '/config.php'); foreach ($config['databases'] as $databaseKey => $databaseData) { if (isset($databaseData['create']) && $databaseData['create'] === false) { continue; } createDatabase($databaseData['host'], $databaseData['dbname']); checkDatabase($databaseData['host'], $databaseData['dbname']); if (isset($databaseData['isadmin']) && $databaseData['isadmin']) { createAdmin($databaseData['host'], $databaseData['user'], $databaseData['password']); } elseif (isset($databaseData['user'])) { // create user } } function createDatabase($host, $dbname) { $url = 'http://' . $host . '/' . $dbname; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_PUT, 1); curl_setopt($ch, CURLOPT_HEADER, 0); // führe die Aktion aus und gebe die Daten an den Browser weiter curl_exec($ch); // schließe den cURL-Handle und gebe die Systemresourcen frei curl_close($ch); } function createAdmin($host, $user, $password) { $url = $host . '/_config/admins/' . $user;
function processSetup() { global $i, $c; $i = 0; $c = 0; // Database Connectivity Checking if ($error = checkDb($_POST)) { $_SESSION['ERROR'][$i]['type'] = 'Done'; $_SESSION['ERROR'][$i]['reason'] = 'Connected to Database'; $i++; $c++; } else { $_SESSION['ERROR'][$i]['type'] = 'Error'; $_SESSION['ERROR'][$i]['reason'] = 'Error Connecting to Database :' . mysql_error(); $i++; } // Database Name Check if ($error = selectDb($_POST)) { $_SESSION['ERROR'][$i]['type'] = 'Done'; $_SESSION['ERROR'][$i]['reason'] = 'Selected Database "' . $_POST['db_name'] . '"'; $i++; $c++; } else { $_SESSION['ERROR'][$i]['type'] = 'Error'; $_SESSION['ERROR'][$i]['reason'] = 'Error Selecting Database :' . mysql_error(); $i++; } // Creating Tables if ($error = createTables($_POST)) { $_SESSION['ERROR'][$i]['type'] = 'Done'; $_SESSION['ERROR'][$i]['reason'] = 'Tables Created Successfully'; $i++; $c++; } else { $_SESSION['ERROR'][$i]['type'] = 'Error'; $_SESSION['ERROR'][$i]['reason'] = 'Error Creating Tables :' . mysql_error(); $i++; } // Sample Questions if ($_POST['sample_qstn'] == 'yes') { if ($error = insertSQstn($_POST)) { $_SESSION['ERROR'][$i]['type'] = 'Done'; $_SESSION['ERROR'][$i]['reason'] = 'Sample Questions inserted Successfully'; $i++; } else { $_SESSION['ERROR'][$i]['type'] = 'Error'; $_SESSION['ERROR'][$i]['reason'] = 'Error Inserting Sample Questions :' . mysql_error(); $i++; } } // Creating Admin Account if ($error = createAdmin($_POST)) { $_SESSION['ERROR'][$i]['type'] = 'Done'; $_SESSION['ERROR'][$i]['reason'] = 'Admin Account Created Successfully'; $i++; $c++; } else { $_SESSION['ERROR'][$i]['type'] = 'Error'; $_SESSION['ERROR'][$i]['reason'] = 'Error Creating Admin Account :' . mysql_error(); $i++; } // Creating Mail Settings if ($error = addMailSett($_POST)) { $_SESSION['ERROR'][$i]['type'] = 'Done'; $_SESSION['ERROR'][$i]['reason'] = 'Mail Settings Updated Successfully'; $i++; } else { $_SESSION['ERROR'][$i]['type'] = 'Error'; $_SESSION['ERROR'][$i]['reason'] = 'Error Updating Mail Settings :' . mysql_error(); $i++; } // Create Config File if ($c >= 4) { if ($error = createConfig($_POST)) { $_SESSION['ERROR'][$i]['type'] = 'Done'; $_SESSION['ERROR'][$i]['reason'] = 'Config File Created Successfully'; $mail = new PHPMailer(); PQmail($mail, $_POST); $i++; $c++; } else { $_SESSION['ERROR'][$i]['type'] = 'Error'; $_SESSION['ERROR'][$i]['reason'] = 'Error Creating Config File '; $i++; } } }
<?php $testSuite->createGroup('Requests / Tickets / Update', function ($g) { $user = createAdmin(); $project = createProject(); $ticket = createTicket($project); $milestone = createMilestone($project); $g->test('Change milestone', function ($t) use($user, $project, $ticket, $milestone) { $originalMilestone = $ticket->milestone(); // Fetch current ticket $resp = $t->visit('ticket', ['routeTokens' => ['pslug' => $project['slug'], 'id' => $ticket['ticket_id']]]); $t->assertContains($originalMilestone['name'], $resp->body); $t->assertNotContains('Changed <span class="ticket-history-property">Milestone</span>', $resp->body); // Send PUT request to update milestone $updateResp = $t->visit('update_ticket', ['method' => 'PUT', 'routeTokens' => ['pslug' => $project['slug'], 'id' => $ticket['ticket_id']], 'post' => ['milestone_id' => $milestone['id']], 'cookie' => ['traq' => $user['session_hash']]]); $redirectUrl = $t->generateUrl('ticket', ['pslug' => $project['slug'], 'id' => $ticket['ticket_id']]); $t->assertRedirectTo($redirectUrl, $updateResp); // Check the milestone changed $checkResp = $t->visit('ticket', ['routeTokens' => ['pslug' => $project['slug'], 'id' => $ticket['ticket_id']]]); $t->assertContains($project['name'], $checkResp->body); $t->assertContains('Changed <span class="ticket-history-property">Milestone</span>', $checkResp->body); $t->assertContains($milestone['name'], $checkResp->body); $t->assertContains($originalMilestone['name'], $checkResp->body); }); });