Log of /branches/rel-2-3-dev/webwork2/lib/WeBWorK/Authen.pm
Parent Directory
Revision
4192 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 29 23:20:48 2006 UTC (6 years, 10 months ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 18243 byte(s)
Diff to
previous 4135
Progress on Apache2 compatibility -- doesn't work yet.
I've gotten to the point where the login screen can be displayed, but
login will still fail. The issue that i'm currently working on is that
we modify $r->param values extensively in WeBWorK, and that is not
supported in Apache2::Request. I'm not sure why, and no workaround is
given. One solution is to wrap override param() in WeBWorK::Request, but
this would slow things down since the Apache2::Request param method is
written in C.
Revision
4135 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 19 15:39:51 2006 UTC (6 years, 11 months ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 17776 byte(s)
Diff to
previous 4132
Added HTTP-Basic authenticator for WeBWorK:
AuthenWeBWorK.pm - steals $ce/$authz/$db/$authen bootstrapping code from
the dispatcher, overrides Authen's get_credentials method (and clobbers
cookie methods and set_params)
Debug.pm - load WeBWorK::Contsants explicitly in case it isn't already
loaded
Authen.pm - added maybe_kill_cookie shim (so that it can be overridden
elsewhere)
Configure as follows:
<Location /some_protected_location>
AuthName "My Protected Location"
AuthType Basic
PerlAuthenHandler Apache::AuthenWeBWorK
PerlSetVar authen_webwork_root /path/to/webwork2
PerlSetVar authen_webwork_course some_course_id
require valid-user
</Location>
Revision
4045 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 12 18:50:11 2006 UTC (7 years, 1 month ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 17628 byte(s)
Diff to
previous 4029
New subclassable architecture. Should function identically to old
implementation (modulo bugs). verifyProctor has been replaced with an
Authen::Proctor subclass, which overrides several methods and consists
of about 30 real lines of code. Cool.
Revision
3688 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Oct 5 18:16:52 2005 UTC (7 years, 7 months ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 19710 byte(s)
Diff to
previous 3658
Implemented status system as per bug #743.
The status system consists of a new hash in the course environment,
%statuses, that maps status names (like "Enrolled", "Drop", "Audit") to
(a) a list of allowed abbreviations for the status and (b) a list of
behaviors the system should have when dealing with users who have the
status.
I didn't want to have to mangle that hash-of-hashes-of-arrays myself in
many modules, but I also didn't want to devote an entire module
(Status.pm) to it. So, I'm trying a little experiment: I've added them
as methods to WeBWorK::CourseEnvironment. My thinkint is that since all
the data for these operations comes from the course environment, so why
not have them be course environment methods? Here they are:
status_abbrev_to_name($status_abbrev)
Given the abbreviation for a status, return the name. Returns undef
if the abbreviation is not found.
status_name_to_abbrevs($status_name)
Returns the list of abbreviations for a given status. Returns an
empty list if the status is not found.
status_has_behavior($status_name, $behavior)
Return true if $status_name lists $behavior.
status_abbrev_has_behavior($status_abbrev, $behavior)
Return true if the status abbreviated by $status_abbrev lists
$behavior.
Since I removed the previous $siteDefaults{status} hash from
global.conf, I have already switched modules that formerly used that
hash over to using the new methods:
Authen.pm: use status_abbrev_has_behavior($status, "allow_course_access")
to determine if a user should be allowed to log in.
Feedback.pm: look up status abbreviation using status_abbrev_to_name()
and print the result for the status field in the email.
Instructor.pm: use status_abbrev_has_behavior($status, "include_in_assignment")
to determine if a user should be included in an assignment.
UserList.pm and UsersAssignedToSet.pm: use status_abbrev_to_name() to
get name of CSS class.
Revision
3377 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 14 13:15:27 2005 UTC (7 years, 10 months ago) by
glarose
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 20038 byte(s)
Diff to
previous 3366
Preliminary commit of changes to add Gateway module.
This adds to WeBWorK
- the ability to create versioned, timed problem sets ("gateway tests")
for which all problems are displayed on a single page ("versioned"
means that students can get multiple versions of the problem set),
- the ability to create sets that draw problems from groups of
problems, and
- the ability to create sets that require a proctor login to start
and grade.
Sets can be defined as gateway tests or proctored gateway tests from
the ProblemSetDetail page.
Not quite bug-free yet. Known bugs include handling of problem values
on the Student Progress page (I think this may be a problem with
changing from sql database format where all entries were 'text' to
sql_single in ver 2.1, where they are integer), and a division by zero
error on the grades page (which may be the same problem).
Tests with a number of attempts per version greater than one haven't
been carefully tested, nor has scoring of gateway tests.
Revision
2749 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Sep 8 15:49:24 2004 UTC (8 years, 8 months ago) by
toenail
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 13469 byte(s)
Diff to
previous 1885
merging changes from patches
Original message:
Status was being checked for 'C' only and counting anything else
as a dropped student. The check now uses the more abstract siteDefaults
variable from global.conf and admits auditing students as well
Also removed redundant second status check that could never be reached.
Revision
1777 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 5 00:05:11 2004 UTC (9 years, 3 months ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 13766 byte(s)
Diff to
previous 1724
Closes bugs #345 and #293. From bugzilla: "This should work now. The
docs for Apache::Cookie claim that the module will accept relative
expiration dates such as "+30D" and "+1H", but apparently, this causes
the expiration date to be set to "now", which Galeon apparently didn't
mind but caused Safari and MSIE to throw the cookie away."
Revision
1724 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Jan 18 03:39:06 2004 UTC (9 years, 4 months ago) by
gage
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 12489 byte(s)
Diff to
previous 1721
Fixed some errors in my first fix for Authen.pm
The goal is to make sure that the existance of a users
record and of a users status is checked before it is used.
Authen.pm could use some cleaning up. Probably best to do this
when thinking about how one would plug this into LDAP or to
moodle's authenticator.
Revision
1685 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 25 04:17:18 2003 UTC (9 years, 4 months ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 11159 byte(s)
Diff to
previous 1684
We now send a cookie if any of these conditions are met:
(a) a cookie was used for authentication
(b) a cookie was sent but not used for authentication, and the credentials
used for authentication were the same as those in the cookie
(c) the user asked to have a cookie sent and is not a guest user.
Now whenever we're not sending a "real" cookie, we send a cookie
with no user or key data that expires "one day ago".
Revision
1684 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 24 00:59:25 2003 UTC (9 years, 4 months ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 9360 byte(s)
Diff to
previous 1683
added automatic guest logins:
With the presence of a "login_practice_user" paramter, Authen.pm will
log the user in using the first unused practice user account. Login.pm
now displays a "Guest Login" button that sends the above parameter, but
only when the course has practice users. Currently, cookies are not sent
for practice users.
Revision
1683 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 23 06:03:33 2003 UTC (9 years, 4 months ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 8712 byte(s)
Diff to
previous 1682
added cookie support for authenticaion. the "WeBWorKAuthentication"
cookie is used to retrieve the "user" and "key" parameters. the cookie
is sent if a "send_cookie" parameter is present, and persists for 30
days unless canceled by an explicit "logout".
Revision
1663 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 9 01:12:32 2003 UTC (9 years, 5 months ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 7377 byte(s)
Diff to
previous 1636
Normalized headers. All files now contain the text below as a header.
This is important since all files now (a) use the full name of the
package, (b) assign copyright to "The WeBWorK Project", (c) give the
full path of the file (relative to CVSROOT) instead of simply the file
name, and (d) include license and warranty information.
Here is the new header:
################################################################################
# WeBWorK Online Homework Delivery System
# Copyright © 2000-2003 The WeBWorK Projcct, http://openwebwork.sf.net/
# $CVSHeader$
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of either: (a) the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any later
# version, or (b) the "Artistic License" which comes with this package.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the
# Artistic License for more details.
################################################################################
Revision
562 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 27 23:53:42 2002 UTC (10 years, 7 months ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 4164 byte(s)
Diff to
previous 522
- created macros/IO.pl, which is loaded with no opmask by PG.pm. It is a copy
of WeBWorK::PG::IO.pm, with some changes to make it work as a macro package.
The translator no longer shares IO.pm's functions with the safe compartment.
This is a BAD THING, and should be reconsidered when the Translator is
revised.
- Changed many (but not all) checks for HTML or HTML_tth modes to match /^HTML/
in the macros.
- changed &header to &head in Problem.pm
- Added problem environment variables for gif2eps and png2eps and modified
&dangerousMacros::alias to use them
- fixed MOST of the harmless warnings in the system. there's still the "Use
of uninitialized value in null operation" warning in template(), tho.
Still to come:
- make images in PDFs work
- fix TTH mode character encodings on mac (maybe)
- have logout button invalidate key
- Pretty die messages (from outside of the translator)
- Feedback - need nice modular way of sending email
- Options - email address and password
Revision
455 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 5 21:34:18 2002 UTC (10 years, 9 months ago) by
sh002i
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 4096 byte(s)
Diff to
previous 441
"normalized" files:
- (c) header on all files
- standard order of preamble lines:
1. (c) header
2. package PACKAGENAME;
3. short summary of the package (pod's NAME section)
4. use - pragmatic modules
5. use - standard perl modules
6. use - CPAN modules
7. use - webwork modules
- ALWAYS use strict and use warnings
- use "use base" rather than "our @ISA"
so now we can be happy.
-sam
Revision
343 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jun 5 20:20:38 2002 UTC (10 years, 11 months ago) by
malsyned
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 2926 byte(s)
Diff to
previous 335
GDBM Authorization works fully.
More specifically:
Users must authenticate if they don't provide user/key data.
Fast login is requested automatically if a key has timed out.
A framework is in place to add other auth backends easily.
Revision
335 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri May 31 22:39:17 2002 UTC (10 years, 11 months ago) by
malsyned
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 2973 byte(s)
Diff to
previous 329
-Replaced the "sample" code with actual calls into the database code. This
would be very close to finished code, except that it suffers from a bug
that has so far proved intractable to Sam and myself. An email will be
forthcoming detailing the bug. Quite likely, the bug is not specifically
in this file, and in the best case this file won't need to be changed much
for a long time, unless I decide to change the interface for style reasons.
Revision
323 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu May 30 20:34:46 2002 UTC (10 years, 11 months ago) by
malsyned
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 2832 byte(s)
Diff to
previous 313
-Fixed a few interfaces so that they make more sense (I hope)
-Added preliminary templating code to ContentGenerator
-Added a lot of logic to the dispatcher (WeBWorK.pm). More to come, too.
-Moved lots of things over to CGI.pm, for my convenience while prototyping
-Added preliminary examples of ProblemSets, ProblemSet, and Problem.
Problem.pm will some day go on to do what ProcessProblem8 does right now,
so keep your eyes on that one.
--Dennis
Revision
313 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 28 21:23:45 2002 UTC (10 years, 11 months ago) by
malsyned
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 2325 byte(s)
Diff to
previous 305
- ContentGenerator.pm is now officially the superclass to all modules called
by the dispatcher to generate content.
- Authen.pm now has a single point of exit, which makes it easier to read,
debug, and modify
- Login.pm is now a subclass of ContentGenerator, and apart from the HTML,
is in it's final form.
- All code has been commented up
- The authentication wrapper is now a working demonstration. Anyone could
stick it on a webserver and try it out. The database code isn't written,
so it authenticates against hardcoded strings (username: dennis,
passwd: helloworld), but this at least proves that the system is workable.
--Dennis
Revision
305 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu May 23 20:23:10 2002 UTC (10 years, 11 months ago) by
malsyned
Original Path:
trunk/webwork2/lib/WeBWorK/Authen.pm
File length: 456 byte(s)
Diff to
previous 290
Login.pm is mostly done, except that the embedded HTML has to be replaced at
some point wiht code from HTML_glue or whatever new templating we implement.
Authen.pm and Test.pm are useful stubs to demonstrate how authentication wraps
around every request transparently.
ContentGenerator.pm may become a superclass of all classes instantiated by
the dispatcher, or it my whither away. Right now, it doesn't do anything,
including compile.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.