#!perl ################################################################################ # WeBWorK Online Homework Delivery System # Copyright © 2000-2003 The WeBWorK Project, http://openwebwork.sf.net/ # $CVSHeader: webwork-modperl/conf/global.conf.dist,v 1.49 2004/02/12 14:32:48 gage Exp $ # # This program is free software; you can redistribute it and/or modify it under # the terms of either: (a) the GNU General Public License as published by the # Free Software Foundation; either version 2, or (at your option) any later # version, or (b) the "Artistic License" which comes with this package. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the # Artistic License for more details. ################################################################################ # This file is used to set up the default WeBWorK course environment for all # requests. Values may be overwritten by the course.conf for a specific course. # All package variables set in this file are added to the course environment. # If you wish to set a variable here but omit it from the course environment, # use the "my" keyword. The following variables are available to this file: # # $webworkRoot directory that contains the WeBWorK distribution # $webworkURL base URL handled by Apache::WeBWorK # $pgRoot directory that contains the PG distribution # $courseName name of the course being used ################################################################################ # WeBWorK settings ################################################################################ %webworkDirs = ( root => "$webworkRoot", DATA => "$webworkRoot/DATA", uploadCache => "$webworkRoot/DATA/uploads", bin => "$webworkRoot/bin", conf => "$webworkRoot/conf", courses => "$webworkRoot/courses", htdocs => "$webworkRoot/htdocs", htdocs_temp => "$webworkRoot/htdocs/tmp", equationCache => "$webworkRoot/htdocs/tmp/equations", lib => "$webworkRoot/lib", logs => "$webworkRoot/logs", macros => "$pgRoot/macros", tmp => "$webworkRoot/tmp", ); %webworkFiles = ( environment => "$webworkDirs{conf}/global.conf", hardcopySnippets => { preamble => "$webworkDirs{conf}/snippets/hardcopyPreamble.tex", setHeader => "$webworkDirs{conf}/snippets/hardcopySetHeader.pg", problemDivider => "$webworkDirs{conf}/snippets/hardcopyProblemDivider.tex", setFooter => "$webworkDirs{conf}/snippets/hardcopySetFooter.pg", setDivider => "$webworkDirs{conf}/snippets/hardcopySetDivider.tex", userDivider => "$webworkDirs{conf}/snippets/hardcopyUserDivider.tex", postamble => "$webworkDirs{conf}/snippets/hardcopyPostamble.tex", }, screenSnippets => { setHeader => "$webworkDirs{conf}/snippets/setHeader.pg", }, logs => { timing => "$webworkDirs{logs}/timing.log", }, equationCacheDB => "$webworkDirs{DATA}/equationcache", ); %webworkURLs = ( root => "$webworkURLRoot", home => "/webwork2_files/index.html", htdocs => "/webwork2_files", htdocs_temp => "/webwork2_files/tmp", equationCache => "/webwork2_files/tmp/equations", docs => "http://webhost.math.rochester.edu/webworkdocs/docs", oldProf => "/webwork-old/profLogin.pl", ); ################################################################################ # Default course-specific settings ################################################################################ my $courseRoot = "$webworkDirs{courses}/$courseName"; %courseDirs = ( root => "$courseRoot", DATA => "$courseRoot/DATA", auth_DATA => "$courseRoot/DATA/.auth", html => "$courseRoot/html", html_images => "$courseRoot/html/images", html_temp => "$courseRoot/html/tmp", logs => "$courseRoot/logs", scoring => "$courseRoot/scoring", templates => "$courseRoot/templates", macros => "$courseRoot/templates/macros", email => "$courseRoot/templates/email", ); %courseFiles = ( environment => "$courseDirs{root}/course.conf", motd => "$courseDirs{templates}/motd.txt", logs => { answer_log => "$courseDirs{logs}/answer_log", }, course_info => "course_info.txt", # path relative to templates directory login_info => "login_info.txt", # path relative to templates directory ); # quick hack to fix transaction logging. blah. $webworkFiles{logs}->{transaction} = "$courseDirs{logs}/transaction.log"; $webworkFiles{logs}->{pastAnswerList} = "$courseDirs{logs}/past_answers.log"; my $courseURLRoot = "$webworkURLs{htdocs}/courses/$courseName"; %courseURLs = ( root => "$courseURLRoot", html => "$courseURLRoot", html_temp => "$courseURLRoot/tmp", ); ################################################################################ # Other site-specific options ################################################################################ %mail = ( smtpServer => "mail.math.rochester.edu", smtpSender => "webwork\@math.rochester.edu", # allowedRecipients defines addresses that the PG system is allowed to # send mail to. this prevents subtle PG exploits. This should be set # in course.conf to the addresses of professors of each course. Sending # mail from the PG system (i.e. questionaires, essay questions) will # fail if this is not set somewhere (either here or in course.conf). #allowedRecipients => [ # 'yourname@host.yourdomain.edu', #], # if defined, feedbackRecipients overrides the list of recipients for # feedback email. It's appropriate to set this in the course.conf for # specific courses, but probably not in global.conf. if not defined, # mail is sent to all professors and TAs for a given course #feedbackRecipients => [ # 'prof1@host.yourdomain.edu', # 'prof2@host.yourdomain.edu', #], # feedbackVerbosity: # 0: send only the feedback comment and context link # 1: as in 0, plus user, set, problem, and PG data # 2: as in 1, plus the problem environment (debugging data) feedbackVerbosity => 1, editor_window_rows => 15, editor_window_columns => 100, ); %externalPrograms = ( mkdir => "/bin/mkdir", tth => "/usr/local/bin/tth", pdflatex => "/usr/local/bin/pdflatex", latex => "/usr/local/bin/latex", dvipng => "/usr/local/bin/dvipng", gif2eps => "$webworkDirs{bin}/gif2eps", png2eps => "$webworkDirs{bin}/png2eps", gif2png => "$webworkDirs{bin}/gif2png", ); ################################################################################ # Frontend options ################################################################################ %templates = ( system => "$webworkDirs{conf}/templates/ur.template", ); ################################################################################ # Database options ################################################################################ # Several database are defined in the file conf/database.conf and stored in the # hash %dbLayouts. include "conf/database.conf"; # Select the default database layout. This can be overridden in the course.conf # file of a particular course. #*dbLayout = $dbLayouts{sql}; *dbLayout = $dbLayouts{gdbm}; ################################################################################ # Authorization system ################################################################################ # This lets you specify a minimum permission level needed to perform certain # actions. In the current system, >=10 will allow a professor to perform the # action, >=5 will allow a TA to, and >=0 will allow a student to perform an # action (almost never what you want). my $ta = 5; my $professor = 10; %permissionLevels = ( become_student => $professor, access_instructor_tools => $ta, create_and_delete_problem_sets => $professor, modify_problem_sets => $professor, assign_problem_sets => $professor, modify_student_data => $professor, score_sets => $professor, send_mail => $professor, modify_classlist_files => $professor, modify_set_def_files => $professor, ); ################################################################################ # Session options ################################################################################ # $sessionKeyTimeout defines seconds of inactivity before a key expires $sessionKeyTimeout = 60*30; # $sessionKeyLength defines the length (in characters) of the session key $sessionKeyLength = 40; # @sessionKeyChars lists the legal session key characters @sessionKeyChars = ('A'..'Z', 'a'..'z', '0'..'9', '.', '^', '/', '!', '*'); # Practice users are users who's names start with $practiceUser # (you can comment this out to remove practice user support) $practiceUserPrefix = "practice"; # There is a practice user who can be logged in multiple times. He's # commented out by default, though, so you don't hurt yourself. It is # kindof a backdoor to the practice user system, since he doesn't have a # password. Come to think of it, why do we even have this?! #$debugPracticeUser = "practice666"; ################################################################################ # PG translation options ################################################################################ %pg = ( # options for various renderers renderers => { "WeBWorK::PG::Remote" => { proxy => "http://localhost:21000/RenderD" } }, # currently selected renderer renderer => "WeBWorK::PG::Local", #renderer => "WeBWorK::PG::Remote", # directories used by PG directories => { # directories used only by PG lib => "$pgRoot/lib", macros => "$pgRoot/macros", }, options => { # default translation options displayMode => "images", showOldAnswers => 1, showCorrectAnswers => 0, showHints => 0, showSolutions => 0, catchWarnings => 0, # there's a global warning catcher now # default grader grader => "avg_problem_grader", }, # this will be customized in the course.conf file specialPGEnvironmentVars => { PRINT_FILE_NAMES_FOR => [ qw(professor) ], CAPA_Tools => "$courseDirs{macros}/CAPA_Tools/", CAPA_MCTools => "$courseDirs{macros}/CAPA_MCTools/", CAPA_Graphics_URL => "$courseDirs{html}/CAPA_Graphics/", CAPA_GraphicsDirectory => "$courseDirs{html}CAPA_Graphics/", }, # modules lists module names and the packages each contains modules => [ [qw(DynaLoader)], [qw(Exporter)], [qw(GD)], [qw(AlgParser AlgParserWithImplicitExpand Expr ExprWithImplicitExpand)], [qw(AnswerHash AnswerEvaluator)], [qw(WWPlot)], # required by Circle (and others) [qw(Circle)], [qw(Complex)], [qw(Complex1)], [qw(Distributions)], [qw(Fraction)], [qw(Fun)], [qw(Hermite)], [qw(Label)], [qw(List)], [qw(Match)], [qw(MatrixReal1)], # required by Matrix [qw(Matrix)], [qw(Multiple)], [qw(PGrandom)], [qw(Regression)], [qw(Select)], [qw(Units)], [qw(VectorField)], ], # defaults used by answer evaluators ansEvalDefaults => { functAbsTolDefault => .001, functLLimitDefault => .0000001, functMaxConstantOfIntegration => 1E8, functNumOfPoints => 3, functRelPercentTolDefault => .1, functULimitDefault => .9999999, functVarDefault => "x", functZeroLevelDefault => 1E-14, functZeroLevelTolDefault => 1E-12, numAbsTolDefault => .001, numFormatDefault => "", numRelPercentTolDefault => .1, numZeroLevelDefault => 1E-14, numZeroLevelTolDefault => 1E-12, }, );