Parent Directory
|
Revision Log
Preliminary commit of code to restrict access to assignments by client IP address. This commit adds the database tables for IP address restriction, updates check_modules.pl to require Net::IP for address matching, adds database calls in DB.pm for manipulating locations and addresses, and adds location restriction to the set editing in ProblemSetDetail. This commit does not add actual restriction to sets, nor the ability to create locations to which to restrict access.
1 #!perl 2 ################################################################################ 3 # WeBWorK Online Homework Delivery System 4 # Copyright © 2000-2006 The WeBWorK Project, http://openwebwork.sf.net/ 5 # $CVSHeader: webwork2/conf/global.conf.dist,v 1.187 2007/03/15 23:57:11 sh002i Exp $ 6 # 7 # This program is free software; you can redistribute it and/or modify it under 8 # the terms of either: (a) the GNU General Public License as published by the 9 # Free Software Foundation; either version 2, or (at your option) any later 10 # version, or (b) the "Artistic License" which comes with this package. 11 # 12 # This program is distributed in the hope that it will be useful, but WITHOUT 13 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 # FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the 15 # Artistic License for more details. 16 ################################################################################ 17 18 # This file is used to set up the default WeBWorK course environment for all 19 # requests. Values may be overwritten by the course.conf for a specific course. 20 # All package variables set in this file are added to the course environment. 21 # If you wish to set a variable here but omit it from the course environment, 22 # use the "my" keyword. The $webwork_dir variable is set in the WeBWorK Apache 23 # configuration file (webwork.apache-config) and is available for use here. In 24 # addition, the $courseName variable holds the name of the current course. 25 26 ################################################################################ 27 # Seed variables 28 ################################################################################ 29 30 # Set these variables to correspond to your configuration and preferences. You 31 # will need to restart the webserver to reset the variables in this section. 32 33 # URL of WeBWorK handler. If WeBWorK is to be on the web server root, use "". 34 $webwork_url = "/webwork2"; 35 36 # Root directory of PG. 37 $pg_dir = "/opt/webwork/pg"; 38 39 # URL and path to htdocs directory. 40 $webwork_htdocs_url = "/webwork2_files"; 41 $webwork_htdocs_dir = "$webwork_dir/htdocs"; 42 43 # URL and path to courses directory. 44 $webwork_courses_url = "/webwork2_course_files"; 45 $webwork_courses_dir = "/opt/webwork/courses"; 46 47 ################################################################################ 48 # Paths to external programs 49 ################################################################################ 50 51 # system utilties 52 $externalPrograms{mv} = "/bin/mv"; 53 $externalPrograms{cp} = "/bin/cp"; 54 $externalPrograms{rm} = "/bin/rm"; 55 $externalPrograms{mkdir} = "/bin/mkdir"; 56 $externalPrograms{tar} = "/usr/bin/tar"; 57 $externalPrograms{gzip} = "/usr/bin/gzip"; 58 59 # equation rendering/hardcopy utiltiies 60 $externalPrograms{latex} = "/usr/bin/latex"; 61 $externalPrograms{pdflatex} = "/usr/bin/pdflatex --shell-escape"; 62 $externalPrograms{dvipng} = "/usr/bin/dvipng"; 63 $externalPrograms{tth} = "/usr/bin/tth"; 64 65 # NetPBM - basic image manipulation utilities 66 # Most sites only need to configure $netpbm_prefix. 67 my $netpbm_prefix = "/usr/bin"; 68 $externalPrograms{giftopnm} = "$netpbm_prefix/giftopnm"; 69 $externalPrograms{ppmtopgm} = "$netpbm_prefix/ppmtopgm"; 70 $externalPrograms{pnmtops} = "$netpbm_prefix/pnmtops"; 71 $externalPrograms{pnmtopng} = "$netpbm_prefix/pnmtopng"; 72 $externalPrograms{pngtopnm} = "$netpbm_prefix/pngtopnm"; 73 74 # url checker 75 $externalPrograms{checkurl} = "/usr/local/bin/lwp-request -mHEAD "; # or "/usr/local/bin/w3c -head " 76 77 # image conversions utiltiies 78 # the source file is given on stdin, and the output expected on stdout. 79 $externalPrograms{gif2eps} = "$externalPrograms{giftopnm} | $externalPrograms{ppmtopgm} | $externalPrograms{pnmtops} -noturn 2>/dev/null"; 80 $externalPrograms{png2eps} = "$externalPrograms{pngtopnm} | $externalPrograms{ppmtopgm} | $externalPrograms{pnmtops} -noturn 2>/dev/null"; 81 $externalPrograms{gif2png} = "$externalPrograms{giftopnm} | $externalPrograms{pnmtopng}"; 82 83 # mysql clients 84 $externalPrograms{mysql} = "/usr/bin/mysql"; 85 $externalPrograms{mysqldump} = "/usr/bin/mysqldump"; 86 87 ################################################################################ 88 # Mail settings 89 ################################################################################ 90 91 # Mail sent by the PG system and the mail merge and feedback modules will be 92 # sent via this SMTP server. 93 $mail{smtpServer} = 'mail.yourschool.edu'; 94 95 # When connecting to the above server, WeBWorK will send this address in the 96 # MAIL FROM command. This has nothing to do with the "From" address on the mail 97 # message. It can really be anything, but some mail servers require it contain 98 # a valid mail domain, or at least be well-formed. 99 $mail{smtpSender} = 'webwork@yourserver.yourschool.edu'; 100 101 # AllowedRecipients defines addresses that the PG system is allowed to send mail 102 # to. this prevents subtle PG exploits. This should be set in course.conf to the 103 # addresses of professors of each course. Sending mail from the PG system (i.e. 104 # questionaires, essay questions) will fail if this is not set somewhere (either 105 # here or in course.conf). 106 $mail{allowedRecipients} = [ 107 #'prof1@yourserver.yourdomain.edu', 108 #'prof2@yourserver.yourdomain.edu', 109 ]; 110 111 # By default, feeback is sent to all users who have permission to 112 # receive_feedback. If this list is non-empty, feedback is also sent to the 113 # addresses specified here. 114 # 115 # * If you want to disable feedback altogether, leave this empty and set 116 # submit_feeback => $nobody in %permissionLevels below. This will cause the 117 # feedback button to go away as well. 118 # 119 # * If you want to send email ONLY to addresses in this list, set 120 # receive_feedback => $nobody in %permissionLevels below. 121 # 122 # It's often useful to set this in the course.conf to change the behavior of 123 # feedback for a specific course. 124 # 125 # Items in this list may be bare addresses, or RFC822 mailboxes, like: 126 # 'Joe User <joe.user@example.com>' 127 # The advantage of this form is that the resulting email will include the name 128 # of the recipient in the "To" field of the email. 129 # 130 $mail{feedbackRecipients} = [ 131 #'prof1@yourserver.yourdomain.edu', 132 #'prof2@yourserver.yourdomain.edu', 133 ]; 134 135 # Feedback subject line -- the following escape sequences are recognized: 136 # 137 # %c = course ID 138 # %u = user ID 139 # %s = set ID 140 # %p = problem ID 141 # %x = section 142 # %r = recitation 143 # %% = literal percent sign 144 # 145 $mail{feedbackSubjectFormat} = "[WWfeedback] course:%c user:%u set:%s prob:%p sec:%x rec:%r"; 146 147 # feedbackVerbosity: 148 # 0: send only the feedback comment and context link 149 # 1: as in 0, plus user, set, problem, and PG data 150 # 2: as in 1, plus the problem environment (debugging data) 151 $mail{feedbackVerbosity} = 1; 152 153 # Defines the size of the Mail Merge editor window 154 # FIXME: should this be here? it's UI, not mail 155 # FIXME: replace this with the auto-size method that TWiki uses 156 $mail{editor_window_rows} = 15; 157 $mail{editor_window_columns} = 100; 158 159 # Use this to customize the text of the feedback button. 160 $feedback_button_name = "Email instructor"; 161 162 ################################################################################ 163 # System-wide locations (directories and URLs) 164 ################################################################################ 165 166 # The root directory, set by webwork_root variable in Apache configuration. 167 $webworkDirs{root} = "$webwork_dir"; 168 169 # Location of system-wide data files. 170 $webworkDirs{DATA} = "$webworkDirs{root}/DATA"; 171 172 # Used for temporary storage of uploaded files. 173 $webworkDirs{uploadCache} = "$webworkDirs{DATA}/uploads"; 174 175 # Location of utility programs. 176 $webworkDirs{bin} = "$webworkDirs{root}/bin"; 177 178 # Location of configuration files, templates, snippets, etc. 179 $webworkDirs{conf} = "$webworkDirs{root}/conf"; 180 181 # Location of theme templates. 182 $webworkDirs{templates} = "$webworkDirs{conf}/templates"; 183 184 # Location of course directories. 185 $webworkDirs{courses} = "$webwork_courses_dir" || "$webworkDirs{root}/courses"; 186 187 # Contains log files. 188 $webworkDirs{logs} = "$webworkDirs{root}/logs"; 189 190 # Contains non-web-accessible temporary files, such as TeX working directories. 191 $webworkDirs{tmp} = "$webworkDirs{root}/tmp"; 192 193 # The (absolute) destinations of symbolic links that are OK for the FileManager to follow. 194 # (any subdirectory of these is a valid target for a symbolic link.) 195 # For example: 196 # $webworkDirs{valid_symlinks} = ["$webworkDirs{courses}/modelCourse/templates","/ww2/common/sets"]; 197 $webworkDirs{valid_symlinks} = []; 198 199 ##### The following locations are web-accessible. 200 201 # The root URL (usually /webwork2), set by <Location> in Apache configuration. 202 $webworkURLs{root} = "$webwork_url"; 203 204 # Location of system-wide web-accessible files, such as equation images, and 205 # help files. 206 $webworkDirs{htdocs} = "$webwork_htdocs_dir" || "$webworkDirs{root}/htdocs"; 207 $webworkURLs{htdocs} = "$webwork_htdocs_url"; 208 209 # Location of web-accessible temporary files, such as equation images. 210 $webworkDirs{htdocs_temp} = "$webworkDirs{htdocs}/tmp"; 211 $webworkURLs{htdocs_temp} = "$webworkURLs{htdocs}/tmp"; 212 213 # Location of cached equation images. 214 $webworkDirs{equationCache} = "$webworkDirs{htdocs_temp}/equations"; 215 $webworkURLs{equationCache} = "$webworkURLs{htdocs_temp}/equations"; 216 217 # Contains context-sensitive help files. 218 $webworkDirs{local_help} = "$webworkDirs{htdocs}/helpFiles"; 219 $webworkURLs{local_help} = "$webworkURLs{htdocs}/helpFiles"; 220 221 # URL of general WeBWorK documentation. 222 $webworkURLs{docs} = "http://webhost.math.rochester.edu/webworkdocs/docs"; 223 224 # URL of WeBWorK Bugzilla database. 225 $webworkURLs{bugReporter} = "http://bugs.webwork.rochester.edu/"; 226 227 # Location of CSS 228 $webworkURLs{stylesheet} = "$webworkURLs{htdocs}/css/ur.css"; 229 230 # Location of jsMath script, used for the jsMath display mode. 231 $webworkURLs{jsMath} = "$webworkURLs{htdocs}/jsMath/jsMath-ww.js"; 232 233 # Location of ASCIIMathML script, used for the asciimath display mode. 234 $webworkURLs{asciimath} = "$webworkURLs{htdocs}/ASCIIMathML/ASCIIMathML.js"; 235 236 # Location of LaTeXMathML script, used for the LaTeXMathML display mode. 237 $webworkURLs{LaTeXMathML} = "$webworkURLs{htdocs}/LaTeXMathML/LaTeXMathML.js"; 238 239 ################################################################################ 240 # Defaults for course-specific locations (directories and URLs) 241 ################################################################################ 242 243 # The root directory of the current course. (The ID of the current course is 244 # available in $courseName.) 245 $courseDirs{root} = "$webworkDirs{courses}/$courseName"; 246 247 # Location of course-specific data files. 248 $courseDirs{DATA} = "$courseDirs{root}/DATA"; 249 250 # Location of course HTML files, passed to PG. 251 $courseDirs{html} = "$courseDirs{root}/html"; 252 $courseURLs{html} = "$webwork_courses_url/$courseName"; 253 254 # Location of course image files, passed to PG. 255 $courseDirs{html_images} = "$courseDirs{html}/images"; 256 257 # Location of web-accessible, course-specific temporary files, like static and 258 # dynamically-generated PG graphics. 259 $courseDirs{html_temp} = "$courseDirs{html}/tmp"; 260 $courseURLs{html_temp} = "$courseURLs{html}/tmp"; 261 262 # Location of course-specific logs, like the transaction log. 263 $courseDirs{logs} = "$courseDirs{root}/logs"; 264 265 # Location of scoring files. 266 $courseDirs{scoring} = "$courseDirs{root}/scoring"; 267 268 # Location of PG templates and set definition files. 269 $courseDirs{templates} = "$courseDirs{root}/templates"; 270 271 # Location of course-specific macro files. 272 $courseDirs{macros} = "$courseDirs{templates}/macros"; 273 274 # Location of mail-merge templates. 275 $courseDirs{email} = "$courseDirs{templates}/email"; 276 277 # Location of temporary editing files. 278 $courseDirs{tmpEditFileDir} = "$courseDirs{templates}/tmpEdit"; 279 280 # If this is set to a non-empty value (i.e. in course.conf), WeBWorK's usual 281 # email feedback mechanism will be replaced with a link to the given URL. 282 # See also $feedback_button_name, above. 283 $courseURLs{feedbackURL} = ""; 284 285 # mail merge status directory 286 $courseDirs{mailmerge} = "$courseDirs{DATA}/mailmerge"; 287 288 ################################################################################ 289 # System-wide files 290 ################################################################################ 291 292 # Location of this file. 293 $webworkFiles{environment} = "$webworkDirs{conf}/global.conf"; 294 295 # Flat-file database used to protect against MD5 hash collisions. TeX equations 296 # are hashed to determine the name of the image file. There is a tiny chance of 297 # a collision between two TeX strings. This file allows for that. However, this 298 # is slow, so most people chose not to worry about it. Set this to "" if you 299 # don't want to use the equation cache file. 300 $webworkFiles{equationCacheDB} = ""; # "$webworkDirs{DATA}/equationcache"; 301 302 ##### Hardcopy snippets are used in constructing a TeX file for hardcopy output. 303 ##### They should contain TeX code unless otherwise noted. 304 305 # The preamble is the first thing in the TeX file. 306 $webworkFiles{hardcopySnippets}{preamble} = "$webworkDirs{conf}/snippets/hardcopyPreamble.tex"; 307 308 # The setHeader preceeds each set. It is a PG file. 309 $webworkFiles{hardcopySnippets}{setHeader} = "$webworkDirs{conf}/snippets/setHeader.pg"; # hardcopySetHeader.pg", 310 311 # The problem divider goes between problems. 312 $webworkFiles{hardcopySnippets}{problemDivider} = "$webworkDirs{conf}/snippets/hardcopyProblemDivider.tex"; 313 314 # The set footer goes after each set. Is is a PG file. 315 $webworkFiles{hardcopySnippets}{setFooter} = "$webworkDirs{conf}/snippets/hardcopySetFooter.pg"; 316 317 # The set divider goes between sets (in multiset output). 318 $webworkFiles{hardcopySnippets}{setDivider} = "$webworkDirs{conf}/snippets/hardcopySetDivider.tex"; 319 320 # The user divider does between users (in multiuser output). 321 $webworkFiles{hardcopySnippets}{userDivider} = "$webworkDirs{conf}/snippets/hardcopyUserDivider.tex"; 322 323 # The postabmle is the last thing in the TeX file. 324 $webworkFiles{hardcopySnippets}{postamble} = "$webworkDirs{conf}/snippets/hardcopyPostamble.tex"; 325 326 ##### Screen snippets are used when displaying problem sets on the screen. 327 328 # The set header is displayed on the problem set page. It is a PG file. 329 $webworkFiles{screenSnippets}{setHeader} = "$webworkDirs{conf}/snippets/setHeader.pg"; # screenSetHeader.pg" 330 331 # A PG template for creation of new problems. 332 $webworkFiles{screenSnippets}{blankProblem} = "$webworkDirs{conf}/snippets/blankProblem.pg"; # screenSetHeader.pg" 333 334 # A site info "message of the day" file 335 $webworkFiles{site_info} = "$webworkDirs{htdocs}/site_info.txt"; 336 337 ################################################################################ 338 # Course-specific files 339 ################################################################################ 340 341 # The course configuration file. 342 $courseFiles{environment} = "$courseDirs{root}/course.conf"; 343 344 # The course simple configuration file (holds web-based configuratoin). 345 $courseFiles{simpleConfig} = "$courseDirs{root}/simple.conf"; 346 347 # File contents are displayed after login, on the problem sets page. Path given 348 # here is relative to the templates directory. 349 $courseFiles{course_info} = "course_info.txt"; 350 351 # File contents are displayed on the login page. Path given here is relative to 352 # the templates directory. 353 $courseFiles{login_info} = "login_info.txt"; 354 355 # Additional library buttons can be added to the Library Browser (SetMaker.pm) 356 # by adding the libraries you want to the following line. For each key=>value 357 # in the list, if a directory (or link to a directory) with name 'key' appears 358 # in the templates directory, then a button with name 'value' will be placed at 359 # the top of the problem browser. (No button will appear if there is no 360 # directory or link with the given name in the templates directory.) For 361 # example, 362 # 363 # $courseFiles{problibs} = {rochester => "Rochester", asu => "ASU"}; 364 # 365 # would add two buttons, one for the Rochester library and one for the ASU 366 # library, provided templates/rochester and templates/asu exists either as 367 # subdirectories or links to other directories. 368 # 369 $courseFiles{problibs} = { 370 # rochesterLibrary => "Rochester", 371 # asuLibrary => "Arizona State", 372 # dcdsLibrary => "Detroit CDS", 373 # dartmouthLibrary => "Dartmouth", 374 # indianaLibrary => "Indiana", 375 # osuLibrary => "Ohio State", 376 # capaLibrary => "CAPA", 377 }; 378 379 ################################################################################ 380 # Status system 381 ################################################################################ 382 383 # This is the default status given to new students and students with invalid 384 # or missing statuses. 385 $default_status = "Enrolled"; 386 387 # The first abbreviation in the abbreviations list is the canonical 388 # abbreviation, and will be used when setting the status value in a user record 389 # or an exported classlist file. 390 # 391 # Results are undefined if more than one status has the same abbreviation. 392 # 393 # The four behaviors that are controlled by status are: 394 # allow_course_access => is this user allowed to log in? 395 # include_in_assignment => is this user included when assigning as set to "all" users? 396 # include_in_stats => is this user included in statistical reports? 397 # include_in_email => is this user included in emails sent to the class? 398 # include_in_scoring => is this user included in score reports? 399 400 %statuses = ( 401 Enrolled => { 402 abbrevs => [qw/ C c current enrolled /], 403 behaviors => [qw/ allow_course_access include_in_assignment include_in_stats include_in_email include_in_scoring /], 404 }, 405 Audit => { 406 abbrevs => [qw/ A a audit /], 407 behaviors => [qw/ allow_course_access include_in_assignment include_in_stats include_in_email /], 408 }, 409 Drop => { 410 abbrevs => [qw/ D d drop withdraw /], 411 behaviors => [qw/ /], 412 }, 413 ); 414 415 ################################################################################ 416 # Database options 417 ################################################################################ 418 419 # these variables are used by database.conf. we define them here so that editing 420 # database.conf isn't necessary. 421 $database_dsn = "dbi:mysql:webwork"; 422 $database_username = "webworkWrite"; 423 $database_password = ""; 424 $database_debug = 0; 425 426 # Variables for sql_moodle database layout. 427 $moodle_dsn = "dbi:mysql:moodle"; 428 $moodle_username = $database_username; 429 $moodle_password = $database_password; 430 $moodle_table_prefix = "mdl_"; 431 $moodle17 = 0; 432 433 # Several database are defined in the file conf/database.conf and stored in the 434 # hash %dbLayouts. 435 include "conf/database.conf"; 436 437 # Select the default database layout. This can be overridden in the course.conf 438 # file of a particular course. The only database layout supported in WW 2.1.4 439 # and up is "sql_single". 440 $dbLayoutName = "sql_single"; 441 442 # This sets the symbol "dbLayout" as an alias for the selected database layout. 443 *dbLayout = $dbLayouts{$dbLayoutName}; 444 445 ################################################################################ 446 # Problem library options 447 ################################################################################ 448 449 # For configuration instructions, see: 450 # http://devel.webwork.rochester.edu/twiki/bin/view/Webwork/DatabaseProblemLibrary 451 452 # The directory containing the problem library files. Set to "" if no problem 453 # library is installed. 454 $problemLibrary{root} = ""; 455 456 # Problem Library version 457 # Version 1 is in use. Version 2 will be released soon. 458 $problemLibrary{version} = "2"; 459 460 # The name of the SQL database containing problem metadata 461 $problemLibrary{sourceSQL} = "ProblemLibrary"; 462 463 # The user name to use when connecting to the problem library database 464 $problemLibrary{userSQL} = $database_username; 465 466 # The password to use when connecting to the problem library database 467 $problemLibrary{passwordSQL} = $database_password; 468 469 ################################################################################ 470 # Logs 471 ################################################################################ 472 473 # FIXME: take logs out of %webworkFiles/%courseFiles and give them their own 474 # top-level hash. 475 476 # Logs data about how long it takes to process problems. (Do not confuse this 477 # with the /other/ timing log which can be set by WeBWorK::Timing and is used 478 # for benchmarking system performance in general. At some point, this timing 479 # mechanism will be deprecated in favor of the WeBWorK::Timing mechanism.) 480 $webworkFiles{logs}{timing} = "$webworkDirs{logs}/timing.log"; 481 482 # Logs courses created via the web-based Course Administration module. 483 $webworkFiles{logs}{hosted_courses} = "$webworkDirs{logs}/hosted_courses.log"; 484 485 # The transaction log contains data from each recorded answer submission. This 486 # is useful if the database becomes corrupted. 487 $webworkFiles{logs}{transaction} = "$webworkDirs{logs}/$coursename_transaction.log"; 488 489 # The answer log stores a history of all users' submitted answers. 490 $courseFiles{logs}{answer_log} = "$courseDirs{logs}/answer_log"; 491 492 # Log logins. 493 $courseFiles{logs}{login_log} = "$courseDirs{logs}/login.log"; 494 495 # Log for almost every click. By default it is the empty string, which 496 # turns this log off. If you want it turned on, we suggest 497 # "$courseDirs{logs}/activity.log" 498 # When turned on, this log can get quite large. 499 $courseFiles{logs}{activity_log} = ''; 500 501 ################################################################################ 502 # Site defaults (FIXME: what other things could be "site defaults"?) 503 ################################################################################ 504 505 # Set the default timezone of courses on this server. To get a list of valid 506 # timezones, run: 507 # 508 # perl -MDateTime::TimeZone -e 'print join "\n", DateTime::TimeZone::all_names' 509 # 510 # To get a list of valid timezone "links" (deprecated names), run: 511 # 512 # perl -MDateTime::TimeZone -e 'print join "\n", DateTime::TimeZone::links' 513 # 514 # If left blank, the system timezone will be used. This is usually what you 515 # want. You might want to set this if your server is NOT in the same timezone as 516 # your school. If just a few courses are in a different timezone, set this in 517 # course.conf for the affected courses instead. 518 # 519 $siteDefaults{timezone} = ""; 520 521 # The default_templates_course is used by default to create a new course. 522 # The contents of the templates directory are copied from this course 523 # to the new course being created. 524 $siteDefaults{default_templates_course} ="modelCourse"; 525 526 ################################################################################ 527 # Theme 528 ################################################################################ 529 530 $defaultTheme = "math"; 531 $defaultThemeTemplate = "system"; 532 533 ################################################################################ 534 # Authentication system 535 ################################################################################ 536 537 # FIXME This mechanism is a little awkward and probably should be merged with 538 # the dblayout selection system somehow. 539 540 # Select the authentication module to use for normal logins. 541 # 542 # If this value is a string, the given authentication module will be used 543 # regardless of the database layout. If it is a hash, the database layout name 544 # will be looked up in the hash and the resulting value will be used as the 545 # authentication module. The special hash key "*" is used if no entry for the 546 # current database layout is found. 547 # 548 $authen{user_module} = { 549 sql_moodle => "WeBWorK::Authen::Moodle", 550 "*" => "WeBWorK::Authen", 551 }; 552 553 # Select the authentication module to use for proctor logins. 554 # 555 # A string or a hash is accepted, as above. 556 # 557 $authen{proctor_module} = "WeBWorK::Authen::Proctor"; 558 559 # Options for particular authentication modules 560 561 $authen{moodle_options} = { 562 dsn => $moodle_dsn, 563 username => $moodle_username, 564 password => $moodle_password, 565 table_prefix => $moodle_table_prefix, 566 moodle17 => $moodle17, 567 }; 568 569 $authen{ldap_options} = { 570 # hosts to attempt to connect to, in order. for example: 571 # auth.myschool.edu -- uses LDAP scheme and port 389 572 # ldap://auth.myschool.edu:666 -- non-standard port 573 # ldaps://auth.myschool.edu -- uses LDAPS scheme and port 636 574 # ldaps://auth.myschool.edu:389 -- SSL on non-SSL port 575 net_ldap_hosts => [ 576 "ldaps://corona-dmc.its.rochester.edu", 577 "ldaps://corona-dmb.acs.rochester.edu", 578 ], 579 # connection options 580 net_ldap_options => { 581 timeout => 30, 582 version => 3, 583 }, 584 # base to use when searching for user's DN 585 net_ldap_base => "ou=people,dc=rochester,dc=edu", 586 # If LDAP rejects password, check it against the WeBWorK password database 587 failover => 1, 588 }; 589 590 ################################################################################ 591 # Authorization system 592 ################################################################################ 593 594 # this section lets you define which groups of users can perform which actions. 595 596 # this hash maps a numeric permission level to the name of a role. the number 597 # assigned to a role is significant -- roles with higher numbers are considered 598 # "more privileged", and are included when that role is listed for a privilege 599 # below. 600 # 601 %userRoles = ( 602 guest => -5, 603 student => 0, 604 proctor => 2, 605 ta => 5, 606 professor => 10, 607 ); 608 609 # this hash maps operations to the roles that are allowed to perform those 610 # operations. the role listed and any role with a higher permission level (in 611 # the %userRoles hash) will be allowed to perform the operation. If the role 612 # is undefined, no users will be allowed to perform the operation. 613 # 614 %permissionLevels = ( 615 login => "guest", 616 report_bugs => "student", 617 submit_feedback => "student", 618 change_password => "student", 619 change_email_address => "student", 620 621 proctor_quiz => "proctor", 622 view_proctored_tests => "ta", 623 view_hidden_work => "ta", 624 625 view_multiple_sets => "ta", 626 view_unopened_sets => "ta", 627 view_unpublished_sets => "ta", 628 view_answers => "ta", 629 view_ip_restricted_sets => "ta", 630 631 become_student => "professor", 632 access_instructor_tools => "ta", 633 score_sets => "professor", 634 send_mail => "professor", 635 receive_feedback => "ta", 636 637 create_and_delete_problem_sets => "professor", 638 assign_problem_sets => "professor", 639 modify_problem_sets => "professor", 640 modify_student_data => "professor", 641 modify_classlist_files => "professor", 642 modify_set_def_files => "professor", 643 modify_scoring_files => "professor", 644 modify_problem_template_files => "professor", 645 manage_course_files => "professor", 646 647 create_and_delete_courses => "professor", 648 fix_course_databases => "professor", 649 650 ##### Behavior of the interactive problem processor ##### 651 652 show_correct_answers_before_answer_date => "ta", 653 show_solutions_before_answer_date => "ta", 654 avoid_recording_answers => "ta", 655 # Below this level, old answers are never initially shown 656 can_show_old_answers_by_default => "student", 657 # at this level, we look at showOldAnswers for default value 658 # even after the due date 659 can_always_use_show_old_answers_default => "professor", 660 check_answers_before_open_date => "ta", 661 check_answers_after_open_date_with_attempts => "ta", 662 check_answers_after_open_date_without_attempts => "guest", 663 check_answers_after_due_date => "guest", 664 check_answers_after_answer_date => "guest", 665 record_answers_when_acting_as_student => undef, 666 # "record_answers_when_acting_as_student" takes precedence 667 # over the following for professors acting as students: 668 record_answers_before_open_date => undef, 669 record_answers_after_open_date_with_attempts => "student", 670 record_answers_after_open_date_without_attempts => undef, 671 record_answers_after_due_date => undef, 672 record_answers_after_answer_date => undef, 673 dont_log_past_answers => "professor", 674 # does the user get to see a dump of the problem? 675 view_problem_debugging_info => "ta", 676 677 ##### Behavior of the Hardcopy Processor ##### 678 679 download_hardcopy_multiuser => "ta", 680 download_hardcopy_multiset => "ta", 681 download_hardcopy_format_pdf => "guest", 682 download_hardcopy_format_tex => "ta", 683 ); 684 685 # This is the default permission level given to new students and students with 686 # invalid or missing permission levels. 687 $default_permission_level = $userRoles{student}; 688 689 ################################################################################ 690 # Session options 691 ################################################################################ 692 693 # $sessionKeyTimeout defines seconds of inactivity before a key expires 694 $sessionKeyTimeout = 60*30; 695 696 # $sessionKeyLength defines the length (in characters) of the session key 697 $sessionKeyLength = 32; 698 699 # @sessionKeyChars lists the legal session key characters 700 @sessionKeyChars = ('A'..'Z', 'a'..'z', '0'..'9'); 701 702 # Practice users are users who's names start with $practiceUser 703 # (you can comment this out to remove practice user support) 704 $practiceUserPrefix = "practice"; 705 706 # There is a practice user who can be logged in multiple times. He's 707 # commented out by default, though, so you don't hurt yourself. It is 708 # kindof a backdoor to the practice user system, since he doesn't have a 709 # password. Come to think of it, why do we even have this?! 710 #$debugPracticeUser = "practice666"; 711 712 # Option for gateway tests; $gatewayGracePeriod is the time in seconds 713 # after the official due date during which we'll still grade the test 714 $gatewayGracePeriod = 120; 715 716 ################################################################################ 717 # PG subsystem options 718 ################################################################################ 719 720 # List of enabled display modes. Comment out any modes you don't wish to make 721 # available for use. 722 $pg{displayModes} = [ 723 "plainText", # display raw TeX for math expressions 724 "formattedText", # format math expressions using TtH 725 "images", # display math expressions as images generated by dvipng 726 "jsMath", # render TeX math expressions on the client side using jsMath 727 "asciimath", # render TeX math expressions on the client side using ASCIIMathML 728 "LaTeXMathML", # render TeX math expressions on the client side using LaTeXMathML 729 ]; 730 731 #### Default settings for the PG translator 732 733 # Default display mode. Should be listed above. 734 $pg{options}{displayMode} = "images"; 735 736 # The default grader to use, if a problem doesn't specify. 737 $pg{options}{grader} = "avg_problem_grader"; 738 739 # Fill in answer blanks with the student's last answer by default? 740 $pg{options}{showOldAnswers} = 1; 741 742 # Show correct answers (when allowed) by default? 743 $pg{options}{showCorrectAnswers} = 0; 744 745 # Show hints (when allowed) by default? 746 $pg{options}{showHints} = 0; 747 748 # Show solutions (when allowed) by default? 749 $pg{options}{showSolutions} = 0; 750 751 # Catch translation warnings internally by default? (We no longer need to do 752 # this, since there is a global warnings handler. So this should be off.) 753 $pg{options}{catchWarnings} = 0; 754 755 ##### Currently-selected renderer 756 757 # Only the local renderer is supported in this version. 758 $pg{renderer} = "WeBWorK::PG::Local"; 759 760 # The remote renderer connects to an XML-RPC PG rendering server. 761 #$pg{renderer} = "WeBWorK::PG::Remote"; 762 763 ##### Renderer-dependent options 764 765 # The remote renderer has one option: 766 $pg{renderers}{"WeBWorK::PG::Remote"} = { 767 # The "proxy" server to connect to for remote rendering. 768 proxy => "http://localhost:21000/RenderD", 769 }; 770 771 ##### Settings for various display modes 772 773 # "images" mode has several settings: 774 $pg{displayModeOptions}{images} = { 775 # Determines the method used to align images in output. Can be 776 # "baseline", "absmiddle", or "mysql". 777 dvipng_align => 'mysql', 778 779 # If mysql is chosen, this information indicates which database contains the 780 # 'depths' table. Since 2.3.0, the depths table is kept in the main webwork 781 # database. (If you are upgrading from an earlier version of webwork, and 782 # used the mysql method in the past, you should move your existing 'depths' 783 # table to the main database.) 784 dvipng_depth_db => { 785 dbsource => $database_dsn, 786 user => $database_username, 787 passwd => $database_password, 788 }, 789 }; 790 791 $pg{displayModeOptions}{jsMath} = { 792 reportMissingFonts => 0, # set to 1 to allow the missing font message 793 missingFontMessage => undef, # set to an HTML string to replace the missing font message 794 noImageFonts => 0, # set to 1 if you didn't install the jsMath image fonts 795 processDoubleClicks => 1, # set to 0 to disable double-click on math to get TeX source 796 }; 797 798 ##### Directories used by PG 799 800 # The root of the PG directory tree (from pg_root in Apache config). 801 $pg{directories}{root} = "$pg_dir"; 802 $pg{directories}{lib} = "$pg{directories}{root}/lib"; 803 $pg{directories}{macros} = "$pg{directories}{root}/macros"; 804 805 # 806 # The macro file search path. Each directory in this list is seached 807 # (in this order) by loadMacros() when it looks for a .pl file. 808 # 809 $pg{directories}{macrosPath} = [ 810 ".", # search the problem file's directory 811 $courseDirs{macros}, 812 $pg{directories}{macros}, 813 ]; 814 815 # The applet search path. If a full URL is given, it is used unmodified. If an 816 # absolute path is given, the URL of the local server is prepended to it. 817 # 818 # For example, if an item is "/math/applets", 819 # and the local server is "https://math.yourschool.edu", 820 # then the URL "https://math.yourschool.edu/math/applets" will be used. 821 # 822 $pg{directories}{appletPath} = [ # paths to search for applets (requires full url) 823 "$webworkURLs{htdocs}/applets", 824 "$courseURLs{html}/applets", 825 ]; 826 827 ##### "Special" PG environment variables. (Stuff that doesn't fit in anywhere else.) 828 829 # Users for whom to print the file name of the PG file being processed. 830 $pg{specialPGEnvironmentVars}{PRINT_FILE_NAMES_FOR} = [ "professor", ]; 831 832 # Locations of CAPA resources. (Only necessary if you need to use converted CAPA 833 # problems.) 834 $pg{specialPGEnvironmentVars}{CAPA_Tools} = "$courseDirs{macros}/CAPA_Tools/", 835 $pg{specialPGEnvironmentVars}{CAPA_MCTools} = "$courseDirs{macros}/CAPA_MCTools/", 836 $pg{specialPGEnvironmentVars}{CAPA_GraphicsDirectory} = "$courseDirs{html}/CAPA_Graphics/", 837 $pg{specialPGEnvironmentVars}{CAPA_Graphics_URL} = "$courseURLs{html}/CAPA_Graphics/", 838 839 # Size in pixels of dynamically-generated images, i.e. graphs. 840 $pg{specialPGEnvironmentVars}{onTheFlyImageSize} = 400, 841 842 # To disable the Parser-based versions of num_cmp and fun_cmp, and use the 843 # original versions instead, set this value to 1. 844 $pg{specialPGEnvironmentVars}{useOldAnswerMacros} = 0; 845 846 # Strings to insert at the start and end of the body of a problem 847 # (at beginproblem() and ENDDOCUMENT) in various modes. More display modes 848 # can be added if different behaviours are desired (e.g., HTML_dpng, 849 # HTML_asciimath, etc.). These parts are not used in the Library browser. 850 851 $pg{specialPGEnvironmentVars}{problemPreamble} = { TeX => '', HTML=> '' }; 852 $pg{specialPGEnvironmentVars}{problemPostamble} = { TeX => '', HTML=>'' }; 853 854 # To have the problem body indented and boxed, uncomment: 855 856 # $pg{specialPGEnvironmentVars}{problemPreamble}{HTML} = '<BLOCKQUOTE> 857 # <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=15 BGCOLOR=#E8E8E8><TR><TD>'; 858 # $pg{specialPGEnvironmentVars}{problemPostamble}{HTML} = '</TD></TR></TABLE> 859 # </BLOCKQUOTE>'; 860 861 ##### PG modules to load 862 863 # The first item of each list is the module to load. The remaining items are 864 # additional packages to import. 865 866 ${pg}{modules} = [ 867 [qw(DynaLoader)], 868 [qw(Exporter)], 869 [qw(GD)], 870 871 [qw(AlgParser AlgParserWithImplicitExpand Expr ExprWithImplicitExpand utf8)], 872 [qw(AnswerHash AnswerEvaluator)], 873 [qw(WWPlot)], # required by Circle (and others) 874 [qw(Circle)], 875 [qw(Complex)], 876 [qw(Complex1)], 877 [qw(Distributions)], 878 [qw(Fraction)], 879 [qw(Fun)], 880 [qw(Hermite)], 881 [qw(Label)], 882 [qw(List)], 883 [qw(Match)], 884 [qw(MatrixReal1)], # required by Matrix 885 [qw(Matrix)], 886 [qw(Multiple)], 887 [qw(PGrandom)], 888 [qw(Regression)], 889 [qw(Select)], 890 [qw(Units)], 891 [qw(VectorField)], 892 [qw(Parser Value)], 893 [qw(Parser::Legacy)], 894 ]; 895 896 ##### Answer evaluatior defaults 897 898 $pg{ansEvalDefaults} = { 899 functAbsTolDefault => .001, 900 functLLimitDefault => .0000001, 901 functMaxConstantOfIntegration => 1E8, 902 functNumOfPoints => 3, 903 functRelPercentTolDefault => .1, 904 functULimitDefault => .9999999, 905 functVarDefault => "x", 906 functZeroLevelDefault => 1E-14, 907 functZeroLevelTolDefault => 1E-12, 908 numAbsTolDefault => .001, 909 numFormatDefault => "", 910 numRelPercentTolDefault => .1, 911 numZeroLevelDefault => 1E-14, 912 numZeroLevelTolDefault => 1E-12, 913 useBaseTenLog => 0, 914 defaultDisplayMatrixStyle => "[s]", 915 }; 916 917 ################################################################################ 918 # Compatibility 919 ################################################################################ 920 921 # Define the old names for the various "root" variables. 922 $webworkRoot = $webworkDirs{root}; 923 $webworkURLRoot = $webworkURLs{root}; 924 $pgRoot = $pg{directories}{root};
| aubreyja at gmail dot com | ViewVC Help |
| Powered by ViewVC 1.0.9 |