public function testCreateUserSuperadmin() { // ADMIN $client = static::createClient(array(), array('PHP_AUTH_USER' => 'petjo', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/kontrollpanel/brukeradmin/opprett/2'); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains("Opprett bruker")')->count()); $form = $crawler->selectButton('Opprett')->form(); // Change the value of a field $form['createUser[firstName]'] = "fornavn1"; $form['createUser[lastName]'] = "etternavn1"; $form['createUser[gender]']->select(0); $form['createUser[phone]'] = "66688666"; $form['createUser[user_name]'] = "fornavn1"; $form['createUser[password]'] = "1234"; $form['createUser[email]'] = "*****@*****.**"; $form['createUser[fieldOfStudy]']->select(3); $form['createUser[role]']->select(0); // submit the form $crawler = $client->submit($form); // Assert that the response is the correct redirect $this->assertTrue($client->getResponse()->isRedirect('/kontrollpanel/brukeradmin')); // Follow the redirect $crawler = $client->followRedirect(); restoreDatabase(); }
public function testEdit() { // Team user $client = static::createClient(array(), array('PHP_AUTH_USER' => 'team', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/kontrollpanel/artikkeladmin/rediger/1'); // Assert that the page response status code is 200 $this->assertEquals(200, $client->getResponse()->getStatusCode()); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains("Endre artikkel")')->count()); // Fill in the form $form = $crawler->selectButton('Publiser')->form(); $form['article[title]'] = 'Ny test tittel'; // submit the form $crawler = $client->submit($form); // Follow the redirect $crawler = $client->followRedirect(); // Assert that we have the correct page with the new value $this->assertContains('Endringene har blitt publisert.', $client->getResponse()->getContent()); $this->assertEquals(1, $crawler->filter('h1:contains("Ny test tittel")')->count()); // User $client = static::createClient(array(), array('PHP_AUTH_USER' => 'assistent', 'PHP_AUTH_PW' => '1234')); $client->request('GET', '/kontrollpanel/artikkeladmin/rediger/1'); // Assert that the page response status code is 403 Access denied $this->assertEquals(403, $client->getResponse()->getStatusCode()); restoreDatabase(); }
public function testUpdateSemester() { // ADMIN $client = static::createClient(array(), array('PHP_AUTH_USER' => 'petjo', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/kontrollpanel/semesteradmin/avdeling/1'); $this->assertEquals(2, $crawler->filter('a:contains("Rediger")')->count()); // Find a link and click it $link = $crawler->selectLink('Rediger')->eq(1)->link(); $crawler = $client->click($link); // Assert that we have the correct amount of data $this->assertEquals(1, $crawler->filter('h1:contains("Endre semester Høst 2015")')->count()); $form = $crawler->selectButton('Endre')->form(); // Change the value of a field $form['createSemester[admission_start_date]'] = '2015-08-04 10:30:00 '; $form['createSemester[admission_end_date]'] = '2015-09-02 10:40:00 '; // submit the form $client->submit($form); // Assert a specific 302 status code $this->assertEquals(302, $client->getResponse()->getStatusCode()); // Assert that the response is the correct redirect $this->assertTrue($client->getResponse()->isRedirect('/kontrollpanel/semesteradmin')); // Follow the redirect $crawler = $client->followRedirect(); // Assert a specific 200 status code $this->assertEquals(200, $client->getResponse()->getStatusCode()); $this->assertEquals(1, $crawler->filter('h1:contains("Semester NTNU")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("2015-08-04")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("10:30:00")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("2015-09-02")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("10:40:00")')->count()); restoreDatabase(); }
public function testUpdateWorkHistory() { // ADMIN $client = static::createClient(array(), array('PHP_AUTH_USER' => 'petjo', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/kontrollpanel/teamadmin/team/1'); // Find a link and click it $link = $crawler->selectLink('Rediger')->eq(1)->link(); $crawler = $client->click($link); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains("Opprett arbeidshistorie")')->count()); $form = $crawler->selectButton('Opprett')->form(); // Change the value of a field $form['createWorkHistory[user]']->select(36); $form['createWorkHistory[position]']->select(1); $form['createWorkHistory[startSemester]']->select(5); // submit the form $crawler = $client->submit($form); // Follow the redirect $crawler = $client->followRedirect(); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains("Hovedstyret")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("Vår 2016")')->count()); $this->assertEquals(0, $crawler->filter('td:contains("Petter")')->count()); $this->assertEquals(0, $crawler->filter('td:contains("Johansen")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("Høst 2015")')->count()); restoreDatabase(); }
public function testUpdateDepartment() { $client = static::createClient(array(), array('PHP_AUTH_USER' => 'petjo', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/kontrollpanel/avdelingadmin'); $this->assertEquals(200, $client->getResponse()->getStatusCode()); // Find a link and click it $link = $crawler->selectLink('Rediger')->first()->link(); $crawler = $client->click($link); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains("Opprett avdeling")')->count()); $form = $crawler->selectButton('Opprett')->form(); // Change the value of a field $form['createDepartment[name]'] = 'Norges teknisk-naturvitenskapelige universitet2'; $form['createDepartment[short_name]'] = 'NTNU2'; $form['createDepartment[email]'] = 'NTNU@mail.com2'; $form['createDepartment[address]'] = 'Storgata 1'; // submit the form $crawler = $client->submit($form); // Assert a specific 302 status code $this->assertEquals(302, $client->getResponse()->getStatusCode()); // Assert that the response is the correct redirect $this->assertTrue($client->getResponse()->isRedirect('/kontrollpanel/avdelingadmin')); // Follow the redirect $crawler = $client->followRedirect(); // Assert that we created a new entity $this->assertContains('Norges teknisk-naturvitenskapelige universitet2', $client->getResponse()->getContent()); $this->assertContains('NTNU2', $client->getResponse()->getContent()); $this->assertContains('NTNU@mail.com2', $client->getResponse()->getContent()); // Check the count for the different variables $this->assertEquals(1, $crawler->filter('a:contains("Norges teknisk-naturvitenskapelige universitet2")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("NTNU2")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("NTNU@mail.com2")')->count()); // Assert a specific 200 status code $this->assertEquals(200, $client->getResponse()->getStatusCode()); restoreDatabase(); }
public function testEdit() { // Admin user $client = static::createClient(array(), array('PHP_AUTH_USER' => 'admin', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/kontrollpanel/vikar/rediger/1'); // Assert that the page response status code is 200 $this->assertEquals(200, $client->getResponse()->getStatusCode()); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains("Endre vikarinformasjon")')->count()); // Find the form $form = $crawler->selectButton('Lagre')->form(); // Fill in the form $form['substitute[phone]'] = "95999999"; // Submit the form $client->submit($form); // Follow the redirect $crawler = $client->followRedirect(); // Assert that we have the correct page with the correct info (from the submitted form) $this->assertEquals(1, $crawler->filter('h1:contains("Vikarer")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("95999999")')->count()); // Team user $client = static::createClient(array(), array('PHP_AUTH_USER' => 'team', 'PHP_AUTH_PW' => '1234')); $client->request('GET', '/kontrollpanel/vikar/rediger/1'); // Assert that the page response status code is 403 access denied $this->assertEquals(403, $client->getResponse()->getStatusCode()); restoreDatabase(); }
public function testDelegateSchoolToUser() { $client = static::createClient(array(), array('PHP_AUTH_USER' => 'petjo', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/kontrollpanel/skoleadmin/brukere/avdeling/1'); // Assert that we have the correct amount of data $this->assertEquals(1, $crawler->filter('h1:contains("Tildel skole")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("Reidun")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("Persdatter Ødegaard")')->count()); // Find a link and click it $link = $crawler->selectLink('Tildel skole')->eq(1)->link(); $crawler = $client->click($link); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains("Opprett assistent historie")')->count()); $form = $crawler->selectButton('Opprett')->form(); // Change the value of a field $form['createAssistantHistory[Semester]']->select(1); $form['createAssistantHistory[workdays]']->select("4"); $form['createAssistantHistory[School]']->select(2); $form['createAssistantHistory[bolk]']->select("Bolk 2"); $form['createAssistantHistory[day]']->select("Onsdag"); // submit the form $client->submit($form); // Assert a specific 302 status code $this->assertEquals(302, $client->getResponse()->getStatusCode()); // Assert that the response is the correct redirect $this->assertTrue($client->getResponse()->isRedirect('/kontrollpanel/skoleadmin/brukere/avdeling/1')); // Follow the redirect $client->followRedirect(); // Assert a specific 200 status code $this->assertEquals(200, $client->getResponse()->getStatusCode()); // ADMIN $client = static::createClient(array(), array('PHP_AUTH_USER' => 'admin', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/kontrollpanel/skoleadmin/brukere/avdeling/1'); // Assert that we have the correct amount of data $this->assertEquals(1, $crawler->filter('h1:contains("Tildel skole")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("Reidun")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("Persdatter Ødegaard")')->count()); // Find a link and click it $link = $crawler->selectLink('Tildel skole')->eq(1)->link(); $crawler = $client->click($link); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains("Opprett assistent historie")')->count()); $form = $crawler->selectButton('Opprett')->form(); // Change the value of a field $form['createAssistantHistory[Semester]']->select(1); $form['createAssistantHistory[workdays]']->select("4"); $form['createAssistantHistory[School]']->select(2); $form['createAssistantHistory[bolk]']->select("Bolk 2"); $form['createAssistantHistory[day]']->select("Onsdag"); // submit the form $client->submit($form); // Assert a specific 302 status code $this->assertEquals(302, $client->getResponse()->getStatusCode()); // Assert that the response is the correct redirect $this->assertTrue($client->getResponse()->isRedirect('/kontrollpanel/skoleadmin/brukere/avdeling/1')); // Follow the redirect $client->followRedirect(); // Assert a specific 200 status code $this->assertEquals(200, $client->getResponse()->getStatusCode()); // USER $client = static::createClient(array(), array('PHP_AUTH_USER' => 'assistent', 'PHP_AUTH_PW' => '1234')); $client->request('GET', '/kontrollpanel/skoleadmin/brukere/avdeling/1'); // Assert that the response is a redirect to / $this->assertEquals(403, $client->getResponse()->getStatusCode()); restoreDatabase(); }
function installIfNeeded() { global $SETTINGS, $APP, $TABLE_PREFIX; if (isInstalled()) { return; } // skip if already installed // rename default files renameOrRemoveDefaultFiles(); // error checking if ($SETTINGS['uploadDir'] && !is_dir($SETTINGS['uploadDir'])) { print "Upload directory doesn't exist, please update 'uploadDir' in /data/" . SETTINGS_FILENAME . "<br/>\n"; print "Current uploadDir value: " . htmlencode($SETTINGS['uploadDir']) . "<br/>\n"; print "Suggested uploadDir value: uploads/ or ../uploads/<br/>\n"; exit; } // error checking checkFilePermissions(); // display license if (@$_REQUEST['menu'] == 'license') { showInterface('license.php'); } // save if (@$_REQUEST['save']) { // error checking if (!$_REQUEST['licenseCompanyName']) { alert("Please enter your 'Company Name'<br/>\n"); } if (!$_REQUEST['licenseDomainName']) { alert("Please enter your 'Domain Name'<br/>\n"); } if (!$_REQUEST['licenseProductId']) { alert("Please enter your 'Product Id'<br/>\n"); } else { if (!isValidProductId($_REQUEST['licenseProductId'])) { alert("Invalid Product Id!<br/>\n"); } } if (!$_REQUEST['agreeToOneInstall']) { alert("Please check 'I agree not to use this 'Product Id' for multiple installs'<br/>\n"); } if (!$_REQUEST['understandTermination']) { alert("Please check 'I understand doing so may cause be to lose my right to use this software'<br/>\n"); } if (!$_REQUEST['agreeToLicense']) { alert("Please check 'I accept the terms of the License Agreement'<br/>\n"); } if (!$_REQUEST['mysqlHostname']) { alert("Please enter your 'MySQL Hostname'<br/>\n"); } if (!$_REQUEST['mysqlDatabase']) { alert("Please enter your 'MySQL Database'<br/>\n"); } if (!$_REQUEST['mysqlUsername']) { alert("Please enter your 'MySQL Username'<br/>\n"); } if (!$_REQUEST['mysqlTablePrefix']) { alert("Please enter your 'MySQL Table Prefix'<br/>\n"); } elseif (preg_match("/[A-Z]/", $_REQUEST['mysqlTablePrefix'])) { alert("Value for 'MySQL Table Prefix' must be lowercase.<br/>\n"); } elseif (!preg_match("/^[a-z]/i", $_REQUEST['mysqlTablePrefix'])) { alert("Value for 'MySQL Table Prefix' must start with a letter.<br/>\n"); } elseif (!preg_match("/_\$/", $_REQUEST['mysqlTablePrefix'])) { alert("Value for 'MySQL Table Prefix' must end in underscore.<br/>\n"); } // New Installation if (!@$_REQUEST['restoreFromBackup']) { if (!$_REQUEST['adminFullname']) { alert("Please enter 'Admin Full Name'<br/>\n"); } if (!$_REQUEST['adminEmail']) { alert("Please enter 'Admin Email'<br/>\n"); } elseif (!isValidEmail($_REQUEST['adminEmail'])) { alert("Please enter a valid email for 'Admin Email' (Example: user@example.com)<br/>\n"); } if (!$_REQUEST['adminUsername']) { alert("Please enter 'Admin Username'<br/>\n"); } $passwordErrors = getNewPasswordErrors($_REQUEST['adminPassword1'], $_REQUEST['adminPassword2'], $_REQUEST['adminUsername']); // v2.52 if ($passwordErrors) { alert(nl2br(htmlencode($passwordErrors))); } } // Restore from Backup if (@$_REQUEST['restoreFromBackup']) { if (!$_REQUEST['restore']) { alert("Please select a backup file to restore<br/>\n"); } } // Advanced - v2.53 if (!@$_REQUEST['useCustomSettingsFile']) { if (is_file(SETTINGS_DEV_FILEPATH)) { alert(t("You must select 'Use Custom Settings File' since a custom settings file for this domain already exists!") . "<br/>\n"); } elseif (isDevServer()) { alert("This is a development server, you must select 'Use Custom Settings File'." . "<br/>\n"); } } if (@$_REQUEST['webPrefixUrl'] != '') { if (!preg_match("|^(\\w+:/)?/|", $_REQUEST['webPrefixUrl'])) { alert(t("Website Prefix URL must start with /") . "<br/>\n"); } if (preg_match("|/\$|", $_REQUEST['webPrefixUrl'])) { alert(t("Website Prefix URL cannot end with /") . "<br/>\n"); } } // update settings (not saved unless there are no errors) $SETTINGS['cookiePrefix'] = substr(md5(mt_rand()), 0, 5) . '_'; //v2.51 shortened prefix so it's easy to see full cookie names in browser cookie list $SETTINGS['adminEmail'] = @$SETTINGS['adminEmail'] ? $SETTINGS['adminEmail'] : $_REQUEST['adminEmail']; $SETTINGS['licenseCompanyName'] = $_REQUEST['licenseCompanyName']; $SETTINGS['licenseDomainName'] = $_REQUEST['licenseDomainName']; $SETTINGS['licenseProductId'] = $_REQUEST['licenseProductId']; $SETTINGS['webRootDir'] = @$SETTINGS['webRootDir'] ? $SETTINGS['webRootDir'] : @$_SERVER['DOCUMENT_ROOT']; $SETTINGS['mysql']['hostname'] = $_REQUEST['mysqlHostname']; $SETTINGS['mysql']['database'] = $_REQUEST['mysqlDatabase']; $SETTINGS['mysql']['username'] = $_REQUEST['mysqlUsername']; $SETTINGS['mysql']['password'] = $_REQUEST['mysqlPassword']; $SETTINGS['mysql']['tablePrefix'] = $_REQUEST['mysqlTablePrefix']; $TABLE_PREFIX = $_REQUEST['mysqlTablePrefix']; // update TABLE_PREFIX global as well. $SETTINGS['webPrefixUrl'] = $_REQUEST['webPrefixUrl']; // display errors if (alert()) { require "lib/menus/install.php"; exit; } // connect to mysql $errors = connectToMySQL('returnErrors'); if ($errors) { alert($errors); require "lib/menus/install.php"; exit; } else { connectToMySQL(); } // create schema tables createMissingSchemaTablesAndFields(); clearAlertsAndNotices(); // don't show "created table/field" alerts // New Installation: check if admin user already exists if (!@$_REQUEST['restoreFromBackup']) { $passwordHash = getPasswordDigest($_REQUEST['adminPassword1']); $identicalUserExists = mysql_count('accounts', array('username' => $_REQUEST['adminUsername'], 'password' => $passwordHash, 'isAdmin' => '1')); if (!$identicalUserExists) { // if the don't exist, check if a user with the same username exists and show an error if they do $count = mysql_count('accounts', array('username' => $_REQUEST['adminUsername'])); if (!$identicalUserExists && $count > 0) { alert("Admin username already exists, please choose another.<br/>\n"); } } // create admin user if (!$identicalUserExists && !alert()) { mysqlStrictMode(false); // disable Mysql strict errors for when a field isn't defined below (can be caused when fields are added later) mysql_query("INSERT INTO `{$TABLE_PREFIX}accounts` SET\n createdDate = NOW(),\n createdByUserNum = '0',\n updatedDate = NOW(),\n updatedByUserNum = '0',\n fullname = '" . mysql_escape($_REQUEST['adminFullname']) . "', email = '" . mysql_escape($_REQUEST['adminEmail']) . "',\n username = '******'adminUsername']) . "', password = '******',\n disabled = '0',\n isAdmin = '1',\n expiresDate = '0000-00-00 00:00:00',\n neverExpires = '1'") or alert("MySQL Error Creating Admin User:<br/>\n" . htmlencode(mysql_error()) . "\n"); // create accesslist entry mysql_query("INSERT INTO `{$TABLE_PREFIX}_accesslist` (userNum, tableName, accessLevel, maxRecords, randomSaveId)\n VALUES (LAST_INSERT_ID(), 'all', '9', NULL, '1234567890')") or alert("MySQL Error Creating Admin Access List:<br/>\n" . htmlencode(mysql_error()) . "\n"); } } // Restore from Backup: Restore backup file if (@$_REQUEST['restoreFromBackup']) { $userCount = mysql_count('accounts'); if ($userCount) { $userTable = $TABLE_PREFIX . 'accounts'; $errorMessage = sprintf("Can't restore from backup because it would overwrite the %s existing user accounts in the specified database location.<br/>\n", $userCount); $errorMessage .= sprintf("Try changing the MySQL Database or Table Prefix to restore to a different location, or remove existing users from '%s'.<br/>\n", $userTable); alert($errorMessage); } else { // restore database $filename = @$_REQUEST['restore']; mysqlStrictMode(false); // disable Mysql strict errors restoreDatabase(DATA_DIR . '/backups/' . $filename); notice("Restored backup file /data/backups/{$filename}"); makeAllUploadRecordsRelative(); } } // save settings if (!alert()) { saveSettings(@$_REQUEST['useCustomSettingsFile']); isInstalled(true); // save installed status redirectBrowserToURL('?menu=home', true); // refresh page exitl; } } // set defaults if (!array_key_exists('licenseDomainName', $_REQUEST)) { $_REQUEST['licenseDomainName'] = $_SERVER['HTTP_HOST']; } if (!array_key_exists('mysqlHostname', $_REQUEST)) { $_REQUEST['mysqlHostname'] = $SETTINGS['mysql']['hostname']; } if (!array_key_exists('mysqlDatabase', $_REQUEST)) { $_REQUEST['mysqlDatabase'] = $SETTINGS['mysql']['database']; } if (!array_key_exists('mysqlUsername', $_REQUEST)) { $_REQUEST['mysqlUsername'] = $SETTINGS['mysql']['username']; } if (!array_key_exists('mysqlTablePrefix', $_REQUEST)) { $_REQUEST['mysqlTablePrefix'] = $SETTINGS['mysql']['tablePrefix']; } // show form require "lib/menus/install.php"; exit; }
public function testSchedule() { // Admin user $client = static::createClient(array(), array('PHP_AUTH_USER' => 'admin', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/kontrollpanel/intervju/settopp/6'); // Assert that the page response status code is 200 $this->assertEquals(200, $client->getResponse()->getStatusCode()); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h3:contains("Sett opp intervju")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("Assistent")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("Johansen")')->count()); // Find the form $form = $crawler->selectButton('Lagre tidspunkt')->form(); // Fill in the form $form['scheduleInterview[datetime]'] = "2015-08-10 15:00:00"; // Submit the form $client->submit($form); // Follow the redirect $crawler = $client->followRedirect(); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains("Opptak")')->count()); // Team user who is assigned the interview $client = static::createClient(array(), array('PHP_AUTH_USER' => 'idaan', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/kontrollpanel/intervju/settopp/6'); // Assert that the page response status code is 200 $this->assertEquals(200, $client->getResponse()->getStatusCode()); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h3:contains("Sett opp intervju")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("Assistent")')->count()); $this->assertEquals(1, $crawler->filter('td:contains("Johansen")')->count()); // Find the form $form = $crawler->selectButton('Lagre tidspunkt')->form(); // Fill in the form $form['scheduleInterview[datetime]'] = "2015-08-10 15:00:00"; // Submit the form $client->submit($form); // Follow the redirect $crawler = $client->followRedirect(); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains("Opptak")')->count()); // Team user who is not assigned the interview $client = static::createClient(array(), array('PHP_AUTH_USER' => 'team', 'PHP_AUTH_PW' => '1234')); $client->request('GET', '/kontrollpanel/intervju/settopp/6'); // Assert that the page response status code is 403 access denied $this->assertEquals(403, $client->getResponse()->getStatusCode()); // Assistant user $client = static::createClient(array(), array('PHP_AUTH_USER' => 'assistent', 'PHP_AUTH_PW' => '1234')); $client->request('GET', '/kontrollpanel/intervju/settopp/6'); // Assert that the page response status code is 403 access denied $this->assertEquals(403, $client->getResponse()->getStatusCode()); restoreDatabase(); }
function admin_dispatchAction($action) { if ($action == 'general') { showInterface('admin/general.php'); } elseif ($action == 'adminSave') { admin_saveSettings('admin/general.php'); } elseif ($action == 'vendor') { showInterface('admin/vendor.php'); } elseif ($action == 'vendorSave') { admin_saveSettings('admin/vendor.php'); } elseif ($action == 'phpinfo') { disableInDemoMode('', 'admin/general.php'); phpinfo(); print "<h2>get_loaded_extensions()</h2>\n" . implode("<br/>\n", get_loaded_extensions()) . "\n"; if (function_exists('apache_get_modules')) { print "<h2>apache_get_modules()</h2>\n" . implode("<br/>\n", apache_get_modules()) . "\n"; } print "<h2>get_defined_constants()</h2>\n<xmp>" . print_r(get_defined_constants(), true) . "</xmp>\n"; // $mbInfo = mb_get_info(); ksort($mbInfo); print "<h2>mb_get_info()</h2>\n<xmp>" . print_r($mbInfo, true) . "</xmp>\n"; exit; } elseif ($action == 'ulimit') { disableInDemoMode('', 'admin/general.php'); print "<h2>Soft Resource Limits (ulimit -a -S)</h2>\n"; list($maxCpuSeconds, $memoryLimitKbytes, $maxProcessLimit, $ulimitOutput) = getUlimitValues('soft'); showme($ulimitOutput); print "<h2>Hard Resource Limits (ulimit -a -H)</h2>\n"; list($maxCpuSeconds, $memoryLimitKbytes, $maxProcessLimit, $ulimitOutput) = getUlimitValues('soft'); showme($ulimitOutput); exit; } elseif ($action == 'updateDate') { getAjaxDate(); } elseif ($action == 'getUploadPathPreview') { getUploadPathPreview(@$_REQUEST['dirOrUrl'], @$_REQUEST['inputValue'], @$_REQUEST['isCustomField'], true); } elseif ($action == 'plugins') { // allow disabling plugins if (file_exists("{$GLOBALS['PROGRAM_DIR']}/plugins/_disable_all_plugins.txt")) { alert('Development Mode: Plugins are disabled. Remove or rename /plugins/_disable_all_plugins.txt to enable.<br/>'); } else { } showInterface('admin/plugins.php'); } elseif ($action == 'pluginHooks') { showInterface('admin/pluginHooks.php'); } elseif ($action == 'deactivatePlugin') { security_dieUnlessPostForm(); security_dieUnlessInternalReferer(); security_dieOnInvalidCsrfToken(); disableInDemoMode('plugins', 'admin/plugins.php'); deactivatePlugin(@$_REQUEST['file']); redirectBrowserToURL('?menu=admin&action=plugins', true); exit; } elseif ($action == 'activatePlugin') { security_dieUnlessPostForm(); security_dieUnlessInternalReferer(); security_dieOnInvalidCsrfToken(); disableInDemoMode('plugins', 'admin/plugins.php'); activatePlugin(@$_REQUEST['file']); redirectBrowserToURL('?menu=admin&action=plugins', true); exit; } elseif ($action == 'backup') { security_dieUnlessPostForm(); security_dieUnlessInternalReferer(); security_dieOnInvalidCsrfToken(); disableInDemoMode('', 'admin/general.php'); $filename = backupDatabase(null, @$_REQUEST['backupTable']); notice(sprintf(t('Created backup file %1$s (%2$s seconds)'), $filename, showExecuteSeconds(true))); showInterface('admin/general.php'); exit; } elseif ($action == 'restore') { security_dieUnlessPostForm(); security_dieUnlessInternalReferer(); security_dieOnInvalidCsrfToken(); disableInDemoMode('', 'admin/general.php'); $filename = @$_REQUEST['file']; restoreDatabase(DATA_DIR . '/backups/' . $filename); notice("Restored backup file /data/backups/{$filename}"); makeAllUploadRecordsRelative(); showInterface('admin/general.php'); exit; } elseif ($action == 'bgtasksLogsClear') { security_dieUnlessPostForm(); security_dieUnlessInternalReferer(); security_dieOnInvalidCsrfToken(); disableInDemoMode('', 'admin/general.php'); mysql_delete('_cron_log', null, 'true'); notice(t("Background Task logs have been cleared.")); showInterface('admin/general.php'); exit; } else { showInterface('admin/general.php'); } }
public function testEditProfileInformation() { $client = static::createClient(array(), array('PHP_AUTH_USER' => 'petjo', 'PHP_AUTH_PW' => '1234')); $crawler = $client->request('GET', '/profil/rediger'); // Assert that we have the correct page $this->assertEquals(1, $crawler->filter('h1:contains(" Redigerer profil ")')->count()); // Assert that we have the correct user $this->assertEquals(1, $crawler->filter('p:contains("Petter Johansen")')->count()); $form = $crawler->selectButton('Lagre')->form(); // Change the value of a field $form['editUser[firstName]'] = 'Petter'; $form['editUser[lastName]'] = 'Johansen'; $form['editUser[phone]'] = '22211133'; $form['editUser[email]'] = '*****@*****.**'; $form['editUser[fieldOfStudy]']->select(2); // submit the form $crawler = $client->submit($form); // Assert a specific 302 status code $this->assertEquals(302, $client->getResponse()->getStatusCode()); // Follow the redirect $crawler = $client->followRedirect(); // Assert that we have the correct profile user $this->assertContains('Petter Johansen', $client->getResponse()->getContent()); $this->assertContains('*****@*****.**', $client->getResponse()->getContent()); // Assert that we have the correct user level, department, and field of study $this->assertContains('NTNU', $client->getResponse()->getContent()); $this->assertContains('MIDT', $client->getResponse()->getContent()); // Check the count for the different parameters $this->assertEquals(1, $crawler->filter('html:contains("MIDT")')->count()); $this->assertEquals(1, $crawler->filter('html:contains("*****@*****.**")')->count()); // Assert a specific 200 status code $this->assertEquals(200, $client->getResponse()->getStatusCode()); restoreDatabase(); }
function createMissingSchemaTablesAndFields() { global $APP, $TABLE_PREFIX; $schemaTables = getSchemaTables(); $mysqlTables = getMysqlTablesWithPrefix(); // create missing schema tables in mysql foreach ($schemaTables as $tableName) { // create mysql table $mysqlTableName = $TABLE_PREFIX . $tableName; if (!in_array($mysqlTableName, $mysqlTables)) { notice(t("Creating MySQL table for schema table: ") . $tableName . "<br/>\n"); $result = mysql_query("CREATE TABLE `" . mysql_escape($mysqlTableName) . "` (num int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (num)) ENGINE=MyISAM DEFAULT CHARSET=utf8;"); if (!$result) { alert(sprintf("Error creating MySQL table: %s<br/>\\MySQL error was: ", $mysqlTableName) . htmlencode(mysql_error()) . "\n"); } if (is_resource($result)) { mysql_free_result($result); } // run defaultSqlData if applicable $defaultSqlFile = DATA_DIR . "/schema/{$tableName}.defaultSqlData.php"; if (file_exists($defaultSqlFile)) { restoreDatabase($defaultSqlFile, $tableName); notice(t("Importing default data for schema table: ") . $tableName . "<br/>\n"); } } // get schema fieldnames $schemaFieldnames = array(); $tableSchema = loadSchema($tableName); foreach ($tableSchema as $name => $valueOrArray) { if (is_array($valueOrArray)) { array_push($schemaFieldnames, $name); } // only fields has arrays as values } // get mysql fieldnames $mysqlFieldnames = array(); $result = mysql_query("SHOW COLUMNS FROM `" . mysql_escape($mysqlTableName) . "`") or die("MySQL Error: " . htmlencode(mysql_error()) . "\n"); while ($row = mysql_fetch_assoc($result)) { array_push($mysqlFieldnames, strtolower($row['Field'])); } if (is_resource($result)) { mysql_free_result($result); } // add missing fieldnames to mysql $addFieldSQL = ''; foreach ($schemaFieldnames as $fieldname) { if (!in_array(strtolower($fieldname), $mysqlFieldnames)) { $columnType = getColumnTypeFor($fieldname, @$tableSchema[$fieldname]['type'], @$tableSchema[$fieldname]['customColumnType']); if (!$columnType) { continue; } if ($addFieldSQL) { $addFieldSQL .= ", "; } $addFieldSQL .= " ADD COLUMN `" . mysql_escape($fieldname) . "` {$columnType}"; // add index? if (@$tableSchema[$fieldname]['indexed']) { list($indexName, $indexColList) = getIndexNameAndColumnListForField($fieldname, $columnType); $addFieldSQL .= ", ADD INDEX `{$indexName}` {$indexColList}"; } } } if ($addFieldSQL) { mysql_query("ALTER TABLE `" . mysql_escape($mysqlTableName) . "` {$addFieldSQL}") or die("Error adding fields to '{$mysqlTableName}', the error was:\n\n" . htmlencode(mysql_error())); notice(t("Adding MySQL fields for schema table:") . " {$tableName}<br/>\n"); } } }