/** * Sets up unit test wide variables at the start * of each test method. * @access public */ function setUp() { // Set up the database connection $dbHandler =& Services::getService("DatabaseManager"); $dbIndex = $dbHandler->addDatabase(new MySQLDatabase("devo", "doboHarmoniTest", "test", "test")); $dbHandler->pConnect($dbIndex); unset($dbHandler); // done with that for now $context = new OsidContext(); $configuration = new ConfigurationProperties(); $configuration->addProperty('database_index', $dbIndex); $configuration->addProperty('database_name', $arg0 = "doboHarmoniTest"); unset($arg0); $this->manager = new HarmoniHierarchyManager(); $this->manager->assignConfiguration($configuration); }
<?php /** * Set up the LanguageLocalization system * * USAGE: Copy this file to language.conf.php to set custom values. * * @package concerto.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id$ */ // :: Set up language directories :: $configuration = new ConfigurationProperties(); $configuration->addProperty('default_language', $arg0 = 'en_US'); $configuration->addProperty('applications', $arg1 = array('concerto' => MYDIR . '/main/languages', 'polyphony' => POLYPHONY . '/main/languages')); unset($arg0, $arg1); Services::startManagerAsService("LanguageManager", $context, $configuration);
<?php /** * Set up the AuthorizationManager * * USAGE: Copy this file to authorization.conf.php to set custom values. * * @package segue.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id: authorization_default.conf.php,v 1.3 2007/09/04 18:00:42 adamfranco Exp $ */ // :: Set up the Authorization System :: $configuration = new ConfigurationProperties(); $configuration->addProperty('database_index', $dbID); $configuration->addProperty('database_name', $dbName); $configuration->addProperty('harmoni_db_name', 'segue_db'); try { require_once HARMONI . "/oki2/AuthZ2/authz/AuthorizationManager.class.php"; $azMgr = new AuthZ2_AuthorizationManager(); $azMgr->assignConfiguration($configuration); Services::registerObjectAsService("AuthorizationManager", $azMgr); } catch (ConfigurationErrorException $e) { Services::startManagerAsService("AuthorizationManager", $context, $configuration); print "<div class='config_error'>" . _("Please run the Segue Updates under Admin Tools") . "</div>"; }
* * USAGE: Copy this file to authentication-db.conf.php to set custom values. * * @package segue.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) */ require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/SQLDatabaseAuthNMethod.class.php"; require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/SQLDatabaseMD5UsernamePasswordAuthNTokens.class.php"; /********************************************************* * Create and configure the authentication method *********************************************************/ $authNMethod = new SQLDatabaseAuthNMethod(); $configuration = new ConfigurationProperties(); $configuration->addProperty('tokens_class', 'SQLDatabaseMD5UsernamePasswordAuthNTokens'); $configuration->addProperty('database_id', $dbID); $configuration->addProperty('authentication_table', 'auth_db_user'); $configuration->addProperty('username_field', 'username'); $configuration->addProperty('password_field', 'password'); $propertiesFields = array('username' => 'username'); $configuration->addProperty('properties_fields', $propertiesFields); $authNMethod->assignConfiguration($configuration); /********************************************************* * Enable the authentication method *********************************************************/ // Define a unique Type for this method $type = new Type("Authentication", "edu.middlebury.harmoni", "Harmoni DB"); // Add the method to our AuthenticationMethodManagerConfiguration $authenticationMethodManagerConfiguration->addProperty($type, $authNMethod); // Assign a token-collector for this method
<?php /** * Set up the SetsManager * * USAGE: Copy this file to sets.conf.php to set custom values. * * @package concerto.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id$ */ // :: Set up the Sets Manager :: $configuration = new ConfigurationProperties(); $configuration->addProperty('database_index', $dbID); Services::startManagerAsService("SetManager", $context, $configuration);
* USAGE: Copy this file to gui.conf.php to set custom values. * * @package segue.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id: gui_default.conf.php,v 1.7 2007/09/21 15:49:24 adamfranco Exp $ */ require_once HARMONI . 'Gui2/GuiManager.class.php'; require_once MYDIR . '/main/library/Gui2/SiteThemeSource.class.php'; require_once MYDIR . '/main/modules/view/SiteDispatcher.class.php'; // :: GUIManager setup :: define("LOGO_URL", MYPATH . "/images/logo.gif"); $configuration = new ConfigurationProperties(); $configuration->addProperty('database_index', $dbID); $configuration->addProperty('database_name', $dbName); $configuration->addProperty('default_theme', 'RoundedCorners'); $configuration->addProperty('character_set', 'utf-8'); $configuration->addProperty('document_type', 'text/html'); $configuration->addProperty('document_type_definition', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'); $configuration->addProperty('xmlns', 'http://www.w3.org/1999/xhtml'); // Enable linked theme CSS $configuration->addProperty('css_url', $harmoni->request->mkURL('gui2', 'theme_css')); $configuration->addProperty('css_url_theme_property', 'theme'); // Theme sources $sources = array(); $sources[] = new Segue_Gui2_SiteThemeSource(array('database_index' => $dbID)); // Read-only themes $sources[] = array('type' => 'directory', 'path' => MYDIR . '/themes-dist'); $sources[] = array('type' => 'directory', 'path' => MYDIR . '/themes-local');
$harmonyLoadupTimer = new Timer(); $harmonyLoadupTimer->start(); define("LOAD_HIERARCHY", false); require_once dirname(__FILE__) . "/../../../../harmoni.inc.php"; $harmonyLoadupTimer->end(); require_once SIMPLE_TEST . 'simple_unit.php'; require_once SIMPLE_TEST . 'dobo_simple_html_test.php'; $context = new OsidContext(); $configuration = new ConfigurationProperties(); Services::startManagerAsService("DatabaseManager"); require_once HARMONI . "errorHandler/ErrorHandler.class.php"; $errorHandler = Services::getService("ErrorHandler", true); $dbHandler = Services::getService("DBHandler", true); $dbIndex = $dbHandler->addDatabase(new MySQLDatabase("devo", "doboHarmoniTest", "test", "test")); $dbHandler->pConnect($dbIndex); $configuration->addProperty('database_index', $dbIndex); $configuration->addProperty('database_name', $arg0 = "doboHarmoniTest"); unset($arg0); Services::startManagerAsService("IdManager", $context, $configuration); $errorHandler->setDebugMode(TRUE); $test = new GroupTest('Hierarchy Tests'); $test->addTestFile(HARMONI . '/oki2/hierarchy/tests/NodeTestCase.class.php'); $test->addTestFile(HARMONI . '/oki2/hierarchy/tests/HierarchyTestCase.class.php'); $test->addTestFile(HARMONI . '/oki2/hierarchy/tests/HierarchyManagerTestCase.class.php'); $test->attachObserver(new DoboTestHtmlDisplay()); $test->run(); $timer->end(); print "\n<br />Harmoni Load Time: " . $harmonyLoadupTimer->printTime(); print "\n<br />Overall Time: " . $timer->printTime(); print "\n</p>"; $num = $dbHandler->getTotalNumberOfQueries();
/** * Run the update * * @return boolean * @access public * @since 3/24/08 */ function runUpdate($dbIndex) { $prepStatus = new StatusStars("Preparing Migration"); $prepStatus->initializeStatistics(3); // Configure the original Hierarchy and AZ services $context = new OsidContext(); $configuration = new ConfigurationProperties(); $configuration->addProperty('database_index', $dbIndex); $configuration->addProperty('database_name', $_REQUEST['db_name']); $configuration->addProperty('harmoni_db_name', 'migration_db'); Services::startManagerAsService("IdManager", $context, $configuration); Services::startManagerAsService("HierarchyManager", $context, $configuration); Services::startManagerAsService("AuthorizationManager", $context, $configuration); // Agent Manager $configuration = new ConfigurationProperties(); // default agent Flavor is one that can be editted $agentFlavor = "HarmoniEditableAgent"; $agentHierarchyId = "edu.middlebury.authorization.hierarchy"; $configuration->addProperty('hierarchy_id', $agentHierarchyId); $configuration->addProperty('defaultAgentFlavor', $agentFlavor); $configuration->addProperty('database_index', $dbIndex); $configuration->addProperty('database_name', $_REQUEST['db_name']); Services::startManagerAsService("AgentManager", $context, $configuration); // :: Set up PropertyManager :: //the property manager operates in the same context as the AgentManager and is more or less an adjunct to it $configuration->addProperty('database_index', $dbIndex); $configuration->addProperty('database_name', $_REQUEST['db_name']); Services::startManagerAsService("PropertyManager", $context, $configuration); // :: Start the AuthenticationManager OSID Impl. $configuration = new ConfigurationProperties(); $tokenCollectors = array(serialize(new Type("Authentication", "edu.middlebury.harmoni", "Harmoni DB")) => new FormActionNamePassTokenCollector('does not exist')); $configuration->addProperty('token_collectors', $tokenCollectors); Services::startManagerAsService("AuthenticationManager", $context, $configuration); // :: Start and configure the AuthenticationMethodManager $configuration = new ConfigurationProperties(); // set up a Database Authentication Method require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/SQLDatabaseAuthNMethod.class.php"; require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/SQLDatabaseMD5UsernamePasswordAuthNTokens.class.php"; $dbAuthType = new Type("Authentication", "edu.middlebury.harmoni", "Harmoni DB"); $dbMethodConfiguration = new ConfigurationProperties(); $dbMethodConfiguration->addProperty('tokens_class', 'SQLDatabaseMD5UsernamePasswordAuthNTokens'); $dbMethodConfiguration->addProperty('database_id', $dbIndex); $dbMethodConfiguration->addProperty('authentication_table', 'auth_db_user'); $dbMethodConfiguration->addProperty('username_field', 'username'); $dbMethodConfiguration->addProperty('password_field', 'password'); $propertiesFields = array('username' => 'username'); $dbMethodConfiguration->addProperty('properties_fields', $propertiesFields); $dbAuthNMethod = new SQLDatabaseAuthNMethod(); $dbAuthNMethod->assignConfiguration($dbMethodConfiguration); $configuration->addProperty($dbAuthType, $dbAuthNMethod); Services::startManagerAsService("AuthNMethodManager", $context, $configuration); // :: Agent-Token Mapping Manager :: $configuration = new ConfigurationProperties(); $configuration->addProperty('database_id', $dbIndex); $configuration->addProperty('harmoni_db_name', 'migration_db'); Services::startManagerAsService("AgentTokenMappingManager", $context, $configuration); $prepStatus->updateStatistics(); $dbc = Services::getService("DatabaseManager"); try { /********************************************************* * Check for the old tables. They must exist for us to run *********************************************************/ $azTables = array('az_authorization', 'az_function', 'hierarchy', 'j_node_node', 'node', 'node_ancestry'); // Check for old tables $tables = $dbc->getTableList($dbIndex); foreach ($azTables as $table) { if (!in_array($table, $tables)) { throw new Exception("Old AZ table, {$table}, is missing. Can not run Update."); } } /********************************************************* * Create the new tables *********************************************************/ $type = $dbc->getDatabaseType($dbIndex); switch ($type) { case MYSQL: SQLUtils::runSQLfile(HARMONI_BASE . "/SQL/MySQL/AuthZ2.sql", $dbIndex); break; case POSTGRESQL: SQLUtils::runSQLfile(HARMONI_BASE . "/SQL/PostgreSQL/AuthZ2.sql", $dbIndex); break; case ORACLE: SQLUtils::runSQLfile(HARMONI_BASE . "/SQL/PostgreSQL/AuthZ2.sql", $dbIndex); break; default: throw new Exception("Database schemas are not defined for specified database type."); } /********************************************************* * Hierarchy *********************************************************/ $hierarchyMgr1 = Services::getService("Hierarchy"); if (get_class($hierarchyMgr1) == "AuthZ2_HierarchyManager") { throw new OperationFailedException("Original HierarchyManager not configured."); } $hierarchyMgr2 = new AuthZ2_HierarchyManager(); $azMgr2 = new AuthZ2_AuthorizationManager(); $azMgr2->setHierarchyManager($hierarchyMgr2); $hierarchyMgr2->assignConfiguration($hierarchyMgr1->_configuration); /********************************************************* * Authorization *********************************************************/ $azMgr1 = Services::getService("AuthZ"); if (get_class($hierarchyMgr1) == "AuthZ2_AuthorizationManager") { throw new OperationFailedException("Original HierarchyManager not configured."); } $azMgr2->assignConfiguration($azMgr1->_configuration); $prepStatus->updateStatistics(); /********************************************************* * Hierarchies *********************************************************/ $hierarchies = $hierarchyMgr1->getHierarchies(); $prepStatus->updateStatistics(); while ($hierarchies->hasNext()) { $hierarchy = $hierarchies->next(); try { $newHierarchy = $hierarchyMgr2->getHierarchy($hierarchy->getId()); } catch (UnknownIdException $e) { $newHierarchy = $hierarchyMgr2->createHierarchy($hierarchy->getDisplayName(), array(), $hierarchy->getDescription(), $hierarchy->allowsMultipleParents(), $hierarchy->allowsRecursion(), $hierarchy->getId()); } $query = new SelectQuery(); $query->addTable("node"); $query->addColumn("COUNT(*)", "num"); $query->addWhereEqual("fk_hierarchy", $hierarchy->getId()->getIdString()); $dbc = Services::getService("DatabaseManager"); $result = $dbc->query($query); $this->nodeStatus = new StatusStars("Migrating nodes in the '" . $hierarchy->getDisplayName() . "' Hierarchy."); $this->nodeStatus->initializeStatistics($result->field("num")); // Add all of the nodes $nodes = $hierarchy->getRootNodes(); while ($nodes->hasNext()) { $this->addNode($newHierarchy, $nodes->next()); } } /********************************************************* * Authorizations *********************************************************/ $azMgr1 = Services::getService("AuthZ"); if (get_class($hierarchyMgr1) == "AuthZ2_AuthorizationManager") { throw new OperationFailedException("Original HierarchyManager not configured."); } // Add all of the Authorization functions $functionTypes = $azMgr1->getFunctionTypes(); while ($functionTypes->hasNext()) { $oldFunctions = $azMgr1->getFunctions($functionTypes->next()); while ($oldFunctions->hasNext()) { $oldFunction = $oldFunctions->next(); // Get or create the function try { $newFunction = $azMgr2->getFunction($oldFunction->getId()); } catch (UnknownIdException $e) { $newFunction = $azMgr2->createFunction($oldFunction->getId(), $oldFunction->getReferenceName(), $oldFunction->getDescription(), $oldFunction->getFunctionType(), $oldFunction->getQualifierHierarchyId()); } // Get all authorizations for this function. $oldAZs = $azMgr1->getExplicitAZs(null, $oldFunction->getId(), null, false); $status = new StatusStars("Migrating '" . $newFunction->getReferenceName() . "' Authorizations (" . $oldAZs->count() . ")"); $status->initializeStatistics($oldAZs->count()); while ($oldAZs->hasNext()) { $oldAZ = $oldAZs->next(); $status->updateStatistics(); try { $oldQualifier = $oldAZ->getQualifier(); } catch (UnknownIdException $e) { // continue if the qualifier no longer exists. continue; } // Add the new authorization try { $newAZ = $azMgr2->createAuthorization($oldAZ->getAgentId(), $oldAZ->getFunction()->getId(), $oldQualifier->getId()); if ($oldAZ->getExpirationDate()) { $newAZ->updateExpirationDate($oldAZ->getExpirationDate()); } if ($oldAZ->getEffectiveDate()) { $newAZ->updateEffectiveDate($oldAZ->getEffectiveDate()); } } catch (OperationFailedException $e) { } } } } } catch (Exception $e) { printpre($e->getMessage()); HarmoniErrorHandler::printDebugBacktrace($e->getTrace()); printpre("An error has occurred. Removing new tables."); try { $query = new GenericSQLQuery('TRUNCATE az2_implicit_az'); } catch (DatabaseException $e) { } try { $query = new GenericSQLQuery('TRUNCATE az2_explicit_az'); } catch (DatabaseException $e) { } try { $query = new GenericSQLQuery('TRUNCATE az2_node_ancestry'); } catch (DatabaseException $e) { } try { $query = new GenericSQLQuery('TRUNCATE az2_j_node_node'); } catch (DatabaseException $e) { } try { $query = new GenericSQLQuery('TRUNCATE az2_function'); } catch (DatabaseException $e) { } try { $query = new GenericSQLQuery('TRUNCATE az2_function_type'); } catch (DatabaseException $e) { } try { $query = new GenericSQLQuery('TRUNCATE az2_node'); } catch (DatabaseException $e) { } try { $query = new GenericSQLQuery('TRUNCATE az2_node_type'); } catch (DatabaseException $e) { } try { $query = new GenericSQLQuery('TRUNCATE az2_hierarchy'); } catch (DatabaseException $e) { } $query = new GenericSQLQuery('DROP TABLE az2_implicit_az, az2_explicit_az, az2_function, az2_function_type, az2_node_ancestry, az2_j_node_node, az2_node, az2_node_type, az2_hierarchy;'); $dbc->query($query, $dbIndex); return false; } /********************************************************* * If we have successfully gotten this far, drop the old * hierarchy and AuthZ tables to prevent confusion. *********************************************************/ $query = new GenericSQLQuery('DROP TABLE az_authorization, az_function, hierarchy, j_node_node, node, node_ancestry;'); $dbc->query($query, $dbIndex); print "Success!"; return true; }
/** * Display a plugin. * * @param string $id * @return void * @access public * @since 1/16/06 */ function displayPlugin($id) { $repositoryManager = Services::getService("Repository"); $idManager = Services::getService("Id"); $repository = $repositoryManager->getRepository($idManager->getId("edu.middlebury.segue.sites_repository")); $asset = $repository->getAsset($idManager->getId($id)); $configuration = new ConfigurationProperties(); $configuration->addProperty('plugin_dir', $dir = MYDIR . "/plugins"); $configuration->addProperty('plugin_path', $path = MYPATH . "/plugins"); $plugin = Plugin::newInstance($asset, $configuration); $actionRows = $this->getActionRows(); ob_start(); print AjaxPlugin::getPluginSystemJavascript(); if (!is_object($plugin)) { print $plugin; } else { print "\n<div id='plugin:" . $plugin->getId() . "'>"; print $plugin->executeAndGetMarkup(); print "\n</div>"; } $actionRows->add(new Block(ob_get_clean(), STANDARD_BLOCK), "100%", null, CENTER, CENTER); }
<?php /** * Set up the IdManager as this is required for the ID service * * USAGE: Copy this file to id.conf.php to set custom values. * * @package concerto.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id: tagging_default.conf.php,v 1.2 2008/04/08 20:57:37 achapin Exp $ */ $configuration = new ConfigurationProperties(); $configuration->addProperty('DatabaseIndex', $dbID); $systems = array('concerto' => array('ItemClass' => 'HarmoniNodeTaggedItem', 'HierarchyId' => 'edu.middlebury.authorization.hierarchy', 'UrlCallback' => 'getConcertoNodeUrl', 'ThumbUrlCallback' => 'getConcertoNodeThumbnailUrl'), 'segue' => array('ItemClass' => 'HarmoniNodeTaggedItem', 'HierarchyId' => 'edu.middlebury.authorization.hierarchy', 'UrlCallback' => 'getSegueNodeUrl')); $configuration->addProperty('Systems', $systems); Services::startManagerAsService("TagManager", $context, $configuration); define('POLYPHONY_TAGGEDITEM_PRINTING_CALLBACK', 'concertoPrintTaggedItem'); /** * Print out an Item * * @param object $item * @return object GuiComponent * @access public * @since 11/8/06 */ function concertoPrintTaggedItem($item, $viewAction) { printTaggedItem($item, $viewAction);
<?php /** * Set up the LanguageLocalization system * * USAGE: Copy this file to language.conf.php to set custom values. * * @package segue.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id: language_default.conf.php,v 1.4 2008/03/24 13:45:12 adamfranco Exp $ */ // :: Set up language directories :: $configuration = new ConfigurationProperties(); $configuration->addProperty('default_language', 'en_US'); $configuration->addProperty('applications', array('segue' => MYDIR . '/main/languages', 'polyphony' => POLYPHONY . '/main/languages')); Services::startManagerAsService("LanguageManager", $context, $configuration);
* * @package segue.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) */ require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/CASAuthNMethod.class.php"; require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/CASAuthNTokens.class.php"; require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/CASGroup.class.php"; require_once HARMONI . "/oki2/authentication/CasTokenCollector.class.php"; /********************************************************* * Create and configure the authentication method *********************************************************/ $authNMethod = new CASAuthNMethod(); $configuration = new ConfigurationProperties(); $configuration->addProperty('CAS_DEBUG_PATH', '/tmp/harmoni_cas.out'); $configuration->addProperty("CAS_HOST", "login.middlebury.edu"); $configuration->addProperty("CAS_PORT", "443"); $configuration->addProperty("CAS_PATH", "/cas/"); $configuration->addProperty("CAS_CERT", "/etc/pki/tls/certs/ca-bundle.crt"); $configuration->addProperty("CALLBACK_URL", "https://chisel.middlebury.edu/~afranco/directory_client_test/storePGT.php"); $configuration->addProperty("CASDIRECTORY_BASE_URL", "http://login.middlebury.edu/directory/"); $configuration->addProperty("CASDIRECTORY_ADMIN_ACCESS", "qwertyuiop"); $configuration->addProperty("DISPLAY_NAME_FORMAT", "[[FirstName]] [[LastName]]"); $rootGroups = array('OU=web data,DC=middlebury,DC=edu'); $configuration->addProperty("ROOT_GROUPS", $rootGroups); $configuration->addProperty("CASDIRECTORY_CLASS_ROOT", "OU=Classes,OU=Groups,DC=middlebury,DC=edu"); $configuration->addProperty("CASDIRECTORY_GROUP_ID_REGEX", "/^(OU|CN)=.*,DC=[a-z]+\$/i"); $authNMethod->assignConfiguration($configuration); /********************************************************* * Enable the authentication method
} /********************************************************* * Load each authentication source configuration files *********************************************************/ foreach ($authenticationSources as $source) { if (file_exists(MYDIR . '/config/authentication-' . $source . '.conf.php')) { require_once MYDIR . '/config/authentication-' . $source . '.conf.php'; } else { require_once MYDIR . '/config/authentication-' . $source . '_default.conf.php'; } } /********************************************************* * Start the AuthenticationMethodManager *********************************************************/ Services::startManagerAsService("AuthNMethodManager", $context, $authenticationMethodManagerConfiguration); /********************************************************* * Agent-Token Mapping Manager *********************************************************/ $configuration = new ConfigurationProperties(); $configuration->addProperty('database_id', $dbID); $configuration->addProperty('harmoni_db_name', 'segue_db'); Services::startManagerAsService("AgentTokenMappingManager", $context, $configuration); /********************************************************* * Start the AuthenticationManager OSID Impl. *********************************************************/ $configuration = new ConfigurationProperties(); $configuration->addProperty('token_collectors', $tokenCollectors); $configuration->addProperty('jquery_src', POLYPHONY_PATH . "/javascript/jquery.min.js"); $configuration->addProperty('jquery_autocomplete_src', POLYPHONY_PATH . "/javascript/jquery.autocomplete.min.js"); $configuration->addProperty('jquery_autocomplete_css', POLYPHONY_PATH . "/javascript/jquery.autocomplete.css"); Services::startManagerAsService("AuthenticationManager", $context, $configuration);
/** * Set up the parameters needed for OAI harvisting of metadata * * USAGE: Copy this file to oai.conf.php to set custom values. * * @package concerto.config * * @copyright Copyright © 2007, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id$ */ // Specify the include path for the PEAR libraries ini_set('include_path', ini_get('include_path') . ':/usr/local/lib/php/PEAR'); $config = new ConfigurationProperties(); $config->addProperty('ENABLE_OAI', false); $config->addProperty('OAI_REPOSITORY_NAME', 'Concerto at Example University'); $config->addProperty('OAI_REPOSITORY_ID', 'concerto.example.edu'); $config->addProperty('OAI_ADMIN_EMAIL', '*****@*****.**'); $config->addProperty('OAI_DBID', $dbID); $config->addProperty('OAI_DB_HOST', $dbHost); $config->addProperty('OAI_DB_USER', $dbUser); $config->addProperty('OAI_DB_PASSWD', $dbPass); $config->addProperty('OAI_DB_NAME', $dbName); $config->addProperty('OAI_TOKEN_DIR', '/tmp/concerto-oai_tokens'); // The search order is the array order. I.e, if the IP of the harvester matches the // first entry, then that entry will be used and later ones ignored. $harvesterConfig = array(array("name" => 'any_harvester', "ips_allowed" => array(), "repository_ids" => array(), "auth_group_ids" => array('edu.middlebury.agents.everyone'))); $config->addProperty('OAI_HARVESTER_CONFIG', $harvesterConfig); $harmoni = Harmoni::instance(); $harmoni->attachData('OAI_CONFIG', $config);
/** * Set up the SchedulingManager * * USAGE: Copy this file to coursemanagament.conf.php to set custom values. * * @package segue.config * * @copyright Copyright © 2006, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id: scheduling_default.conf.php,v 1.2 2007/09/04 18:00:43 adamfranco Exp $ */ // :: Set up the SchedulingManager :: $configuration = new ConfigurationProperties(); $configuration->addProperty('database_index', $dbID); $defaultAuthority = "edu.middlebury.authorization.hierarchy"; $configuration->addProperty('default_authority', $defaultAuthority); /* $courseManagamentHierarchyId = "edu.middlebury.authorization.hierarchy"; $courseManagamentRootId = "edu.middlebury.authorization.root"; $courseManagementId ="edu.middlebury.coursemanagement"; $canonicalCoursesId="edu.middlebury.coursemanagement.canonicalcourses"; $courseGroupsId ="edu.middlebury.coursemanagement.coursegroups"; $configuration->addProperty('hierarchy_id', $courseManagamentHierarchyId); $configuration->addProperty('root_id', $courseManagamentHierarchyId); $configuration->addProperty('course_management_id', $courseManagementId); $configuration->addProperty('canonical_courses_id', $canonicalCoursesId); $configuration->addProperty('course_groups_id', $courseGroupsId); */
* USAGE: Copy this file to coursemanagament.conf.php to set custom values. * * @package concerto.config * * @copyright Copyright © 2006, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id: coursemanagement_default.conf.php,v 1.2 2007/09/04 18:00:42 adamfranco Exp $ */ /************************************************ / Set this to true to create defualt terms **********************************************/ $CREATE_TERMS = true; // :: Set up the CourseManagementManager :: $configuration = new ConfigurationProperties(); $configuration->addProperty('database_index', $dbID); $courseManagamentHierarchyId = "edu.middlebury.authorization.hierarchy"; $courseManagementId = "edu.middlebury.coursemanagement"; $configuration->addProperty('hierarchy_id', $courseManagamentHierarchyId); $configuration->addProperty('course_management_id', $courseManagementId); $configuration->addProperty('whether_to_add_terms', $CREATE_TERMS); for ($year = 2004; $year < 2010; $year++) { $array = array(); $array['name'] = "Winter " . $year; $array['start'] = Timestamp::fromString($year . "-01-01T00:00:00"); $array['end'] = Timestamp::fromString($year . "-02-01T00:00:00"); $array['type'] = new Type("TermType", "edu.middlebury", "Winter"); $terms[] = $array; $array = array(); $array['name'] = "Spring " . $year; $array['start'] = Timestamp::fromString($year . "-02-01T00:00:00");
<?php /** * Set up the ImageProcessor service for generating thumbnails * * USAGE: Copy this file to imageprocessor.conf.php to set custom values. * * @package segue.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id: imageprocessor_default.conf.php,v 1.4 2007/09/25 19:46:17 adamfranco Exp $ */ // :: Set up the ImageProcessor service for generating thumbnails :: $configuration = new ConfigurationProperties(); $configuration->addProperty('thumbnail_format', "image/jpeg"); $configuration->addProperty('use_gd', FALSE); $configuration->addProperty('gd_formats', array()); $configuration->addProperty('use_imagemagick', TRUE); $configuration->addProperty('imagemagick_path', "/usr/local/bin"); $configuration->addProperty('imagemagick_temp_dir', "/tmp"); $configuration->addProperty('imagemagick_formats', array()); Services::startManagerAsService("ImageProcessingManager", $context, $configuration);
* @package segue.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) */ if (!defined('RECAPTCHA_PUBLIC_KEY') || !defined('RECAPTCHA_PRIVATE_KEY')) { throw new ConfigurationErrorException("You must configure reCAPTCHA API keys in segue/config/recaptcha.conf.php to enable visitor registration."); } require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/VisitorSQLDatabaseAuthNMethod.class.php"; require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/SQLDatabaseMD5UsernamePasswordAuthNTokens.class.php"; /********************************************************* * Create and configure the authentication method *********************************************************/ $authNMethod = new VisitorSQLDatabaseAuthNMethod(); $configuration = new ConfigurationProperties(); $configuration->addProperty('tokens_class', 'SQLDatabaseMD5UsernamePasswordAuthNTokens'); $configuration->addProperty('database_id', $dbID); // These values can be changed if needed. $configuration->addProperty('email_from_name', 'Segue Administrator'); $configuration->addProperty('email_from_address', $_SERVER['SERVER_ADMIN']); // Visitors with emails from these domains will not be able to register. $configuration->addProperty('domain_blacklist', array('example.com', 'example.org', 'example.net', 'example.edu')); // If specified, only visitors with emails from these domains will be allowed // to register. Blacklist and existance checks will still apply. // $configuration->addProperty('domain_whitelist', array( // 'example.edu' // )); $authNMethod->assignConfiguration($configuration); /********************************************************* * Enable the authentication method *********************************************************/
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id: test.php,v 1.1 2007/10/05 14:02:58 adamfranco Exp $ */ require_once '../../../harmoni.inc.php'; require_once dirname(__FILE__) . '/SimpleTableRepositoryManager.class.php'; print "\n<html>\n<head>\n\t<title>Simple Table Repository Test</title>\n\t<style type='text/css'>\n\t\t.recstruct {\n\t\t\tfloat: left;\n\t\t\tmargin: 5px;\n\t\t\tbackground-color: #AFA;\n\t\t\tborder: 1px dotted;\n\t\t\tpadding: 5px;\n\t\t}\n\t\tdt {\n\t\t\tmargin-left: 10px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t\tdd {\n\t\t\tmargin-left: 20px;\n\t\t}\n\t\tdiv.desc {\n\t\t\tfont-style: italic;\n\t\t}\n\t\th2 {\n\t\t\tborder-top: 1px dotted;\n\t\t\tclear: both;\n\t\t}\n\t</style>\n</head>\n<body>\n\t<form action='" . $_SERVER['PHP_SELF'] . "' method='post'>\n\t\tDatabase Type:\n\t\t<select name='db_type'>\n\t\t\t<option value='MYSQL' " . (isset($_REQUEST['db_type']) && $_REQUEST['db_type'] == 'MYSQL' ? " selected='selected'" : '') . ">MySQL</option>\n\t\t\t<option value='POSTGRESQL' " . (isset($_REQUEST['db_type']) && $_REQUEST['db_type'] == 'POSTGRESQL' ? " selected='selected'" : '') . ">PostgreSQL</option>\n\t\t</select>\n\t\t<br/>Host: <input type='text' name='host' value='" . (isset($_REQUEST['host']) ? $_REQUEST['host'] : '') . "'/>\n\t\t<br/>Database: <input type='text' name='db' value='" . (isset($_REQUEST['db']) ? $_REQUEST['db'] : '') . "'/>\n\t\t<br/>Table: <input type='text' name='table' value='" . (isset($_REQUEST['table']) ? $_REQUEST['table'] : '') . "'/>\n\t\t<br/>User: <input type='text' name='user' value='" . (isset($_REQUEST['user']) ? $_REQUEST['user'] : '') . "'/>\n\t\t<br/>Password: <input type='password' name='password' value='" . (isset($_REQUEST['password']) ? $_REQUEST['password'] : '') . "'/>\n\t\t<br/>Asset Id Column: <input type='text' name='id_column' value='" . (isset($_REQUEST['id_column']) ? $_REQUEST['id_column'] : '') . "'/>\n\t\t<br/>Order Column: <input type='text' name='order_column' value='" . (isset($_REQUEST['order_column']) ? $_REQUEST['order_column'] : '') . "'/>\n\t\t\n\t\t<br/>Order Direction:\n\t\t<select name='order_direction'>\n\t\t\t<option value='ASCENDING' " . (isset($_REQUEST['order_direction']) && $_REQUEST['order_direction'] == 'ASCENDING' ? " selected='selected'" : '') . ">Ascending</option>\n\t\t\t<option value='DESCENDING' " . (isset($_REQUEST['order_direction']) && $_REQUEST['order_direction'] == 'DESCENDING' ? " selected='selected'" : '') . ">Descending</option>\n\t\t</select>\n\t\t\n\t\t<br/>Columns to use (one per line): \n\t\t<br/><textarea name='columns' rows='10' cols='80'>" . (isset($_REQUEST['columns']) ? $_REQUEST['columns'] : '') . "</textarea>\n\t\t<br/>Columns mapped to Dublin Core (one per line): \n\t\t<br/><textarea name='dc_mapping' rows='10' cols='80'>" . (isset($_REQUEST['dc_mapping']) ? $_REQUEST['dc_mapping'] : '') . "</textarea>\n\t\t<br/><input type='submit'/>\n"; if (isset($_REQUEST['host'])) { $manager = new SimpleTableRepositoryManager(); /********************************************************* * Configuration *********************************************************/ $configuration = new ConfigurationProperties(); switch ($_REQUEST['db_type']) { case 'MYSQL': $configuration->addProperty('db_type', MYSQL); break; case 'POSTGRESQL': $configuration->addProperty('db_type', POSTGRESQL); break; } $configuration->addProperty('host', $_REQUEST['host']); $configuration->addProperty('db', $_REQUEST['db']); $configuration->addProperty('table', $_REQUEST['table']); $configuration->addProperty('user', $_REQUEST['user']); $configuration->addProperty('password', $_REQUEST['password']); $configuration->addProperty('id_column', $_REQUEST['id_column']); $configuration->addProperty('order_column', $_REQUEST['order_column']); switch ($_REQUEST['order_direction']) { case 'ASCENDING': $configuration->addProperty('order_direction', ASCENDING);
<?php /** * Set up the ImageProcessor service for generating thumbnails * * USAGE: Copy this file to imageprocessor.conf.php to set custom values. * * @package concerto.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id$ */ // :: Set up the ImageProcessor service for generating thumbnails :: $configuration = new ConfigurationProperties(); $configuration->addProperty('thumbnail_format', $arg0 = "image/jpeg"); $configuration->addProperty('use_gd', $arg1 = FALSE); $configuration->addProperty('gd_formats', $arg2 = array()); $configuration->addProperty('use_imagemagick', $arg3 = TRUE); $configuration->addProperty('imagemagick_path', $arg4 = "/usr/local/bin"); $configuration->addProperty('imagemagick_temp_dir', $arg5 = "/tmp"); $configuration->addProperty('imagemagick_formats', $arg2 = array()); unset($arg0, $arg1, $arg2, $arg3, $arg4, $arg5); Services::startManagerAsService("ImageProcessingManager", $context, $configuration);
<?php /** * Set up the PluginManager * * USAGE: Copy this file to plugins.conf.php to set custom values. * * @package segue.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id: plugins_default.conf.php,v 1.8 2008/04/04 20:23:13 achapin Exp $ */ require_once MYDIR . "/main/library/PluginManager/PluginManager.class.php"; Services::registerService("PluginManager", "PluginManager"); Services::createServiceAlias("PluginManager", "Plugs"); $configuration = new ConfigurationProperties(); $configuration->addProperty('plugin_dir', $dir = MYDIR . "/plugins"); $configuration->addProperty('plugin_path', $path = MYPATH . "/plugins"); $configuration->addProperty('authN_priority', $prior = 'Middlebury LDAP'); Services::startManagerAsService("PluginManager", $context, $configuration); // $pluginManager = Services::getService("PluginManager"); // $pluginManager->enablePlugin(new Type ('SeguePlugins', 'edu.middlebury', 'Tags')); // $pluginManager->installPlugin(new Type ('SeguePlugins', 'edu.middlebury', 'Download')); // $pluginManager->installPlugin(new Type ('SeguePlugins', 'edu.middlebury', 'Assignment'));
<?php /** * Set up the RepositoryManager * * USAGE: Copy this file to repository.conf.php to set custom values. * * @package segue.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id: repository_default.conf.php,v 1.6 2007/09/04 18:00:43 adamfranco Exp $ */ // :: Set up the RepositoryManager :: $repositoryHierarchyId = "edu.middlebury.authorization.hierarchy"; $defaultParentId = "edu.middlebury.repositories_root"; $configuration = new ConfigurationProperties(); $configuration->addProperty('database_index', $dbID); $configuration->addProperty('hierarchy_id', $repositoryHierarchyId); $configuration->addProperty('default_parent_id', $defaultParentId); $configuration->addProperty('version_control_all', $arg2 = TRUE); $configuration->addProperty('use_filesystem_for_files', $arg3 = FALSE); // $configuration->addProperty('file_data_path', $arg4 = MYPATH."/../segue_data"); Services::startManagerAsService("RepositoryManager", $context, $configuration); unset($arg0, $arg1, $arg2, $arg3, $arg4);
<?php /** * Set up the IdManager as this is required for the ID service * * USAGE: Copy this file to id.conf.php to set custom values. * * @package concerto.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id$ */ $configuration = new ConfigurationProperties(); $configuration->addProperty('database_index', $dbID); $configuration->addProperty('database_name', $dbName); // $configuration->addProperty('id_prefix', $arg0 = 'dev_id-'); // unset($arg0); Services::startManagerAsService("IdManager", $context, $configuration);
* * USAGE: Copy this file to authentication_manager.conf.php to set custom values. * * @package segue.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) */ require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/LDAPAuthNMethod.class.php"; require_once HARMONI . "/oki2/agentmanagement/AuthNMethods/LDAPAuthNTokens.class.php"; /********************************************************* * Create and configure the authentication method *********************************************************/ $authNMethod = new LDAPAuthNMethod(); $configuration = new ConfigurationProperties(); $configuration->addProperty('tokens_class', 'LDAPAuthNTokens'); $configuration->addProperty("LDAPHost", "ad.middlebury.edu"); $configuration->addProperty("UserBaseDN", "cn=users,dc=middlebury,dc=edu"); $configuration->addProperty("ClassesBaseDN", "ou=classes,ou=groups,dc=middlebury,dc=edu"); $configuration->addProperty("GroupBaseDN", "ou=groups,dc=middlebury,dc=edu"); $configuration->addProperty("bindDN", "readonly_username"); $configuration->addProperty("bindDNPassword", "password"); $propertiesFields = array('username' => 'samaccountname', 'name' => 'displayname', 'first name' => 'givenname', 'last name' => 'sn', 'department' => 'department', 'email' => 'mail'); $configuration->addProperty('properties_fields', $propertiesFields); $loginFields = array('samaccountname', 'mail', 'cn'); $configuration->addProperty('login_fields', $loginFields); $configuration->addProperty("display_name_property", "name"); $authNMethod->assignConfiguration($configuration); /********************************************************* * Enable the authentication method *********************************************************/
<?php /** * Set up the AgentManager * * USAGE: Copy this file to agent.conf.php to set custom values. * * @package concerto.config * * @copyright Copyright © 2005, Middlebury College * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) * * @version $Id$ */ // :: Set up the AgentManager :: $configuration = new ConfigurationProperties(); // default agent Flavor is one that can be editted $agentFlavor = "HarmoniEditableAgent"; $agentHierarchyId = "edu.middlebury.authorization.hierarchy"; $configuration->addProperty('hierarchy_id', $agentHierarchyId); $configuration->addProperty('defaultAgentFlavor', $agentFlavor); $configuration->addProperty('database_index', $dbID); $configuration->addProperty('database_name', $dbName); Services::startManagerAsService("AgentManager", $context, $configuration); // :: Set up PropertyManager :: //the property manager operates in the same context as the AgentManager and is more or less an adjunct to it $configuration->addProperty('database_index', $dbID); $configuration->addProperty('database_name', $dbName); Services::startManagerAsService("PropertyManager", $context, $configuration);
// define("LOGO_URL", MYPATH."/themes/SimpleThemeWhite/images/logo.gif"); // // $configuration = new ConfigurationProperties; // $configuration->addProperty('database_index', $dbID); // $configuration->addProperty('database_name', $dbName); // $configuration->addProperty('default_theme', new SimpleThemeWhite); // $configuration->addProperty('character_set', $arg0 = 'utf-8'); // $configuration->addProperty('document_type', $arg1 = 'text/html'); // $configuration->addProperty('document_type_definition', $arg2 = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'); // unset($arg0, $arg1, $arg2); // Services::startManagerAsService("GUIManager", $context, $configuration); require_once HARMONI . "GUIManager/Themes/GenericTheme.class.php"; require_once HARMONI . "GUIManager/Themes/SimpleTheme.class.php"; require_once HARMONI . "GUIManager/Themes/SimpleTheme1.class.php"; require_once HARMONI . "GUIManager/Themes/SimpleLinesTheme.class.php"; require_once dirname(__FILE__) . "/../themes/SimpleThemeBlack/SimpleThemeBlack.class.php"; define("LOGO_URL", MYPATH . "/themes/SimpleThemeBlack/images/logo.gif"); $configuration = new ConfigurationProperties(); $configuration->addProperty('database_index', $dbID); $configuration->addProperty('database_name', $dbName); $configuration->addProperty('default_theme', new SimpleThemeBlack()); $configuration->addProperty('character_set', 'utf-8'); $configuration->addProperty('document_type', 'text/html'); $configuration->addProperty('document_type_definition', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'); $configuration->addProperty('xmlns', 'http://www.w3.org/1999/xhtml'); $arrayOfThemes[] = array("Generic Theme", "GenericTheme"); $arrayOfThemes[] = array("Simple Theme", "SimpleTheme"); $arrayOfThemes[] = array("Simple Lines Theme", "SimpleLinesTheme"); $arrayOfThemes[] = array("Simple Black Theme", "SimpleThemeBlack"); $configuration->addProperty('array_of_default_themes', $arrayOfThemes); Services::startManagerAsService("GUIManager", $context, $configuration);