Annotation of doc/gutshtml/SessionTwo.html, revision 1.2
1.2 ! bowersj2 1: <html>
! 2: <head>
! 3: <meta name=Title content="Session Two: Apache Handlers (loncapa_apache">
! 4: <meta http-equiv=Content-Type content="text/html; charset=macintosh">
! 5: <title>Session Two: Apache Handlers (loncapa_apache</title>
! 6: <style><!--
! 7: .Section1
! 8: {page:Section1;}
! 9: .Section2
! 10: {page:Section2;}
! 11: -->
! 12: </style>
! 13: </head>
! 14: <body bgcolor=#FFFFFF class="Normal" lang=EN-US>
! 15: <div class=Section1>
! 16: <h2>Session Two: Apache Handlers (loncapa_apache.conf), Authentication and Access
! 17: Control, Session Environment (Matthew)</h2>
! 18: <h3><a name="_Toc470397993"></a><a name="_Toc514840845"></a><a
! 19: name="_Toc421867046"><span>Server Content Resource Areas</span></a></h3>
! 20: <p>Internally, all resources are identified primarily by their URL. Different
! 21: logical areas of the server are distinguished by the beginning part of the
! 22: URL: </p>
! 23: <ul type=disc>
! 24: <li><span
! 25: style='font-family:"Courier New"'>/adm: </span>publicly available content,
! 26: logos, manual pages, etc.<i></i></li>
! 27: </ul>
! 28: <ul type=disc>
! 29: <li><span
! 30: style='font-family:"Courier New"'>/res/<i>domainname</i></span><span
! 31: style='font-family:"Courier New"'>/<i>authorname</i></span><span
! 32: style='font-family:"Courier New"'>/..: </span>the resource area, holding
! 33: course maps, HTML pages, homework, movies, applets, etc. Access to these
! 34: files is restricted by the cookie-based authentication mechanism. Content
! 35: in this area will be served by type-dependent handlers, for example, one
! 36: handlers to serve homework problems, and another one for TeX resources.
! 37: The structure of this area of the server is exactly the same on every server,
! 38: even though not all resources might be present everywhere.</li>
! 39: </ul>
! 40: <ul type=disc>
! 41: <li><span
! 42: style='font-family:"Courier New"'>/raw/<i>domainname</i></span><span
! 43: style='font-family:"Courier New"'>/<i>authorname</i></span><span
! 44: style='font-family:"Courier New"'>/..: </span>internally, this is just a
! 45: symbolic link to the <span style='font-family:"Courier New"'>res</span>
! 46: directory, however, no content handlers are called when serving a resource
! 47: and access is controlled by IP rather than cookies. This structure is used
! 48: for replication of resources between servers.</li>
! 49: </ul>
! 50: <ul type=disc>
! 51: <li><span
! 52: style='font-family:"Courier New"'>/~<i>authorname</i></span><span
! 53: style='font-family:"Courier New"'>/.., /priv<i>/authorname</i></span><span
! 54: style='font-family:"Courier New"'>: </span>the content construction space.<span
! 55: style='font-family:"Courier New"'> </span>This is normal UNIX filespace,
! 56: which however can only by viewed on the web by the authors themselves through
! 57: the cookie based authentication. Content handlers are active for this space.
! 58: This space can be mounted on other UNIX machines, as well as AppleShare
! 59: and Windows. Below the <span style='font-family:"Courier New"'><i>authorname</i></span>,
! 60: this directory has the same structure as the resource space of the author.</li>
! 61: </ul>
! 62: <ul type=disc>
! 63: <li><span
! 64: style='font-family:"Courier New"'>/lon-status/..: </span>LON-CAPA status
! 65: information Ð behind basic http authentication so it is not dependent on
! 66: system functions</li>
! 67: </ul>
! 68: <p>Authors can only write-access the<i> </i><span
! 69: style='font-family:"Courier New";font-style:normal'>/~</span><span
! 70: style='font-family:"Courier New"'><i>authorname</i></span><span
! 71: style='font-family:"Courier New"'>/</span> space. They can copy resources into
! 72: the resource area through the publication step, and move them back through
! 73: a retrieve step. Authors do not have direct write-access to their resource
! 74: space.</p>
! 75: <h3><a name="_Toc514840846"></a><a name="_Toc421867047">Apache Request Cycle
! 76: and Handlers</a></h3>
! 77: <p>The standard mode in which the Apache web server is used is that a URL corresponds
! 78: to some static file on the file system, which then more or less gets sent
! 79: out as-is. Slight deviations from that simple principle are however already
! 80: the directory listing function, virtual servers, and the cgi-bin directory.
! 81: In the latter case, Apache executes the file in a new process and provides
! 82: both the input to the process in the environment, and routes the output to
! 83: the client. Other deviations are the error messages.</p>
! 84: <p>In a more general view, URLs to Apache are URIs (Uniform Resource Identifiers),
! 85: which may are may not correspond to a physical file, which in turn may or
! 86: may not be sent out as-is.</p>
! 87: <p>As a request for a URI gets sent to the Apache server, it goes through several
! 88: phases. At each phase (ÒstageÓ) along the process, handler modules can be
! 89: defined to deal with the request. Details about these phases are given in
! 90: the Eagle book Chapter 3 (page 60).</p>
! 91: <p>These handler modules are not like cgi-scripts executed in a separate process,
! 92: but are dynamically linked into the Apache child processes themselves Ð they
! 93: run inside of Apache. The mod_perl mechanism in addition links the Perl interpreter
! 94: into the Apache child process. Modules are pre-interpreted (ÒcompiledÓ) by
! 95: the Perl interpreter when they are first loaded, and the pre-interpreted code
! 96: stays permanently in the memory allocated to that Apache child process. The
! 97: result is a significant speed-up, and through the flexible mechanism of module
! 98: registration and different stages of the process, a high degree of customizability.</p>
! 99: <p>LON-CAPA does not use Apache::Registry, and so in addition avoids the unnecessary
! 100: overhead of emulating a cgi-environment within the handlers. Instead, it makes
! 101: direct use of the Apache Perl API (Chapter 9, Eagle book). </p>
! 102: <h3><a name="_Toc514840847"></a><a name="_Toc421867048">Handler Definition</a></h3>
! 103: <p>Which chain of handler deals with which kind of resource is defined in <span style='font-size:9.0pt;font-family:"Courier New"'>/etc/httdp/conf/loncapa_apache.conf</span>.
! 104: LON-CAPA only defines handlers at the (in order) header-parser, access control,
! 105: and response phase (figure 3-3 Eagle book). In the header-parser phase, the
! 106: replication handler is run, and in the access-control phase, the various access-handlers.
! 107: Future handlers will mostly be implemented in the response phase.<b> Fig.
! 108: 1.2.2</b><span style='font-weight:normal'> shows excerpts of the configuration
! 109: script </span><span style='font-size:9.0pt;font-family:"Courier New"'>/etc/httpd/loncapa_apache.conf</span>
! 110: for these modules.</p>
! 111: <div style='border:solid windowtext .5pt;padding:31.0pt 31.0pt 31.0pt 31.0pt'>
! 112: <p style='border:none;padding:0in;'><span
! 113: style='font-size:8.0pt;font-family:"Courier New"'># -------------------------------------------------------------
! 114: Access Handlers</span></p>
! 115: <p style='border:none;padding:0in;'><span
! 116: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/res.*"></span></p>
! 117: <p style='border:none;padding:0in;'><span
! 118: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler
! 119: Apache::lonacc</span></p>
! 120: <p style='border:none;padding:0in;'><span
! 121: style='font-size:8.0pt;font-family:"Courier New"'>PerlHeaderParserHandler Apache::lonrep</span></p>
! 122: <p style='border:none;padding:0in;'><span
! 123: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 124: 403 /adm/login</span></p>
! 125: <p style='border:none;padding:0in;'><span
! 126: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 127: 404 /adm/notfound.html</span></p>
! 128: <p style='border:none;padding:0in;'><span
! 129: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 130: 406 /adm/roles</span></p>
! 131: <p style='border:none;padding:0in;'><span
! 132: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 133: 500 /adm/errorhandler</span></p>
! 134: <p style='border:none;padding:0in;'><span
! 135: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
! 136: <p style='border:none;padding:0in;'><span
! 137: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/priv.*"></span></p>
! 138: <p style='border:none;padding:0in;'><span
! 139: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler Apache::loncacc</span></p>
! 140: <p style='border:none;padding:0in;'><span
! 141: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler
! 142: perl-script</span></p>
! 143: <p style='border:none;padding:0in;'><span
! 144: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler
! 145: Apache::lonconstruct</span></p>
! 146: <p style='border:none;padding:0in;'><span
! 147: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 148: 403 /adm/login</span></p>
! 149: <p style='border:none;padding:0in;'><span
! 150: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 151: 404 /adm/notfound.html</span></p>
! 152: <p style='border:none;padding:0in;'><span
! 153: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 154: 406 /adm/unauthorized.html</span></p>
! 155: <p style='border:none;padding:0in;'><span
! 156: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 157: 500 /adm/errorhandler</span></p>
! 158: <p style='border:none;padding:0in;'><span
! 159: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
! 160: <p style='border:none;padding:0in;'><span
! 161: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/raw.*"></span></p>
! 162: <p style='border:none;padding:0in;'><span
! 163: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler Apache::lonracc</span></p>
! 164: <p style='border:none;padding:0in;'><span
! 165: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
! 166: <p style='border:none;padding:0in;'><span
! 167: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/\~.*"></span></p>
! 168: <p style='border:none;padding:0in;'><span
! 169: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler Apache::loncacc</span></p>
! 170: <p style='border:none;padding:0in;'><span
! 171: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 172: 403 /adm/login</span></p>
! 173: <p style='border:none;padding:0in;'><span
! 174: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 175: 404 /adm/notfound.html</span></p>
! 176: <p style='border:none;padding:0in;'><span
! 177: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 178: 406 /adm/unauthorized.html</span></p>
! 179: <p style='border:none;padding:0in;'><span
! 180: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 181: 500 /adm/errorhandler</span></p>
! 182: <p style='border:none;padding:0in;'><span
! 183: style='font-size:8.0pt;font-family:"Courier New"'>AllowOverride None</span></p>
! 184: <p style='border:none;padding:0in;'><span
! 185: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
! 186: <p style='border:none;padding:0in;'><span
! 187: style='font-size:20.0pt;font-family:"Courier New"'><b>É</b></span><span
! 188: style='font-size:16.0pt;font-family:"Courier New"'></span></p>
! 189: <p style='border:none;padding:0in;'><span
! 190: style='font-size:8.0pt;font-family:"Courier New"'># ---------------------------------------------
! 191: Resource Space Content Handlers</span></p>
! 192: <p style='border:none;padding:0in;'><span
! 193: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/res/.*/$"></span></p>
! 194: <p style='border:none;padding:0in;'><span
! 195: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
! 196: <p style='border:none;padding:0in;'><span
! 197: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonindexer</span></p>
! 198: <p style='border:none;padding:0in;'><span
! 199: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
! 200: <p style='border:none;padding:0in;'><span
! 201: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/res/.*\.tex$"></span></p>
! 202: <p style='border:none;padding:0in;'><span
! 203: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
! 204: <p style='border:none;padding:0in;'><span
! 205: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lontex</span></p>
! 206: <p style='border:none;padding:0in;'><span
! 207: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
! 208: <p style='border:none;padding:0in;'><span
! 209: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/res/.*\.page$></span></p>
! 210: <p style='border:none;padding:0in;'><span
! 211: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
! 212: <p style='border:none;padding:0in;'><span
! 213: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonpage</span></p>
! 214: <p style='border:none;padding:0in;'><span
! 215: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
! 216: <p style='border:none;padding:0in;'><span
! 217: style='font-size:20.0pt;font-family:"Courier New"'><b>É</b></span></p>
! 218: <p style='border:none;padding:0in;'><span
! 219: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/(res|\~).*\.(xml|html|htm|xhtml|xhtm)$"></span></p>
! 220: <p style='border:none;padding:0in;'><span
! 221: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
! 222: <p style='border:none;padding:0in;'><span
! 223: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonxml</span></p>
! 224: <p style='border:none;padding:0in;'><span
! 225: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
! 226: <p style='border:none;padding:0in;'><span
! 227: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/(res|\~).*\.(problem|exam|quiz|assess|survey|form)$"></span></p>
! 228: <p style='border:none;padding:0in;'><span
! 229: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
! 230: <p style='border:none;padding:0in;'><span
! 231: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonhomework</span></p>
! 232: <p style='border:none;padding:0in;'><span
! 233: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
! 234: <p style='border:none;padding:0in;'><span
! 235: style='font-size:8.0pt;font-family:"Courier New"'># --------------------------------------------------------------
! 236: Admin Programs</span></p>
! 237: <p style='border:none;padding:0in;'><span
! 238: style='font-size:8.0pt;font-family:"Courier New"'><Location /adm/roles></span></p>
! 239: <p style='border:none;padding:0in;'><span
! 240: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler
! 241: Apache::lonacc</span></p>
! 242: <p style='border:none;padding:0in;'><span
! 243: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
! 244: <p style='border:none;padding:0in;'><span
! 245: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonroles</span></p>
! 246: <p style='border:none;padding:0in;'><span
! 247: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 248: 403 /adm/login</span></p>
! 249: <p style='border:none;padding:0in;'><span
! 250: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 251: 500 /adm/errorhandler</span></p>
! 252: <p style='border:none;padding:0in;'><span
! 253: style='font-size:8.0pt;font-family:"Courier New"'></Location></span></p>
! 254: <p style='border:none;padding:0in;'><span
! 255: style='font-size:8.0pt;font-family:"Courier New"'><Location /adm/login></span></p>
! 256: <p style='border:none;padding:0in;'><span
! 257: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
! 258: <p style='border:none;padding:0in;'><span
! 259: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonlogin</span></p>
! 260: <p style='border:none;padding:0in;'><span
! 261: style='font-size:8.0pt;font-family:"Courier New"'></Location></span></p>
! 262: <p style='border:none;padding:0in;'><span
! 263: style='font-size:20.0pt;font-family:"Courier New"'><b>É</b></span></p>
! 264: <p style='border:none;padding:0in;'><span
! 265: style='font-size:8.0pt;font-family:"Courier New"'><Location /adm/annotations></span></p>
! 266: <p style='border:none;padding:0in;'><span
! 267: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler
! 268: Apache::lonacc</span></p>
! 269: <p style='border:none;padding:0in;'><span
! 270: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
! 271: <p style='border:none;padding:0in;'><span
! 272: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::admannotations</span></p>
! 273: <p style='border:none;padding:0in;'><span
! 274: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 275: 403 /adm/login</span></p>
! 276: <p style='border:none;padding:0in;'><span
! 277: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
! 278: 500 /adm/errorhandler</span></p>
! 279: <p style='border:none;padding:0in;'><span
! 280: style='font-size:8.0pt;font-family:"Courier New"'></Location></span></p>
! 281: <p style='border:none;padding:0in;'><span
! 282: style='font-size:14.0pt;font-family:"Courier New"'><b>É etc É</b></span></p>
! 283: </div>
! 284: <p><span style='font-size:14.0pt'><b>Fig. 1.2.2</b></span><span
! 285: style='font-size:14.0pt'> Ð Excerpts of </span><span style='font-size:14.0pt;
! 286: font-family:"Courier New"'>loncapa_apache.conf</span></p>
! 287: <h3><a name="_Toc514840849"></a><a name="_Toc421867049">Authentication Overview</a></h3>
! 288: <p>A user can log into any server in the network and run sessions. The server
! 289: responsible for initially authenticating the user is the userÕs homeserver.</p>
! 290: <p>When a user first accesses a server within a browser session, he or she is
! 291: challenged to provide authentication information in the form of username,
! 292: password and domain Ð this is done by <span style='font-family:
! 293: "Courier New"'>lonlogin</span>, which is the <span style='font-family:"Courier New"'>error_document</span>
! 294: for <span style='font-family:"Courier New"'>lonacc</span> and <span
! 295: style='font-family:"Courier New"'>loncacc </span>(the normal authentication handlers).
! 296: When the server receives that information, it asks all library servers in
! 297: the domain that the user specified to validate the information Ð this is done
! 298: by <span style='font-family:"Courier New"'>lonauth</span>. </p>
! 299: <p>The userÕs home server will answer with<i> </i><span
! 300: style='font-family:"Courier New";font-style:normal'>authorized</span> or <span
! 301: style='font-family:"Courier New"'>non_authorized</span>, all others with <span
! 302: style='font-family:"Courier New"'>unknown_user</span>. If one server authorizes
! 303: the user, a cookie is returned to the user by <span style='font-family:"Courier New"'>lonauth</span>
! 304: and the session is initialized on the local server by establishing the session
! 305: environment file. If a server sends<i> </i><span style='font-family:"Courier New";
! 306: font-style:normal'>non_authorized</span>, the user is rejected. <b>Fig.
! 307: 1.3.1</b><span
! 308: style='font-weight:normal'> illustrates this process.</span></p>
! 309: </div>
! 310: <br
! 311: clear=ALL style='page-break-before:always;'>
! 312: <div class=Section2>
! 313: <div class=Section3>
! 314: <div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
! 315: <p style='border:none;padding:0in'>Domain</p>
! 316: <p style='border:none;padding:0in'> <span style='font-family:Wingdings'>ˆ</span>
! 317: username, password <span style='font-family:Wingdings'>ˆ</span> <b>Library
! 318: Server</b></p>
! 319: <p style='border:none;padding:0in'> | <span style='font-family:Wingdings'>§</span>
! 320: unknown_user <span style='font-family:Wingdings'>§</span></p>
! 321: <p style='border:none;padding:0in'> |</p>
! 322: <p style='border:none;padding:0in'> | <span style='font-family:Wingdings'>ˆ</span>
! 323: username, password <span style='font-family:Wingdings'>ˆ</span> <b>Library
! 324: Server</b></p>
! 325: <p style='border:none;padding:0in'> | <span style='font-family:Wingdings'>§</span>
! 326: authorized <span style='font-family:Wingdings'>§</span></p>
! 327: <p style='border:none;padding:0in'> |</p>
! 328: <p style='border:none;padding:0in'><b>User</b><span
! 329: style='font-weight:normal'> </span><span style='font-family:Wingdings'>ˆ</span>
! 330: username,password,domain <span style='font-family:Wingdings'>ˆ</span>
! 331: <b>Server </b></p>
! 332: <p style='border:none;padding:0in'><b> </b><span
! 333: style='font-family:Wingdings'><b>§</b></span><b> </b><span style='font-weight:
! 334: normal'>cookie</span><b> </b><span style='font-family:Wingdings'><b>§</b></span><b>
! 335: </b><span style='font-weight:normal'>store session information for valid
! 336: cookies</span></p>
! 337: </div>
! 338: <p><span style='font-size:14.0pt'><b>Fig. 1.3.1</b></span><span
! 339: style='font-size:14.0pt'> Ð Illustration of Authentication Mechanism</span></p>
! 340: <p class=MsoBodyText style='line-height:normal'><span style='font-size:10.0pt'>At
! 341: all subsequent interactions, the client sends the cookie back to the server
! 342: Ð if the cookie is missing or invalid, the user is re-challenged for login
! 343: information. Handlers are </span><span style='font-size:10.0pt;font-family:
! 344: "Courier New"'>lonacc</span><span style='font-size:10.0pt'> and </span><span
! 345: style='font-size:10.0pt;font-family:"Courier New"'>loncacc</span><span
! 346: style='font-size:10.0pt'>. Cookies expire by closing the browser and are invalidated
! 347: when the user logs out or logs in a second time into the same machine from
! 348: another browser<i>.</i></span></p>
! 349: <h3><a name="_Toc514840850"></a><a name="_Toc421867050">Authentication Mechanisms,
! 350: User Data, Passwords</a></h3>
! 351: <p>On the library servers, it is a routine in<span
! 352: style='font-family:"Courier New"'> lond </span>that does the authentication. It
! 353: checks if this is the userÕs homeserver, checks the password, and answers<span
! 354: style='font-family:"Courier New"'> </span>with <span style='font-family:"Courier New"'>Òunknown_userÓ,
! 355: ÒauthorizedÓ </span>or<span style='font-family:"Courier New"'> Ònon_authorizedÓ.
! 356: </span></p>
! 357: <p class=MsoHeader>Determination if this is the userÕs homeserver is done
! 358: by the presence of his or her password file in</p>
! 359: <p><span style='font-family:"Courier New"'> /home/httpd/lonUsers/<i>domain</i></span><span style='font-family:"Courier New"'>/<i>1.char</i></span><span
! 360: style='font-family:"Courier New"'>/<i>2.char</i></span><span style='font-family:
! 361: "Courier New"'>/<i>3.char</i></span><span style='font-family:"Courier New"'>/<i>username</i></span><span
! 362: style='font-family:"Courier New"'>/passwd</span></p>
! 363: <p class=MsoHeader>for example</p>
! 364: <p><span style='font-family:"Courier New"'> /home/httpd/lonUsers/msu/s/m/i/smith/passwd</span></p>
! 365: <p>The password is stored in the format <span style='font-family:
! 366: "Courier New"'>mechanism:info, </span>where mechanism can currently be <span
! 367: style='font-family:"Courier New"'>unix</span>, <span style='font-family:"Courier New"'>krb4</span>
! 368: or <span style='font-family:"Courier New"'>internal</span>. For <span
! 369: style='font-family:"Courier New"'>krb4</span>, the <span style='font-family:
! 370: "Courier New"'>info</span> is the Kerberos domain, for <span style='font-family:
! 371: "Courier New"'>internal</span> it is the crypt password itself. <span
! 372: style='font-family:"Courier New"'>unix</span> simply authenticates against <span
! 373: style='font-family:"Courier New"'>/etc/passwd</span>. </p>
! 374: <h3><a name="_Toc514840851"></a><a name="_Toc421867051">Environment</a></h3>
! 375: <p>The access handlers Ð coming early in the Apache request cycle Ð also set
! 376: up the session environment. The cookie received from the web client is a
! 377: pointer to the session profiles, which are stored in a directory for temporary
! 378: files <span style='font-family:"Courier New"'>(/home/httpd/lonIDs/</span>).
! 379: </p>
! 380: <p class=H5><span style='layout-grid-mode:
! 381: both'>Standard Components</span></p>
! 382: <p>These are the standard components of the environment added by Apache and
! 383: the shell.</p>
! 384: <p><span style='font-size:8.0pt;font-family:"Courier New"'>AUTH_TYPE ----
! 385: Basic</span></p>
! 386: <p><span style='font-size:8.0pt;font-family:"Courier New"'>DOCUMENT_ROOT ----
! 387: /home/httpd/html</span></p>
! 388: <p><span style='font-size:8.0pt;font-family:"Courier New"'>GATEWAY_INTERFACE
! 389: ---- CGI-Perl/1.1</span></p>
! 390: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_ACCEPT ----
! 391: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*</span></p>
! 392: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_ACCEPT_CHARSET
! 393: ---- iso-8859-1,*,utf-8</span></p>
! 394: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_ACCEPT_ENCODING
! 395: ---- gzip</span></p>
! 396: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_ACCEPT_LANGUAGE
! 397: ---- en,pdf</span></p>
! 398: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_CONNECTION
! 399: ---- Keep-Alive</span></p>
! 400: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_COOKIE ----
! 401: SITESERVER=ID=cbc6695505253a2ff0e7bb7110574d90; lonID=kortemey_990461714_msu_msul1</span></p>
! 402: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_HOST ----
! 403: zaphod.lite.msu.edu</span></p>
! 404: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_REFERER ----
! 405: </span></p>
! 406: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_USER_AGENT
! 407: ---- Mozilla/4.75 (Macintosh; U; PPC)</span></p>
! 408: <p><span style='font-size:8.0pt;font-family:"Courier New"'>MOD_PERL ---- mod_perl/1.21</span></p>
! 409: <p><span style='font-size:8.0pt;font-family:"Courier New"'>PATH ---- /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bi¤</span></p>
! 410: <p><span style='font-size:8.0pt;font-family:"Courier New"'>QUERY_STRING ----
! 411: </span></p>
! 412: <p><span style='font-size:8.0pt;font-family:"Courier New"'>REMOTE_ADDR ----
! 413: 35.8.63.7</span></p>
! 414: <p><span style='font-size:8.0pt;font-family:"Courier New"'>REMOTE_PORT ----
! 415: 1844</span></p>
! 416: <p><span style='font-size:8.0pt;font-family:"Courier New"'>REMOTE_USER ----
! 417: lonadm</span></p>
! 418: <p><span style='font-size:8.0pt;font-family:"Courier New"'>REQUEST_METHOD
! 419: ---- GET</span></p>
! 420: <p><span style='font-size:8.0pt;font-family:"Courier New"'>REQUEST_URI ----
! 421: /adm/test</span></p>
! 422: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SCRIPT_FILENAME
! 423: ---- /home/httpd/html/adm/test</span></p>
! 424: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SCRIPT_NAME ----
! 425: /adm/test</span></p>
! 426: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_ADDR ----
! 427: 35.8.63.51</span></p>
! 428: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_ADMIN ----
! 429: korte@lite.msu.edu</span></p>
! 430: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_NAME ----
! 431: zaphod.lite.msu.edu</span></p>
! 432: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_PORT ----
! 433: 80</span></p>
! 434: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_PROTOCOL
! 435: ---- HTTP/1.0</span></p>
! 436: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_SIGNATURE
! 437: ---- </span></p>
! 438: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_SOFTWARE
! 439: ---- Apache/1.3.9 (Unix) (Red Hat/Linux) mod_perl/1.21</span></p>
! 440: <p class=H5><span style='layout-grid-mode:
! 441: both'>Resource Access Control</span></p>
! 442: <p>The following values are set by traceroute at the initialization of the
! 443: course and are used by access handlers to check if a resource can be served
! 444: to a user.</p>
! 445: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.cond.msu_12679c3ed543a25msul1.0
! 446: ---- 0</span></p>
! 447: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.cond.msu_12679c3ed543a25msul1.1
! 448: ---- 0</span></p>
! 449: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.
! 450: ---- &:1&</span></p>
! 451: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp
! 452: ---- &welcome267.htm:1&welcomelbs267.htm:0&</span></p>
! 453: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/Spectrum
! 454: ---- &s.htm:1&</span></p>
! 455: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/chain
! 456: ---- &chain.htm:1&</span></p>
! 457: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/coulomb
! 458: ---- &orbit.htm:1&</span></p>
! 459: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/induct
! 460: ---- &faraday.htm:1&</span></p>
! 461: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/conversions
! 462: ----</span></p>
! 463: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&conv_area.htm:1&prefixes.htm:1&conv_power.htm:1&intro.htm:1&conv_temperature.htm:1&conv_time.htm:1&conv_velocity.htm:1&conversions.sequence:1&conv_length.htm:1&conv_mass.htm:1&conv_pressure.htm:1&conv_volume.htm:1&conv_energy.htm:1&conv_angle.htm:1&sibaseunits.htm:1&</span></p>
! 464: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap13
! 465: ---- &cd371.htm:1&</span></p>
! 466: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap16
! 467: ----</span></p>
! 468: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&cd427.htm:1&cd424.htm:1&Stable.htm:1&cd421.htm:1&Constants.htm:1&cd425.htm:1&cd422.htm:1&kap16.sequence:1&cd426.htm:1&cd423.htm:1&</span></p>
! 469: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap17
! 470: ----</span></p>
! 471: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&cd436.htm:1&kap17.sequence:1&cd433.htm:1&cd430.htm:1&cd437.htm:1&cd434.htm:1&cd428.htm:1&cd431.htm:1&cd435.htm:1&cd429.htm:1&geometry.htm:1&cd432.htm:1&</span></p>
! 472: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap17/calculus
! 473: ---- &calc.htm:1&</span></p>
! 474: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18
! 475: ----</span></p>
! 476: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&RR440.htm:1&RR449b.htm:1&RR446b.htm:1&cd473.htm:1&RR453.htm:1&RR447.htm:1&RR443b.htm:1&RR449a.htm:1&RR450.htm:1&RR452a.htm:1&RR444.htm:1&RR446a.htm:1&sum18a.htm:1|1&RR441.htm:1&RR443a.htm:1&eField.htm:1&RR454.htm:1&RR444b.htm:1&RR448.htm:1&RR447app.htm:1&RR451.htm:1&RR445.htm:1&RR453a.htm:1&kap18.sequence:1&RR439.htm:1&RR447a.htm:1&RR442.htm:1&RR450a.htm:1&RR444a.htm:1&RR448b.htm:1&RR445newch.htm:1&RR4460app.htm:1&RR455.htm:1&RR441a.htm:1&RR449.htm:1&RR452.htm:1&cd438.htm:1&RR446.htm:1&RR454a.htm:1&sum18.htm:1|1&RR446c.htm:1&RR448a.htm:1&RR451a.htm:1&RR443.htm:1&RR445answer.htm:0&RR445a.htm:1&</span></p>
! 477: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18/demo
! 478: ----</span></p>
! 479: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&vid440.htm:0&vid440sm.htm:0&vid449.htm:0&vid449-a.htm:0&vid441.htm:0&vid449sm.htm:0&vid455.htm:0&egun.htm:0&egunsm.htm:0&vid441sm.htm:0&vid449-asm.htm:0&vid455sm.htm:0&</span></p>
! 480: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18/problems
! 481: ----</span></p>
! 482: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&cd460b.problem:1&cd458.problem:1&cd462.problem:1&cd457.problem:1&cd461.problem:1&cd460.problem:1&cd464.problem:1&cd459.problem:1&cd463.problem:1&</span></p>
! 483: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18a
! 484: ---- &kap18a.sequence:1&</span></p>
! 485: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18a/problems
! 486: ----</span></p>
! 487: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&cd465.problem:1&cd472.problem:1&cd466.problem:1&cd467.problem:1&cd470.problem:1&cd468.problem:1&cd471.problem:1&cd469.problem:1&</span></p>
! 488: <p><span style='font-size:8.0pt;font-family:"Courier New"'><i>É etc for all
! 489: resources in the course É</i></span></p>
! 490: <p class=H5><span style='layout-grid-mode:
! 491: both'>Browser Information</span></p>
! 492: <p><span style='font-size:8.0pt;font-family:"Courier New"'>browser.mathml
! 493: ---- </span></p>
! 494: <p><span style='font-size:8.0pt;font-family:"Courier New"'>browser.os ----
! 495: mac</span></p>
! 496: <p><span style='font-size:8.0pt;font-family:"Courier New"'>browser.type ----
! 497: netscape</span></p>
! 498: <p><span style='font-size:8.0pt;font-family:"Courier New"'>browser.version
! 499: ---- 4.75</span></p>
! 500: <p class=H5><span style='layout-grid-mode:
! 501: both'>Cached Information about Courses and their Description</span></p>
! 502: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.description
! 503: ---- lbs267L Lab SS01</span></p>
! 504: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.domain
! 505: ---- msu</span></p>
! 506: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.home
! 507: ---- msul1</span></p>
! 508: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.last_cache
! 509: ---- 990461725</span></p>
! 510: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.num
! 511: ---- 12679c3ed543a16msul1</span></p>
! 512: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.url
! 513: ---- msu/mmp/lbs267l.sequence</span></p>
! 514: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.description
! 515: ---- lbs267 Lecture SS01</span></p>
! 516: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.domain
! 517: ---- msu</span></p>
! 518: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.home
! 519: ---- msul1</span></p>
! 520: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.last_cache
! 521: ---- 990461728</span></p>
! 522: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.num
! 523: ---- 12679c3ed543a25msul1</span></p>
! 524: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.url
! 525: ---- msu/mmp/lbs267.sequence</span></p>
! 526: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.description
! 527: ---- Demo Course</span></p>
! 528: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.domain
! 529: ---- msu</span></p>
! 530: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.home
! 531: ---- msul1</span></p>
! 532: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.last_cache
! 533: ---- 990461725</span></p>
! 534: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.num
! 535: ---- 12679c3ed543a37msul1</span></p>
! 536: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.url
! 537: ---- msu/korte/demo.sequence</span></p>
! 538: <p class=H5><span style='layout-grid-mode:
! 539: both'>Information Imported from the Environment Database File of the User</span></p>
! 540: <p><span style='font-size:8.0pt;font-family:"Courier New"'>environment.favorite.cake
! 541: ---- Cheese Cake</span></p>
! 542: <p><span style='font-size:8.0pt;font-family:"Courier New"'>environment.favorite.color
! 543: ---- green</span></p>
! 544: <p><span style='font-size:8.0pt;font-family:"Courier New"'>environment.firstname
! 545: ---- Gerd</span></p>
! 546: <p><span style='font-size:8.0pt;font-family:"Courier New"'>environment.id
! 547: ---- z12345678</span></p>
! 548: <p><span style='font-size:8.0pt;font-family:"Courier New"'>environment.lastname
! 549: ---- Kortemeyer</span></p>
! 550: <p><b>Information about the Request</b></p>
! 551: <p><span style='font-size:8.0pt;font-family:"Courier New"'>httpref./res/msu/mmp/
! 552: ---- /res/msu/mmp/welcome267.htm</span></p>
! 553: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.ambiguous
! 554: ---- adm/pages/index.html</span></p>
! 555: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.course.fn
! 556: ---- /home/httpd/perl/tmp/kortemey_msu_12679c3ed543a25msul1</span></p>
! 557: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.course.id
! 558: ---- msu_12679c3ed543a25msul1</span></p>
! 559: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.course.sec
! 560: ---- </span></p>
! 561: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.course.uri
! 562: ---- msu/mmp/lbs267.sequence</span></p>
! 563: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.filename
! 564: ---- /home/httpd/html/adm/test</span></p>
! 565: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.host ----
! 566: zaphod.lite.msu.edu</span></p>
! 567: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.role ----
! 568: cc./msu/12679c3ed543a25msul1</span></p>
! 569: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.state ----
! 570: published</span></p>
! 571: <p class=H5><span style='layout-grid-mode:
! 572: both'>Information about the User</span></p>
! 573: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.domain ----
! 574: msu</span></p>
! 575: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.environment
! 576: ---- /home/httpd/lonIDs/kortemey_990461714_msu_msul1.id</span></p>
! 577: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.home ----
! 578: msul1</span></p>
! 579: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.login.time
! 580: ---- 990461714</span></p>
! 581: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.name ----
! 582: kortemey</span></p>
! 583: <p class=H5><span style='layout-grid-mode:
! 584: both'>Information about User Roles and Privileges</span></p>
! 585: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.au./msu/./
! 586: ---- :sma&F:gan&F</span></p>
! 587: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.au./msu/./msu/
! 588: ---- :cca&IK:are&F:bre&F:cre&F:ere&F</span></p>
! 589: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.ca./msu/korte./
! 590: ---- :sma&F:gan&F</span></p>
! 591: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.ca./msu/korte./msu/
! 592: ---- :are&F:bre&F:cre&F:ere&F</span></p>
! 593: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.ca./msu/korte./msu/korte
! 594: ---- </span></p>
! 595: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a16msul1./
! 596: ---- :sma&F:bre&F:mcr&F</span></p>
! 597: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a16msul1./msu/
! 598: ---- </span></p>
! 599: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a16msul1./msu/12679c3ed543a16msul1
! 600: ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F</span></p>
! 601: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a25msul1./
! 602: ---- :sma&F:bre&F:mcr&F</span></p>
! 603: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a25msul1./msu/
! 604: ---- </span></p>
! 605: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a25msul1./msu/12679c3ed543a25msul1
! 606: ---- :opa&F:srm&F:gan&F:cta&IK:cep&IK:ccr&IK:are&F:cin&IK:cst&IK:cre&F:ere&F:vgr&F</span></p>
! 607: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a37msul1./
! 608: ---- :sma&F:mcr&F:bre&F</span></p>
! 609: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a37msul1./msu/
! 610: ---- </span></p>
! 611: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a37msul1./msu/12679c3ed543a37msul1
! 612: ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F</span></p>
! 613: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./
! 614: ---- :sma&F:mcr&F:gan&F:bre&F</span></p>
! 615: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/
! 616: ---- :mau&F:cca&IK:cad&UIK:ccc&U:cst&UIK:cdg&UIK:are&F:cli&UIK:cta&UIK:cep&UIK:ccr&UIK:bre&F:cau&U:cre&F:cin&UIK:ere&F</span></p>
! 617: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/12679c3ed543a16msul1
! 618: ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F</span></p>
! 619: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/12679c3ed543a25msul1
! 620: ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F</span></p>
! 621: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/12679c3ed543a37msul1
! 622: ---- :opa&F:cst&IK:vgr&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cin&IK:ere&F</span></p>
! 623: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/korte
! 624: ---- </span></p>
! 625: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.dc./msu/./
! 626: ---- :sma&F</span></p>
! 627: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.dc./msu/./msu/
! 628: ---- :mau&F:cad&UIK:ccr&UIK:cep&UIK:cta&UIK:cli&UIK:ccc&U:cau&U:cst&UIK:cin&UIK:cdg&UIK</span></p>
! 629: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.au./msu/
! 630: ---- 964531839.0</span></p>
! 631: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.ca./msu/korte
! 632: ---- .</span></p>
! 633: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.cc./msu/12679c3ed543a16msul1
! 634: ---- 964531839.0</span></p>
! 635: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.cc./msu/12679c3ed543a25msul1
! 636: ---- 964531839.0</span></p>
! 637: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.cc./msu/12679c3ed543a37msul1
! 638: ---- 964531839.0</span></p>
! 639: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.dc./msu/
! 640: ---- 964531839.0</span></p>
! 641: <h2> </h2>
! 642: <h3><a name="_Toc421867052">Handler Reference: LON-CAPA and the 77 Web Perl
! 643: Modules</a></h3>
! 644: <p><i>Scott Harrison, freeware volunteer, sharrison@sourceforge.net</i><span
! 645: style='font-style:normal'> </span></p>
! 646: <p>LON-CAPA provides many different web services for coordinating online educational
! 647: interactions. Currently, these web services are made available by 77 different
! 648: perl modules. The invocation of these perl modules is many times due to
! 649: the URI format based on entries inside <tt><span style='font-family:
! 650: "Courier New"'>/etc/httpd/conf/loncapa_apache.conf</span></tt>. </p>
! 651: <p>Throughout this technical manual, various web perl modules are described
! 652: in detail. Here is a summary of all the 77 web perl modules: </p>
! 653: <table border=1 cellpadding=0>
! 654: <tr>
! 655: <td class="Normal">
! 656: <p align=center style='text-align:center'><b>Name/Location</b></p>
! 657: </td>
! 658: <td class="Normal">
! 659: <p align=center style='text-align:center'><b>Description</b></p>
! 660: </td>
! 661: </tr>
! 662: <tr>
! 663: <td class="Normal">
! 664: <p>SOURCE: rat/lonwrapper.pm<br>
! 665: TARGET: home/httpd/lib/perl/Apache/lonwrapper.pm</p>
! 666: </td>
! 667: <td class="Normal">
! 668: <p>Wrapper for external and binary files as standalone resources. Edit
! 669: handler for rat maps; TeX content handler.</p>
! 670: </td>
! 671: </tr>
! 672: <tr>
! 673: <td class="Normal">
! 674: <p>SOURCE: loncom/publisher/loncfile.pm<br>
! 675: TARGET: home/httpd/lib/perl/Apache/loncfile.pm</p>
! 676: </td>
! 677: <td class="Normal">
! 678: <p>Provides web-based functionality for file copy, rename, mkdir, etc,
! 679: in the construction space menu.</p>
! 680: </td>
! 681: </tr>
! 682: <tr>
! 683: <td class="Normal">
! 684: <p>SOURCE: loncom/interface/lonstatistics.pm<br>
! 685: TARGET: home/httpd/lib/perl/Apache/lonstatistics.pm</p>
! 686: </td>
! 687: <td class="Normal">
! 688: <p>Handler to show statistics on solving LON-CAPA problems.</p>
! 689: </td>
! 690: </tr>
! 691: <tr>
! 692: <td class="Normal">
! 693: <p>SOURCE: loncom/publisher/londiff.pm<br>
! 694: TARGET: home/httpd/lib/perl/Apache/londiff.pm</p>
! 695: </td>
! 696: <td class="Normal">
! 697: <p>Handler to show difference between two files.</p>
! 698: </td>
! 699: </tr>
! 700: <tr>
! 701: <td class="Normal">
! 702: <p>SOURCE: loncom/publisher/lonupload.pm<br>
! 703: TARGET: home/httpd/lib/perl/Apache/lonupload.pm</p>
! 704: </td>
! 705: <td class="Normal">
! 706: <p>Handler to upload files through browser into construction space.</p>
! 707: </td>
! 708: </tr>
! 709: <tr>
! 710: <td class="Normal">
! 711: <p>SOURCE: loncom/homework/essayresponse.pm<br>
! 712: TARGET: home/httpd/lib/perl/Apache/essayresponse.pm</p>
! 713: </td>
! 714: <td class="Normal">
! 715: <p>Handler to evaluate essay (ungraded) style responses.</p>
! 716: </td>
! 717: </tr>
! 718: <tr>
! 719: <td class="Normal">
! 720: <p>SOURCE: loncom/homework/externalresponse.pm<br>
! 721: TARGET: home/httpd/lib/perl/Apache/externalresponse.pm</p>
! 722: </td>
! 723: <td class="Normal">
! 724: <p>Handler to evaluate externally graded responses.</p>
! 725: </td>
! 726: </tr>
! 727: <tr>
! 728: <td class="Normal">
! 729: <p>SOURCE: loncom/homework/loncapagrade.pm<br>
! 730: TARGET: home/httpd/lib/perl/Apache/loncapagrade.pm</p>
! 731: </td>
! 732: <td class="Normal">
! 733: <p>Handler to evaluate externally graded responses.</p>
! 734: </td>
! 735: </tr>
! 736: <tr>
! 737: <td class="Normal">
! 738: <p>SOURCE: loncom/publisher/lonpubdir.pm<br>
! 739: TARGET: home/httpd/lib/perl/Apache/lonpubdir.pm</p>
! 740: </td>
! 741: <td class="Normal">
! 742: <p>Handler to publish directories.</p>
! 743: </td>
! 744: </tr>
! 745: <tr>
! 746: <td class="Normal">
! 747: <p>SOURCE: loncom/publisher/lonretrieve.pm<br>
! 748: TARGET: home/httpd/lib/perl/Apache/lonretrieve.pm</p>
! 749: </td>
! 750: <td class="Normal">
! 751: <p>Handler to retrieve old versions from resource space.</p>
! 752: </td>
! 753: </tr>
! 754: <tr>
! 755: <td class="Normal">
! 756: <p>SOURCE: loncom/homework/edit.pm<br>
! 757: TARGET: home/httpd/lib/perl/Apache/edit.pm</p>
! 758: </td>
! 759: <td class="Normal">
! 760: <p>Helper functions when in homework edit mode.</p>
! 761: </td>
! 762: </tr>
! 763: <tr>
! 764: <td class="Normal">
! 765: <p>SOURCE: loncom/interface/lonmeta.pm<br>
! 766: TARGET: home/httpd/lib/perl/Apache/lonmeta.pm</p>
! 767: </td>
! 768: <td class="Normal">
! 769: <p>Metadata display handler.</p>
! 770: </td>
! 771: </tr>
! 772: <tr>
! 773: <td class="Normal">
! 774: <p>SOURCE: rat/lonambiguous.pm<br>
! 775: TARGET: home/httpd/lib/perl/Apache/lonambiguous.pm</p>
! 776: </td>
! 777: <td class="Normal">
! 778: <p>Handler to resolve ambiguous file locations.</p>
! 779: </td>
! 780: </tr>
! 781: <tr>
! 782: <td class="Normal">
! 783: <p>SOURCE: rat/lonratparms.pm<br>
! 784: TARGET: home/httpd/lib/perl/Apache/lonratparms.pm</p>
! 785: </td>
! 786: <td class="Normal">
! 787: <p>Handler to set resource parameters inside of the RAT based on metadata.</p>
! 788: </td>
! 789: </tr>
! 790: <tr>
! 791: <td class="Normal">
! 792: <p>SOURCE: rat/lonsequence.pm<br>
! 793: TARGET: home/httpd/lib/perl/Apache/lonsequence.pm</p>
! 794: </td>
! 795: <td class="Normal">
! 796: <p>Handler for showing sequence objects of educational resources.</p>
! 797: </td>
! 798: </tr>
! 799: <tr>
! 800: <td class="Normal">
! 801: <p>SOURCE: loncom/interface/loncreatecourse.pm<br>
! 802: TARGET: home/httpd/lib/perl/Apache/loncreatecourse.pm</p>
! 803: </td>
! 804: <td class="Normal">
! 805: <p>Allows domain coordinators to create new courses and assign course
! 806: coordinators.</p>
! 807: </td>
! 808: </tr>
! 809: <tr>
! 810: <td class="Normal">
! 811: <p>SOURCE: loncom/interface/loncreateuser.pm<br>
! 812: TARGET: home/httpd/lib/perl/Apache/loncreateuser.pm</p>
! 813: </td>
! 814: <td class="Normal">
! 815: <p>Allows users to within their own privileges create/edit users and
! 816: give them roles.</p>
! 817: </td>
! 818: </tr>
! 819: <tr>
! 820: <td class="Normal">
! 821: <p>SOURCE: loncom/interface/lonchart.pm<br>
! 822: TARGET: home/httpd/lib/perl/Apache/lonchart.pm</p>
! 823: </td>
! 824: <td class="Normal">
! 825: <p>Produces simple LectureOnline-like student assessment performance
! 826: chart</p>
! 827: </td>
! 828: </tr>
! 829: <tr>
! 830: <td class="Normal">
! 831: <p>SOURCE: loncom/interface/loncommon.pm<br>
! 832: TARGET: home/httpd/lib/perl/Apache/loncommon.pm</p>
! 833: </td>
! 834: <td class="Normal">
! 835: <p>Makes a table out of the previous attempts. Inputs result_from_symbread,
! 836: user, domain, home_server, course_id.</p>
! 837: </td>
! 838: </tr>
! 839: <tr>
! 840: <td class="Normal">
! 841: <p>SOURCE: loncom/homework/grades.pm<br>
! 842: TARGET: home/httpd/lib/perl/Apache/grades.pm</p>
! 843: </td>
! 844: <td class="Normal">
! 845: <p>Handles the viewing of grades.</p>
! 846: </td>
! 847: </tr>
! 848: <tr>
! 849: <td class="Normal">
! 850: <p>SOURCE: loncom/homework/imageresponse.pm<br>
! 851: TARGET: home/httpd/lib/perl/Apache/imageresponse.pm</p>
! 852: </td>
! 853: <td class="Normal">
! 854: <p>Coordinates the response to clicking an image.</p>
! 855: </td>
! 856: </tr>
! 857: <tr>
! 858: <td class="Normal">
! 859: <p>SOURCE: loncom/homework/optionresponse.pm<br>
! 860: TARGET: home/httpd/lib/perl/Apache/optionresponse.pm</p>
! 861: </td>
! 862: <td class="Normal">
! 863: <p>Handles tags associated with showing a list of options.</p>
! 864: </td>
! 865: </tr>
! 866: <tr>
! 867: <td class="Normal">
! 868: <p>SOURCE: loncom/homework/outputtags.pm<br>
! 869: TARGET: home/httpd/lib/perl/Apache/outputtags.pm</p>
! 870: </td>
! 871: <td class="Normal">
! 872: <p>Handles tags associated with output. Seems to relate to due dates
! 873: of the assignment.</p>
! 874: </td>
! 875: </tr>
! 876: <tr>
! 877: <td class="Normal">
! 878: <p>SOURCE: loncom/interface/lontest.pm<br>
! 879: TARGET: home/httpd/lib/perl/Apache/lontest.pm</p>
! 880: </td>
! 881: <td class="Normal">
! 882: <p>Used for debugging and testing the LON-CAPA system.</p>
! 883: </td>
! 884: </tr>
! 885: <tr>
! 886: <td class="Normal">
! 887: <p>SOURCE: loncom/homework/radiobuttonresponse.pm<br>
! 888: TARGET: home/httpd/lib/perl/Apache/radiobuttonresponse.pm</p>
! 889: </td>
! 890: <td class="Normal">
! 891: <p>Handles multiple-choice style responses.</p>
! 892: </td>
! 893: </tr>
! 894: <tr>
! 895: <td class="Normal">
! 896: <p>SOURCE: loncom/interface/lonassignments.pm<br>
! 897: TARGET: home/httpd/lib/perl/Apache/lonassignments.pm</p>
! 898: </td>
! 899: <td class="Normal">
! 900: <p>Handles processing of assignments.</p>
! 901: </td>
! 902: </tr>
! 903: <tr>
! 904: <td class="Normal">
! 905: <p>SOURCE: loncom/interface/loncommunicate.pm<br>
! 906: TARGET: home/httpd/lib/perl/Apache/loncommunicate.pm</p>
! 907: </td>
! 908: <td class="Normal">
! 909: <p>Will be the access handler to email sending, as well as the planned
! 910: chatrooms, etc.</p>
! 911: </td>
! 912: </tr>
! 913: <tr>
! 914: <td class="Normal">
! 915: <p>SOURCE: loncom/interface/lonerrorhandler.pm<br>
! 916: TARGET: home/httpd/lib/perl/Apache/lonerrorhandler.pm</p>
! 917: </td>
! 918: <td class="Normal">
! 919: <p>Handles errors.</p>
! 920: </td>
! 921: </tr>
! 922: <tr>
! 923: <td class="Normal">
! 924: <p>SOURCE: loncom/interface/lonevaluate.pm<br>
! 925: TARGET: home/httpd/lib/perl/Apache/lonevaluate.pm</p>
! 926: </td>
! 927: <td class="Normal">
! 928: <p>Handles evaluation.</p>
! 929: </td>
! 930: </tr>
! 931: <tr>
! 932: <td class="Normal">
! 933: <p>SOURCE: loncom/interface/lonfeedback.pm<br>
! 934: TARGET: home/httpd/lib/perl/Apache/lonfeedback.pm</p>
! 935: </td>
! 936: <td class="Normal">
! 937: <p>Handles feedback from students to instructors and system administrators.
! 938: Provides a screenshot of the current resource, as well as previous
! 939: attempts if the resource was a homework. Used by lonmsg.pm.</p>
! 940: </td>
! 941: </tr>
! 942: <tr>
! 943: <td class="Normal">
! 944: <p>SOURCE: loncom/interface/lonnavmaps.pm<br>
! 945: TARGET: home/httpd/lib/perl/Apache/lonnavmaps.pm</p>
! 946: </td>
! 947: <td class="Normal">
! 948: <p>Handles navigational maps.</p>
! 949: </td>
! 950: </tr>
! 951: <tr>
! 952: <td class="Normal">
! 953: <p>SOURCE: loncom/interface/lonpreferences.pm<br>
! 954: TARGET: home/httpd/lib/perl/Apache/lonpreferences.pm</p>
! 955: </td>
! 956: <td class="Normal">
! 957: <p>Handles user preferences associated with customizing the online LON-CAPA
! 958: educational environment.</p>
! 959: </td>
! 960: </tr>
! 961: <tr>
! 962: <td class="Normal">
! 963: <p>SOURCE: loncom/interface/lonprintout.pm<br>
! 964: TARGET: home/httpd/lib/perl/Apache/lonprintout.pm</p>
! 965: </td>
! 966: <td class="Normal">
! 967: <p>Handles the production of printable files and resources.</p>
! 968: </td>
! 969: </tr>
! 970: <tr>
! 971: <td class="Normal">
! 972: <p>SOURCE: loncom/interface/lonsearchcat.pm<br>
! 973: TARGET: home/httpd/lib/perl/Apache/lonsearchcat.pm</p>
! 974: </td>
! 975: <td class="Normal">
! 976: <p>Handles a searchable catalogue.</p>
! 977: </td>
! 978: </tr>
! 979: <tr>
! 980: <td class="Normal">
! 981: <p>SOURCE: loncom/interface/londropadd.pm<br>
! 982: TARGET: home/httpd/lib/perl/Apache/londropadd.pm</p>
! 983: </td>
! 984: <td class="Normal">
! 985: <p>Allows course coordinators to upload courselists in different formats,
! 986: and automatically create users (if they do not exist already), assign
! 987: them the role of student in a course, and add them to the classlist.</p>
! 988: </td>
! 989: </tr>
! 990: <tr>
! 991: <td class="Normal">
! 992: <p>SOURCE: loncom/interface/lonmsg.pm<br>
! 993: TARGET: home/httpd/lib/perl/Apache/lonmsg.pm</p>
! 994: </td>
! 995: <td class="Normal">
! 996: <p>lonmsg.pm has several functions to send and receive internal messages.
! 997: author_res_msg - send message to resource author. user_crit_msg -
! 998: send a critical message to a user. A critical message will require
! 999: acknowledgment by the recipient and the sender will be notified. user_crit_received
! 1000: - routine to trigger acknowledgment. statuschange - change the status
! 1001: of a message (read, replied, forwarded, etc). The handler also displays
! 1002: messages, has routines to reply, etc.</p>
! 1003: </td>
! 1004: </tr>
! 1005: <tr>
! 1006: <td class="Normal">
! 1007: <p>SOURCE: loncom/homework/hint.pm<br>
! 1008: TARGET: home/httpd/lib/perl/Apache/hint.pm</p>
! 1009: </td>
! 1010: <td class="Normal">
! 1011: <p>This handler coordinates the delivery of hints to students working
! 1012: on LON-CAPA problems and assignments.</p>
! 1013: </td>
! 1014: </tr>
! 1015: <tr>
! 1016: <td class="Normal">
! 1017: <p>SOURCE: loncom/interface/lonspreadsheet.pm<br>
! 1018: TARGET: home/httpd/lib/perl/Apache/lonspreadsheet.pm</p>
! 1019: </td>
! 1020: <td class="Normal">
! 1021: <p>Spreadsheets are completely web-based. They exist on the level of
! 1022: a whole course, a student, and individual assessments.</p>
! 1023: </td>
! 1024: </tr>
! 1025: <tr>
! 1026: <td class="Normal">
! 1027: <p>SOURCE: loncom/interface/lonparmset.pm<br>
! 1028: TARGET: home/httpd/lib/perl/Apache/lonparmset.pm</p>
! 1029: </td>
! 1030: <td class="Normal">
! 1031: <p>Handler to resolve ambiguous file locations</p>
! 1032: </td>
! 1033: </tr>
! 1034: <tr>
! 1035: <td class="Normal">
! 1036: <p>SOURCE: loncom/publisher/lonconstruct.pm<br>
! 1037: TARGET: home/httpd/lib/perl/Apache/lonconstruct.pm</p>
! 1038: </td>
! 1039: <td class="Normal">
! 1040: <p>Page wrapper for handling construction space.</p>
! 1041: </td>
! 1042: </tr>
! 1043: <tr>
! 1044: <td class="Normal">
! 1045: <p>SOURCE: loncom/publisher/lonpublisher.pm<br>
! 1046: TARGET: home/httpd/lib/perl/Apache/lonpublisher.pm</p>
! 1047: </td>
! 1048: <td class="Normal">
! 1049: <p>Publishes an LON-CAPA educational resource complete with metadata
! 1050: (authorship, language, copyright, creation date, etc).</p>
! 1051: </td>
! 1052: </tr>
! 1053: <tr>
! 1054: <td class="Normal">
! 1055: <p>SOURCE: loncom/interface/lonmenu.pm<br>
! 1056: TARGET: home/httpd/lib/perl/Apache/lonmenu.pm</p>
! 1057: </td>
! 1058: <td class="Normal">
! 1059: <p>Has routines which control the remote control.</p>
! 1060: </td>
! 1061: </tr>
! 1062: <tr>
! 1063: <td class="Normal">
! 1064: <p>SOURCE: rat/lonpageflip.pm<br>
! 1065: TARGET: home/httpd/lib/perl/Apache/lonpageflip.pm</p>
! 1066: </td>
! 1067: <td class="Normal">
! 1068: <p>Deals with forward, backward, and other page flips.</p>
! 1069: </td>
! 1070: </tr>
! 1071: <tr>
! 1072: <td class="Normal">
! 1073: <p>SOURCE: rat/lonratedt.pm<br>
! 1074: TARGET: home/httpd/lib/perl/Apache/lonratedt.pm</p>
! 1075: </td>
! 1076: <td class="Normal">
! 1077: <p>Builds up frame set and loads in the right thing.</p>
! 1078: </td>
! 1079: </tr>
! 1080: <tr>
! 1081: <td class="Normal">
! 1082: <p>SOURCE: loncom/html/res/adm/pages/homeworkmenu.html<br>
! 1083: TARGET: home/httpd/html/res/adm/pages/homeworkmenu.html</p>
! 1084: </td>
! 1085: <td class="Normal">
! 1086: <p>Homework remote control.</p>
! 1087: </td>
! 1088: </tr>
! 1089: <tr>
! 1090: <td class="Normal">
! 1091: <p>SOURCE: loncom/html/res/adm/pages/annotator/admannotations.pm<br>
! 1092: TARGET: home/httpd/lib/perl/Apache/admannotations.pm</p>
! 1093: </td>
! 1094: <td class="Normal">
! 1095: <p>This will take annotations and then plug them into a page.</p>
! 1096: </td>
! 1097: </tr>
! 1098: <tr>
! 1099: <td class="Normal">
! 1100: <p>SOURCE: loncom/html/res/adm/pages/bookmarkmenu/admbookmarks.pm<br>
! 1101: TARGET: home/httpd/lib/perl/Apache/admbookmarks.pm</p>
! 1102: </td>
! 1103: <td class="Normal">
! 1104: <p>This will take bookmarks and get/write/display them for the LON-CAPA
! 1105: user interface.</p>
! 1106: </td>
! 1107: </tr>
! 1108: <tr>
! 1109: <td class="Normal">
! 1110: <p>SOURCE: rat/lonratsrv.pm<br>
! 1111: TARGET: home/httpd/lib/perl/Apache/lonratsrv.pm</p>
! 1112: </td>
! 1113: <td class="Normal">
! 1114: <p>Handler that takes output from RAT and stores it on disk. Handles
! 1115: the upper hidden frame of the added window that comes up in RAT. (3
! 1116: frames come up in RAT server, code, and output. This module handles
! 1117: server connection.)</p>
! 1118: </td>
! 1119: </tr>
! 1120: <tr>
! 1121: <td class="Normal">
! 1122: <p>SOURCE: rat/lonpage.pm<br>
! 1123: TARGET: home/httpd/lib/perl/Apache/lonpage.pm</p>
! 1124: </td>
! 1125: <td class="Normal">
! 1126: <p>bundles pages into one page</p>
! 1127: </td>
! 1128: </tr>
! 1129: <tr>
! 1130: <td class="Normal">
! 1131: <p>SOURCE: rat/lonuserstate.pm<br>
! 1132: TARGET: home/httpd/lib/perl/Apache/lonuserstate.pm</p>
! 1133: </td>
! 1134: <td class="Normal">
! 1135: <p>compile course into binary data structure (in loncom/rat)</p>
! 1136: </td>
! 1137: </tr>
! 1138: <tr>
! 1139: <td class="Normal">
! 1140: <p>SOURCE: loncom/xml/lontex.pm<br>
! 1141: TARGET: home/httpd/lib/perl/Apache/lontex.pm</p>
! 1142: </td>
! 1143: <td class="Normal">
! 1144: <p>Handler for tex files (somewhere in modules)</p>
! 1145: </td>
! 1146: </tr>
! 1147: <tr>
! 1148: <td class="Normal">
! 1149: <p>SOURCE: loncom/xml/lontexconvert.pm<br>
! 1150: TARGET: home/httpd/lib/perl/Apache/lontexconvert.pm</p>
! 1151: </td>
! 1152: <td class="Normal">
! 1153: <p>Access to tth/ttm</p>
! 1154: </td>
! 1155: </tr>
! 1156: <tr>
! 1157: <td class="Normal">
! 1158: <p>SOURCE: loncom/xml/lonxml.pm<br>
! 1159: TARGET: home/httpd/lib/perl/Apache/lonxml.pm</p>
! 1160: </td>
! 1161: <td class="Normal">
! 1162: <p>XML Parsing Module</p>
! 1163: </td>
! 1164: </tr>
! 1165: <tr>
! 1166: <td class="Normal">
! 1167: <p>SOURCE: loncom/xml/lonplot.pm<br>
! 1168: TARGET: home/httpd/lib/perl/Apache/lonplot.pm</p>
! 1169: </td>
! 1170: <td class="Normal">
! 1171: <p>XML-based plotter of graphs</p>
! 1172: </td>
! 1173: </tr>
! 1174: <tr>
! 1175: <td class="Normal">
! 1176: <p>SOURCE: loncom/xml/style.pm<br>
! 1177: TARGET: home/httpd/lib/perl/Apache/style.pm</p>
! 1178: </td>
! 1179: <td class="Normal">
! 1180: <p>Style Parsing Module</p>
! 1181: </td>
! 1182: </tr>
! 1183: <tr>
! 1184: <td class="Normal">
! 1185: <p>SOURCE: loncom/xml/londefdef.pm<br>
! 1186: TARGET: home/httpd/lib/perl/Apache/londefdef.pm</p>
! 1187: </td>
! 1188: <td class="Normal">
! 1189: <p>Tags Default Definition Module</p>
! 1190: </td>
! 1191: </tr>
! 1192: <tr>
! 1193: <td class="Normal">
! 1194: <p>SOURCE: loncom/xml/run.pm<br>
! 1195: TARGET: home/httpd/lib/perl/Apache/run.pm</p>
! 1196: </td>
! 1197: <td class="Normal">
! 1198: <p>used to prevent poorly written problems from causing lingering after
! 1199: effects</p>
! 1200: </td>
! 1201: </tr>
! 1202: <tr>
! 1203: <td class="Normal">
! 1204: <p>SOURCE: loncom/xml/scripttag.pm<br>
! 1205: TARGET: home/httpd/lib/perl/Apache/scripttag.pm</p>
! 1206: </td>
! 1207: <td class="Normal">
! 1208: <p>implements <script>, <scriptlib>, <parserlib>,
! 1209: and <import></p>
! 1210: </td>
! 1211: </tr>
! 1212: <tr>
! 1213: <td class="Normal">
! 1214: <p>SOURCE: loncom/homework/randomlabel.pm<br>
! 1215: TARGET: home/httpd/lib/perl/Apache/randomlabel.pm</p>
! 1216: </td>
! 1217: <td class="Normal">
! 1218: <p>Interface for producing applet code which randomizes the labelling
! 1219: of an image.</p>
! 1220: </td>
! 1221: </tr>
! 1222: <tr>
! 1223: <td class="Normal">
! 1224: <p>SOURCE: loncom/homework/lonhomework.pm<br>
! 1225: TARGET: home/httpd/lib/perl/Apache/lonhomework.pm</p>
! 1226: </td>
! 1227: <td class="Normal">
! 1228: <p>handles requests for output, evaluation, and alteration of a homework
! 1229: resource</p>
! 1230: </td>
! 1231: </tr>
! 1232: <tr>
! 1233: <td class="Normal">
! 1234: <p>SOURCE: loncom/homework/inputtags.pm<br>
! 1235: TARGET: home/httpd/lib/perl/Apache/inputtags.pm</p>
! 1236: </td>
! 1237: <td class="Normal">
! 1238: <p>produces HTML input tags (<INPUT>) for rendering homework resources</p>
! 1239: </td>
! 1240: </tr>
! 1241: <tr>
! 1242: <td class="Normal">
! 1243: <p>SOURCE: loncom/homework/structuretags.pm<br>
! 1244: TARGET: home/httpd/lib/perl/Apache/structuretags.pm</p>
! 1245: </td>
! 1246: <td class="Normal">
! 1247: <p>produces HTML tags necessary for structuring the presentation of
! 1248: homework resources</p>
! 1249: </td>
! 1250: </tr>
! 1251: <tr>
! 1252: <td class="Normal">
! 1253: <p>SOURCE: loncom/homework/response.pm<br>
! 1254: TARGET: home/httpd/lib/perl/Apache/response.pm</p>
! 1255: </td>
! 1256: <td class="Normal">
! 1257: <p>defines different types of responses given to student as well as
! 1258: syntax for producing response values</p>
! 1259: </td>
! 1260: </tr>
! 1261: <tr>
! 1262: <td class="Normal">
! 1263: <p>SOURCE: loncom/homework/caparesponse/caparesponse.pm<br>
! 1264: TARGET: home/httpd/lib/perl/Apache/caparesponse.pm</p>
! 1265: </td>
! 1266: <td class="Normal">
! 1267: <p>handles request to the CAPA homework processing engine</p>
! 1268: </td>
! 1269: </tr>
! 1270: <tr>
! 1271: <td class="Normal">
! 1272: <p>SOURCE: loncom/xml/Safe.pm<br>
! 1273: TARGET: home/httpd/lib/perl/Safe.pm</p>
! 1274: </td>
! 1275: <td class="Normal">
! 1276: <p>Meant to safely substitute for CPAN version of Safe. Allows for safely
! 1277: executing embedded perl comands in a way that does not threaten the
! 1278: operating system.</p>
! 1279: </td>
! 1280: </tr>
! 1281: <tr>
! 1282: <td class="Normal">
! 1283: <p>SOURCE: loncom/auth/localauth.pm<br>
! 1284: TARGET: home/httpd/lib/perl/localauth.pm</p>
! 1285: </td>
! 1286: <td class="Normal">
! 1287: <p>Local authentication mechanism (meant to be customized).</p>
! 1288: </td>
! 1289: </tr>
! 1290: <tr>
! 1291: <td class="Normal">
! 1292: <p>SOURCE: loncom/auth/lonacc.pm<br>
! 1293: TARGET: home/httpd/lib/perl/Apache/lonacc.pm</p>
! 1294: </td>
! 1295: <td class="Normal">
! 1296: <p>(This module, like loncacc.pm also authenticates with cookies.) lonacc.pm
! 1297: coordinates access to a wide range of administrative-type functions
! 1298: (e.g. roles, logout, annotations, and bookmarks) as well as coordinating
! 1299: access to educational resources.</p>
! 1300: </td>
! 1301: </tr>
! 1302: <tr>
! 1303: <td class="Normal">
! 1304: <p>SOURCE: loncom/auth/lonracc.pm<br>
! 1305: TARGET: home/httpd/lib/perl/Apache/lonracc.pm</p>
! 1306: </td>
! 1307: <td class="Normal">
! 1308: <p>access handler for file transfers</p>
! 1309: </td>
! 1310: </tr>
! 1311: <tr>
! 1312: <td class="Normal">
! 1313: <p>SOURCE: loncom/auth/loncacc.pm<br>
! 1314: TARGET: home/httpd/lib/perl/Apache/loncacc.pm</p>
! 1315: </td>
! 1316: <td class="Normal">
! 1317: <p>This module provides access to an educational resource construction
! 1318: area. This module is invoked by the URL-related pattern syntax LocationMatch
! 1319: "^/priv.*" or LocationMatch "^/\~.*". Authentication
! 1320: of user identity is coordinated through cookies. The abbreviation
! 1321: "cacc" corresponds to "construction-space access").
! 1322: If the cookie handle is invalid, then this module returns a forbidden
! 1323: status and makes appropriate log entries. If the cookie handle is
! 1324: valid, status is determined to be okay (and, for the "priv"-type
! 1325: access, the resource is delivered by the lonconstruct module).</p>
! 1326: </td>
! 1327: </tr>
! 1328: <tr>
! 1329: <td class="Normal">
! 1330: <p>SOURCE: loncom/auth/lonauth.pm<br>
! 1331: TARGET: home/httpd/lib/perl/Apache/lonauth.pm</p>
! 1332: </td>
! 1333: <td class="Normal">
! 1334: <p>authenticate, set up session environment</p>
! 1335: </td>
! 1336: </tr>
! 1337: <tr>
! 1338: <td class="Normal">
! 1339: <p>SOURCE: loncom/auth/lonlogin.pm<br>
! 1340: TARGET: home/httpd/lib/perl/Apache/lonlogin.pm</p>
! 1341: </td>
! 1342: <td class="Normal">
! 1343: <p>login screen</p>
! 1344: </td>
! 1345: </tr>
! 1346: <tr>
! 1347: <td class="Normal">
! 1348: <p>SOURCE: loncom/auth/lonlogout.pm<br>
! 1349: TARGET: home/httpd/lib/perl/Apache/lonlogout.pm</p>
! 1350: </td>
! 1351: <td class="Normal">
! 1352: <p>logout</p>
! 1353: </td>
! 1354: </tr>
! 1355: <tr>
! 1356: <td class="Normal">
! 1357: <p>SOURCE: loncom/lonnet/perl/lonrep.pm<br>
! 1358: TARGET: home/httpd/lib/perl/Apache/lonrep.pm</p>
! 1359: </td>
! 1360: <td class="Normal">
! 1361: <p>replication</p>
! 1362: </td>
! 1363: </tr>
! 1364: <tr>
! 1365: <td class="Normal">
! 1366: <p>SOURCE: loncom/auth/lonroles.pm<br>
! 1367: TARGET: home/httpd/lib/perl/Apache/lonroles.pm</p>
! 1368: </td>
! 1369: <td class="Normal">
! 1370: <p>This perl handling module reads in the available roles available
! 1371: for a LON-CAPA user (different courses, different privileges, etc)
! 1372: and produces a form-element HTML page which allows the user to select
! 1373: which role he wishes to exercise in the LON-CAPA system. For instance,
! 1374: a user may want to select between being a student in a thermodynamics
! 1375: physics course or a teaching assistant for an introductory calculus
! 1376: class.</p>
! 1377: </td>
! 1378: </tr>
! 1379: <tr>
! 1380: <td class="Normal">
! 1381: <p>SOURCE: loncom/interface/lonindexer.pm<br>
! 1382: TARGET: home/httpd/lib/perl/Apache/lonindexer.pm</p>
! 1383: </td>
! 1384: <td class="Normal">
! 1385: <p>cross server filesystem browser</p>
! 1386: </td>
! 1387: </tr>
! 1388: <tr>
! 1389: <td class="Normal">
! 1390: <p>SOURCE: loncom/interface/groupsort.pm<br>
! 1391: TARGET: home/httpd/lib/perl/Apache/groupsort.pm</p>
! 1392: </td>
! 1393: <td class="Normal">
! 1394: <p>Implements a second phase of importing multiple resources into the
! 1395: RAT. Allows for reordering the sequence of resources.</p>
! 1396: </td>
! 1397: </tr>
! 1398: <tr>
! 1399: <td class="Normal">
! 1400: <p>SOURCE: loncom/lonnet/perl/lonnet.pm<br>
! 1401: TARGET: home/httpd/lib/perl/Apache/lonnet.pm</p>
! 1402: </td>
! 1403: <td class="Normal">
! 1404: <p>This file is an interface to the lonc processes of the LON-CAPA network
! 1405: as well as set of elaborated functions for handling information necessary
! 1406: for navigating through a given cluster of LON-CAPA machines within
! 1407: a domain. There are over 40 specialized functions in this module which
! 1408: handle the reading and transmission of metadata, user information
! 1409: (ids, names, environments, roles, logs), file information (storage,
! 1410: reading, directories, extensions, replication, embedded styles and
! 1411: descriptors), educational resources (course descriptions, section
! 1412: names and numbers), url hashing (to assign roles on a url basis),
! 1413: and translating abbreviated symbols to and from more descriptive phrases
! 1414: or explanations.</p>
! 1415: </td>
! 1416: </tr>
! 1417: <tr>
! 1418: <td class="Normal">
! 1419: <p>SOURCE: loncom/homework/lectureonline.lcpm<br>
! 1420: TARGET: home/httpd/html/res/adm/includes/lectureonline.lcpm</p>
! 1421: </td>
! 1422: <td class="Normal">
! 1423: <p>Intended for providing perl functions for the <script></script>
! 1424: environment in a problem that was converted from lectureonline.</p>
! 1425: </td>
! 1426: </tr>
! 1427: <tr>
! 1428: <td class="Normal">
! 1429: <p>SOURCE: loncom/homework/default_homework.lcpm<br>
! 1430: TARGET: home/httpd/html/res/adm/includes/default_homework.lcpm</p>
! 1431: </td>
! 1432: <td class="Normal">
! 1433: <p>Provides many functions for the <script> environment in a .problem.
! 1434: Functions are documented in CVS:loncapa/doc/homework/homework5.html.</p>
! 1435: </td>
! 1436: </tr>
! 1437: </table>
! 1438: </div>
! 1439: </div>
! 1440: </body>
! 1441: </html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>