Граф коммитов

365 Коммитов

Автор SHA1 Сообщение Дата
ian%hixie.ch 25f761a622 Implement a way for requests to include referrer information. 2002-09-14 12:45:26 +00:00
ian%hixie.ch 4889c1fb44 To make debugging easier, move the level 9 output debugging dumps from failure cases in the datasources to always, in the generic output service. May need further tweaking later. 2002-09-12 11:45:17 +00:00
ian%hixie.ch adba24c93e Adding a new way of executing database statements: attempt(). Works like execute() but doesn't raise an exception on failure. Check for failure by using the ResultsFrame's 'lastError' method. 2002-09-12 11:44:07 +00:00
ian%hixie.ch ad095c7804 Add two new filters: One for theoretically valid URIs, and one for strings being embedded _into_ URIs. Note that the first overrides the Template::Filters version since that version is arguably incorrect. 2002-09-11 23:11:43 +00:00
ian%hixie.ch 791866856a Changing 'HTTP/1.1' to 'Status:' since we're now in a non-nph environment. 2002-09-09 19:23:04 +00:00
ian%hixie.ch cae1696299 More debugging information at high verbosity settings. 2002-09-09 19:22:10 +00:00
ian%hixie.ch 2493903b1d Implementations should stop using nph- scripts now. (This may have more fallout.) 2002-09-09 15:38:05 +00:00
ian%hixie.ch 8ee8ff9e8b Return the HTTP headers as well in an array context. 2002-09-08 16:39:35 +00:00
ian%hixie.ch 6e7c01e16e Switch to using smart_encode, cos we are smart. Add support for <fault> in XML-RPC output to handle errors. 2002-09-06 10:37:17 +00:00
ian%hixie.ch 8091275c08 Add a comment to remind others of what I forgot... (that you probably need a propertyImpliedAccessAllowed to use methodMissing) 2002-09-06 02:01:48 +00:00
ian%hixie.ch 239d98ec13 Normalise the command argument so that we don't choke if it has a dot in it or something. (We don't always control what the command is, e.g. for XMLRPC.) 2002-09-06 02:00:26 +00:00
ian%hixie.ch f865cddc1c Silly typo: the constructor arguments don't go on the class, duh 2002-09-06 01:54:14 +00:00
ian%hixie.ch 2a1af49e61 A wrapper around LWP::UserAgent and HTTP::Entities. (And maybe other things, in future.) 2002-09-05 21:16:24 +00:00
ian%hixie.ch 2c7166b3af Minor bug fixes: Make anonymous arguments start from 1 not 0; make a zero argument response have a response (a true boolean); make outputs with zero or one arguments be handled as outputs instead of implied property accesses. 2002-09-05 21:15:15 +00:00
ian%hixie.ch 3da4cfd8a2 Add a generic output: acknowledge. Used when nothing is particularily required as a response, e.g. for a one-way XMLRPC call. 2002-09-05 21:05:33 +00:00
ian%hixie.ch 6e682a075a XML RPC support. This is all you need to turn a PLIF application into a PLIF application with XML RPC. 2002-09-05 17:04:03 +00:00
ian%hixie.ch 533f6d4def Removing a few things which are now done or which will never be done. 2002-09-05 16:52:07 +00:00
ian%hixie.ch 8b10632835 Missing newline in the output. This was causing some hickups for some UAs (perfectly understandably...) 2002-09-05 16:27:04 +00:00
ian%hixie.ch ded9adb65d Optimisation: move the importing of Template::Context to runtime. 2002-09-05 16:24:58 +00:00
ian%hixie.ch 1998746fe3 Untaint the statement as well as the values before handing them to the database, because some statements are made from tainted data. This should be made more secure at some point, because currently there's no checking of database statements. 2002-09-05 16:23:38 +00:00
ian%hixie.ch e13d10f036 Split the CGI input module into one module per method and Content-Type. In the process, added support for MIME multipart POST, so in theory we now support file upload too. 2002-09-05 16:18:38 +00:00
ian%hixie.ch aa2d09d401 Adding yet more layers to the output mechanism: now objects con hook in and do whatever they like to the output before it reaches the protocol (or generic) output service instance. Also, move the objects hash reset code to the end of the run loop so that an input device can add an object (before, the earliest you could add an object was the input verifier). 2002-09-05 16:11:25 +00:00
ian%hixie.ch 8db0d6ded5 Some minor code fixups with no semantic change. Also, fixed the getArgumentsAsString method to not screw up the output when there are empty arrays in the arguments hash (as can happen when you call createArgument, which happens when getArgument is called and the argument is missing) and when the arguments hash contains scalars. 2002-07-16 15:50:14 +00:00
ian%hixie.ch a35d045656 Add support for a command which does nothing but pass its argument to the output system. This is especially useful for templates that want to show other templates without actually doing anything else, and so the command is called 'showTemplate'. 2002-07-16 15:46:28 +00:00
ian%hixie.ch 5a6c17d958 Let's try a different tactic in a scalar context. If there's no data, return undef. 2002-07-07 15:42:57 +00:00
ian%hixie.ch 299f260287 Update the string data source to use the new input metadata APIs 2002-07-07 00:13:29 +00:00
ian%hixie.ch 62165e7d5b Typo: adddress should be address. Doesn't make any particular difference to anything unless someone has already written automated installation scripts... 2002-07-06 17:59:10 +00:00
ian%hixie.ch 12d86e0428 Change the 'row' method of the ResultsFrame API to return an array in an array context, a hashref in a scalar context, and the value on its own if there is only one returned value. (Controversial change. This could introduce hard to spot regressions, and might be backed out at some point.) 2002-07-06 17:52:21 +00:00
ian%hixie.ch c5ff59c053 Introduce the service.uaStringInterpreter.<protocol> service, which takes a UA string and splits it into name, version, manufacturer, platform and comment. This is the HTTP implementation of that service. 2002-07-06 17:49:22 +00:00
ian%hixie.ch c931d0e91f Added the following filters to the Template Toolkit toolbox: htmlcomment, xmlcomment, xml, cdata, htmljs, js, css. Added support for named [% BLOCK %], which had been removed when the template processing code was overridden. 2002-07-06 16:14:58 +00:00
ian%hixie.ch 67ff1ef52d Remove XXX comment about needing an API to enable or disable UI elements, since that need has disappeared now that we use provide that information reliably in the user object. Also split a long line into two for no particular reason. 2002-07-06 16:12:42 +00:00
ian%hixie.ch 724d714a02 Changed the default handling of the generic output module. Now, if there's no generic dispatcher for an output command, it'll effectively synthesise one on the fly, using the method name as the string name and the arguments as an array of values for a 'data' variable. This means that applications can skip out on implementing a generic dispatcher now. Anyone using strings with dot separators (i.e. anyone writing libraries) still need to have generic output dispatcher methods though, to map the method call to a string name. 2002-07-06 16:05:48 +00:00
ian%hixie.ch 927a78dfd7 Made the SMTP 'timeout' value configurable at setup time (defaults to 5 seconds) 2002-07-06 16:02:07 +00:00
ian%hixie.ch 3f748a7c22 Implement getArgumentsTree(), which returns a hash tree representing the first value of each unique argument name in a branch, using dots as the separator. Finally replaced the hardcoded non-extensible meta data stuff with a proper getMetaData() API. Implemented that in the various Input modules. Renamed 'parameter' to 'property' in the CGI Input module. Added '--batch-force-defaults' as an argument handled by the CommandLine Input module. Made CommandLine derive from Default instead of Arguments, so that it can pick up the default handling of metadata and default output protocol. 2002-07-06 15:59:56 +00:00
ian%hixie.ch 7c56b08e2b Update to TemplateToolkit format 2002-06-30 21:35:27 +00:00
ian%hixie.ch 19251aa801 Include character set information in the HTTP headers 2002-06-30 21:34:57 +00:00
ian%hixie.ch b0b0c2d2b3 HTTP needs RFC822 dates for its Date: line 2002-06-30 21:33:21 +00:00
ian%hixie.ch 24c018b496 Primitive POST support (work in progress) 2002-06-30 21:30:43 +00:00
ian%hixie.ch f4a812c534 Oops, wrong repository... 2002-06-30 21:05:35 +00:00
ian%hixie.ch 71c3a67ce8 Initial checkin 2002-06-30 21:02:35 +00:00
ian%hixie.ch ce4478beee Some versions of the Net::SMTP module handle the timeout by raising a SIG ALRM, so handle this case as well. Also increase the timeout by ten seconds since in the real world, some servers are actually that slow. We might need to make this asynchronous at some point. 2002-05-26 15:08:48 +00:00
ian%hixie.ch 42ac389024 Perl 5.005_03 compatability: the precedence of the not and comma operators changed at some point, so disambiguate this usage. 2002-05-26 15:05:37 +00:00
ian%hixie.ch 78a7589fdc Cache the Term::ReadLine input device. On some systems, it has to be cached, otherwise you end up trying to open too many input handles or something like that. This also means we can have session history where available. 2002-05-26 15:03:48 +00:00
ian%hixie.ch 8ffd16f0b1 Add some null checking -- if the string is undefined, then turn it into the empty string. This avoids many undefined value warnings when the data provided by the user is incomplete. 2002-05-26 15:02:33 +00:00
ian%hixie.ch f5ec789f5f Implemented rowsAffected(), which will return the number of database rows that were affected by the last execution of the statement associated with the results frame. 2002-05-26 15:00:56 +00:00
ian%hixie.ch 4d9ba65cdd Preliminary work in making the user prefs notifications page nicer. 2002-05-07 12:16:24 +00:00
ian%hixie.ch 2eccf38d60 Add the hidden userPrefs.userID fields to the user prefs page so that changes to users other than yourself actually take effect. 2002-05-07 12:16:01 +00:00
ian%hixie.ch 50edfae326 pendingCommands.defined doesn't seem to work... Let's try pendingCommands.ref. It's technically more correct anyway. 2002-05-07 03:04:37 +00:00
ian%hixie.ch e14122ee41 Forgot to fully convert the templates to Template Toolkit: nested dots need to be escaped differently now. 2002-05-07 03:03:00 +00:00
ian%hixie.ch 7f1b1bc44d Fix some bugs with the pendingCommand escaping code: First, extra spaces were being inserted (so much for s///x). Second, the escaping was actually modifying the original keys. Third, there were some logic errors that caused underescaping or resulted in the wrong key being escaped. 2002-05-07 01:50:22 +00:00
ian%hixie.ch 02aa6e26db Lots of tweaks, mainly to make the source look pretty. Also hid the Settings header if there are no important settings. 2002-05-07 01:32:28 +00:00
ian%hixie.ch 6e4c646189 Correct a typo: Output is done through the application object, not the user prefs object... 2002-05-06 23:05:08 +00:00
ian%hixie.ch fea723a0a6 Add an additional check that the change ID is valid 2002-05-06 22:59:22 +00:00
ian%hixie.ch f343303e4e Forgot to fully convert the templates to Template Toolkit: nested dots need to be escaped differently now. Also added filters to the URI fragments so that spaces get escaped properly. They'll be stuck together at some point. 2002-05-06 21:15:05 +00:00
ian%hixie.ch 08859612f4 Forgot to fully convert the templates to Template Toolkit: nested dots need to be escaped differently now 2002-05-06 21:05:28 +00:00
ian%hixie.ch b89f14c971 Add more information to the hash passed to the change of address outputs 2002-05-06 21:01:48 +00:00
ian%hixie.ch 35e07fb8e3 Remove the 'html' bit from the filenames. 2002-05-06 21:00:53 +00:00
ian%hixie.ch cd26de7c63 E-mail templates 2002-05-06 12:53:53 +00:00
ian%hixie.ch e67e2cad39 Remove the 'html' bit from the filenames. 2002-05-06 11:03:12 +00:00
ian%hixie.ch 9fd73998f6 Ok, handle undef in getArgumentsFromString the same as an empty string. This function sometimes gets called with the result of peekArgument(), which could be undef. 2002-05-06 10:10:57 +00:00
ian%hixie.ch 190d3e3373 There's a bug somewhere which results in the expansion of an undefined string. This assertion should help track it down. 2002-05-06 09:55:19 +00:00
ian%hixie.ch 6cc76a9d5b Oops, forgot to make the primary key ID an auto_increment column. 2002-05-06 09:53:01 +00:00
ian%hixie.ch 4bb1faa917 getFields returns an arrayref, so we have to dereference it before using it in a foreach loop. 2002-05-06 05:51:02 +00:00
ian%hixie.ch 24bcc8e7ed Oops, I was stomping on the fieldsByID property by treating it as a function instead of a hash. Also add in an assertion to check that insertField() is always called with a real field. 2002-05-06 05:50:06 +00:00
ian%hixie.ch 3afbf82b63 Make user fields all provide the user.field service so that they can be easily recognised. 2002-05-06 05:48:48 +00:00
ian%hixie.ch 8c45554054 Change the expected field category name from 'detail' to 'personal' for consistency 2002-05-06 05:26:00 +00:00
ian%hixie.ch 11fa7fcc76 When getting ones password sent without getting a login failed message first, the pending command is the request to send a new password... so you get sent back to that once your password is sent. That's not good. This fixes it by moving the pendingCommands code to the login.failed page and making the login.detailsSent page only show the continue button when appropriate. 2002-05-06 05:17:00 +00:00
ian%hixie.ch d33c4d1a80 User Preferences Screens 2002-05-06 04:55:59 +00:00
ian%hixie.ch 4fe03788dd Fixing the spelling of getRightsForGroups() where it is declared and used. Also fixing one of the SQL statements to use rights.rightID not rights.ID. 2002-05-06 04:36:42 +00:00
ian%hixie.ch 06fe39d85b Rename 'setting' to 'settings' throughout to be consistent. Also, make it so that someone with the right to change all groups gets to be the equivalent of an owner even in groups where he is only marked as administrator. 2002-05-06 03:54:14 +00:00
ian%hixie.ch e7fd1d788a Hardcoded constants strike again... Changing the setup code to let the first administrator have the rights to let other people be administrators. 2002-05-06 03:10:50 +00:00
ian%hixie.ch c917916adf comment clarification 2002-05-05 22:43:05 +00:00
ian%hixie.ch 61cc38e6ba Change variable names to reflect the fact that objects are instances, not classes. 2002-05-04 01:11:56 +00:00
ian%hixie.ch f2a559cbae Add some debugging info to every page once and for all. 2002-05-04 01:10:38 +00:00
ian%hixie.ch 50cd6af032 Make the user factory return the same object if the same user is requested multiple times. This means that if the currect user is changed on the fly, the changes actually take effect instead of there being a potential race condition between the change, the access of the currect user, and the objects going out of scope and updating the database. 2002-05-04 01:09:27 +00:00
ian%hixie.ch 1a1bdeb593 Pass the app reference to the user factory. Fix the code that uses argument branches to treat them as arrays instead of scalars. 2002-05-04 01:06:38 +00:00
ian%hixie.ch a92816a815 Two more things to do: make getSettings return a boolean instead of raising an exception, and add a pass-through command that outputs can use to bring up specific templates 2002-05-04 01:03:48 +00:00
ian%hixie.ch de97b7e2eb Add support for converting + signs in URIs back to spaces. 2002-05-04 01:02:19 +00:00
ian%hixie.ch cb000c2459 change the default include type from XML to x-auto so that by default we can include other templates without knowing what they are. 2002-04-30 00:24:48 +00:00
ian%hixie.ch 0cc155547e Make getSettings return a boolean instead of raising an exception. 2002-04-30 00:24:01 +00:00
ian%hixie.ch 3f6224691f Add various FILTERs were required to keep the output valid HTML... 2002-04-30 00:23:07 +00:00
ian%hixie.ch 15ff9e75dc Add support for pending commands, so that after getting their password sent users can continue doing what they were doing before. (This requires support on the output side as well, typically the HTTP protocol will use this, and less interactive protocols like e-mail won't.) 2002-04-30 00:18:33 +00:00
ian%hixie.ch b917e6b397 Add getArgumentsAsString() and getArgumentsFromString() so that the arguments can be flattened and then 'retexturised' a later time and reused. 2002-04-30 00:13:20 +00:00
ian%hixie.ch 5dae3f22b8 Login component output files for the HTTP protocol 2002-04-30 00:11:55 +00:00
ian%hixie.ch b86ab38364 If the app name is the same as the page name, only display it once in the page title 2002-04-24 20:31:53 +00:00
ian%hixie.ch 3672975bff Move from COSES to TemplateToolkit 2002-04-24 20:02:34 +00:00
ian%hixie.ch cbd54ef96f Add an adminMessage to the default admin user. 2002-04-21 15:03:29 +00:00
ian%hixie.ch 6a5b570278 Add a (default, very simple) login command so that the standard footer can have a login link. 2002-04-21 14:58:13 +00:00
ian%hixie.ch 7f92f4f9ec Changing from COSES to TemplateToolkit 2002-04-21 14:53:34 +00:00
ian%hixie.ch 43f8ca9182 Split the confused getRights API into two, one to get the list of rights, and one to get the list of rights applicable to a set of groups. Make the user's output hash list all rights if the user is an administrator (this mirrors the behaviour of the user hasRight API). 2002-04-21 14:11:41 +00:00
ian%hixie.ch 17468fb239 add group names to the data passed to templates 2002-04-21 14:08:27 +00:00
ian%hixie.ch 469080dad5 If a user bookmarks or reloads the logout page, we don't want to show an error. 2002-04-21 14:05:15 +00:00
ian%hixie.ch df6bd7a3a6 change the constructor to be a service instance constructor only, so that if descendants are also services, we don't leak the world through having a circular reference to the app. 2002-04-06 21:34:39 +00:00
ian%hixie.ch 6b0ed86249 Update the CosesEditor to use the new name for the customised string data source. (used to be dataSource.strings, now dataSource.strings.customised) 2002-04-06 21:30:05 +00:00
ian%hixie.ch 38b28733e1 Correcting inherited method call to call the right method -- serviceInstanceInit(), not init() 2002-04-06 21:27:45 +00:00
ian%hixie.ch 9ca5550433 Fix the removeObjects() function to ensure it actually removes the objects instead of leaving null pointers about for us to dereference later. Added some extra precautions to make sure that doesn't happen again. This all makes it possible to log out again. 2002-04-06 20:37:31 +00:00
ian%hixie.ch 05240d8e86 Fixing warning: 'Use of uninitialized value in concatenation (.) or string at ../PLIF/PLIF/Service/TemplateToolkit.pm line 70.' 2002-04-06 20:19:12 +00:00
ian%hixie.ch c5ed21b8e9 Use Template::Stash::Context rather than Template::Stash because we need things like .ref 2002-04-06 20:13:44 +00:00
ian%hixie.ch 111c3af7cc Updating built in COSES strings to match the new semantics (no 'data.' prefix required on variables) 2002-04-06 19:29:13 +00:00
ian%hixie.ch 34268809ac Added support for password-less installations. Also added some comments and made font-lock happier. 2002-04-06 19:23:24 +00:00
ian%hixie.ch 871763fcb5 change the name adminHostname to the more accurate localHostname 2002-04-06 19:16:09 +00:00
ian%hixie.ch f94e20287e Adding Template Toolkit support. See http://www.template-toolkit.org/ for documentation on the template toolkit format. 2002-04-05 22:39:59 +00:00
ian%hixie.ch 70f92fe612 Add getArgumentsBranch() virtual method declaration (for completeness). 2002-04-05 22:13:52 +00:00
ian%hixie.ch f8012497bf Update: Yet more things that need doing. 2002-04-05 20:25:11 +00:00
ian%hixie.ch 7c6fe87ed8 Make the File string data source capable of looking for file-based templates in two locations, one specific to the app and one relative to the library. This allows PLIF to ship with default templates for various screens and thus makes it easier to bootstrap a simple app. 2002-04-05 20:17:34 +00:00
ian%hixie.ch 1f3b041aaa Default error reporting page. 2002-04-05 20:15:27 +00:00
ian%hixie.ch 455922b478 Default templates for headers and footers that can be used by other templates. 2002-04-05 20:13:51 +00:00
ian%hixie.ch ad1ba85936 Update the parameter list so that the 'type' parameter is explicitly named (although it still isn't used since this expander only supports one type). Also change the semantics of the data hash: no longer replace the data into a one member hash. This is a minor optimisation that eases interaction between expanders but will require changes to all existing templates. 2002-04-05 19:16:14 +00:00
ian%hixie.ch b52700b1d2 Add a 'type' argument to the string expander interface so that string expanders can support multiple types. Also split getExpandedString so that callers can expand strings separately from getting strings, in case that is ever necessary. 2002-04-05 19:13:14 +00:00
ian%hixie.ch 5230bdd859 Minor typo correction: change 'import New::SMTP' to 'import Net::SMTP' 2002-04-05 19:11:21 +00:00
ian%hixie.ch a89dffc374 * Added getGroupMembers() to the User data source.
* Fixed a bug in the MySQL implementation of User data source's getGroupName() method. It treated 'row' as an array ref instead of a normal array.
* Made the MySQL User data source automatically add a group with ID 1, named 'Administrators'.
* Special-cased the group with ID 1 in the user object so that if a user is in that group, he automatically is assumed to have all rights.
* Fixed a bug with the saving of the original groups in the user object (the backup object was simply a reference to the original object, which was later changed in place, causing the backup to change too).
* Fixed the handling of rights in the user object constructor to simply set the rights in one line instead of using indirection.
* Fixed the invalidateRights() method of the user object to correctly re-set the rights (previously it was not turning the generated array into a hashref).
* Added a setup.install implementation to the login component. It now queries the user for an administration username and creates the relevant user and puts it in the magic group 1.
* Fixed a call to checkAddress() in the login component.
2002-02-01 06:48:02 +00:00
ian%hixie.ch 1c49734d21 Commented out the call to Net::SMTP's verify() method and replaced it with a generic regexp sanity check. It appears that VRFY is not correctly implemented on all servers. (I may be mistaken on this; it might just be a bug somewhere in the PLIF code that is messing something up, but I couldn't find it if so.) 2002-02-01 06:38:55 +00:00
ian%hixie.ch 3a41393898 Added a check that ensures that the configuration file is not readable or writable by anyone except the user running the script. This closes a potential security hole on shared machines. Changed the umask during the creation of the configuration file so that the permission bits are set that way too. Added a comment to clarify the superficially recursive nature of the configuration database and the configuration data source. 2002-02-01 06:36:27 +00:00
ian%hixie.ch 2787ed1409 Another change that should be done at some point: Move PLIF/DataSource/*/MySQL.pm to PLIF/DataSource/MySQL/*.pm 2002-02-01 06:32:17 +00:00
ian%hixie.ch 7b34209a7b Removed an erroneous comment, which should be the last traces of the old problem of the lack of a configuration file being a fatal error. 2002-01-31 18:30:21 +00:00
ian%hixie.ch ed5ab39edd Theoretical nit: call inherited constructor just in case at some point in the future it does something useful... 2002-01-31 17:35:52 +00:00
ian%hixie.ch 551d3369d7 Fix a minor typo in some SQL code which was causing an error during the creation of the user table. 2002-01-25 03:18:15 +00:00
ian%hixie.ch 28d425cd54 Moved the DBI module over to thew new more generic settings getting/saving API and removed the old DBI-specific one. Fixed an assert() call to check for the values being defined and not non-zero/non-blank. Fixed the password field to allow blank values (by making a blank value the default). Also fixed the calls to getArgument to not ever pass an undefined value as the default. 2002-01-25 03:17:05 +00:00
ian%hixie.ch 7ac3c80e5c More things that need doing on the long (and not so long) run. 2002-01-25 03:12:26 +00:00
ian%hixie.ch c80c11fad9 getting rid of the last traces of the newFieldXXX stuff 2001-12-31 06:28:59 +00:00
ian%hixie.ch 7674dacda9 abstracted out some common code. Made the flushing of pending text happen after each end tag as well as each start tag. (Not doing this was causing whitespace between sibling elements to be treated as trailing whitespace of the first element, resulting in excessive whitespace -- typically newlines -- in the output stream.) 2001-12-31 06:07:04 +00:00
ian%hixie.ch 1bb8d54c2c Fixing SQL error (DROP COLUMN not REMOVE COLUMN) 2001-12-31 06:04:30 +00:00
ian%hixie.ch fa701c948c delete() doesn't work with array references in old versions of perl5. 2001-12-31 02:40:49 +00:00
ian%hixie.ch eccb9aca1d Checking in a list of things that still need doing. 2001-12-30 01:03:45 +00:00
ian%hixie.ch 7bb48dfffc Changing e-mail address now sends a confirmation mail to the old address too. Implemented by making changing fields a generic mechanism. Also fixed some minor nits. 2001-12-30 00:33:36 +00:00
ian%hixie.ch 41564734e3 * Removed incorrect comments.
* Added some XXX comments.
* Changed the way text nodes are handled so that adjacent text nodes are merged.
* Changed the way original keys are kept so that they work across flattening, rounding, and that there is no 'coses: original keys' hash getting in the way.
* Fixed a bug whereby empty arrays and hashes caused extraneous iterations in <set> elements.
* Removed some redundant scalar()s.
2001-12-26 19:30:16 +00:00
ian%hixie.ch dc80936c17 Made debug() be level 6 instead of level 7. Added various comments. 2001-12-26 19:12:57 +00:00
ian%hixie.ch 6cf0f6394c Removed an unused variable. Made the selecting array always return an array even in scalar context. This makes using it in |if| statements a lot easier. 2001-12-26 19:03:07 +00:00
ian%hixie.ch 6415154def Removing debug() calls. 2001-12-26 19:01:07 +00:00
ian%hixie.ch ff47917188 Removing debug() calls, and removed the mention of a user 'logged out' state now that logging our is protocol specific. 2001-12-26 18:52:23 +00:00
ian%hixie.ch 0c63b62da7 Adding some error handling for the case where connecting to the AIM server fails. Also removing an extraneous dump() statement. 2001-12-26 18:35:16 +00:00
ian%hixie.ch caac55f5f3 An implementation of a logout service for HTTP. 2001-12-26 18:34:01 +00:00
ian%hixie.ch c869b6822d Since User.pm is now calling this object's 'hash' method instead of using 'data' directly, we had better implement 'hash'. Also make setting the property always check that the value being set is valid. 2001-12-26 18:19:15 +00:00
ian%hixie.ch f1129a6449 Since logout is now protocol specific, removing support for logging out from the user object. Also making the 'hash' method more generic by making it call the field 'hash' method instead of assuming it will never pass more than the data of a field. 2001-12-26 18:15:14 +00:00
ian%hixie.ch 25ba099600 Changed the implementation of cmdSetup to store the results of the selecting service lists in an array instead of a scalar. 2001-12-26 17:45:05 +00:00
ian%hixie.ch 39a7e0dafe Change from a hard-coded logout mechanism to a generic per-protocol logout mechanism. 2001-12-26 17:38:41 +00:00
ian%hixie.ch 763aa79b24 A new type of user field for strings that are in the form of integers. 2001-12-26 17:18:00 +00:00
ian%hixie.ch 8be4dec718 Removed some |scalar()|s where they were redundant, added some XXX comments, and fixed a couple of logic errors (>2 should have been >=2 and stuff like that -- this code really should use named constants) 2001-12-26 16:46:06 +00:00
ian%hixie.ch a8a4ffb711 |not| implies a scalar context, so there's no need for an explicit |scalar()| 2001-12-26 16:10:17 +00:00
ian%hixie.ch 6a8b581138 Removed a redundant |scalar()| -- |if| implies a scalar context anyway. 2001-12-26 16:05:54 +00:00
ian%hixie.ch 77fac412e2 Clarified a comment. 2001-12-26 16:03:55 +00:00
ian%hixie.ch 5bb8ed02a5 A few minor fixes: checked for a reference being defined rather than being true (twice), replaced some double quotes with single quotes, and removed a trailing dot on a call to error(). 2001-12-26 15:45:01 +00:00
ian%hixie.ch a75437cefb Removing a level 10 dump statement that was being hit a lot. 2001-12-26 15:42:21 +00:00
ian%hixie.ch 988853e179 Removing a bunch of dump(10, ...) calls. It turns out that dump() is actually quite expensive, and calling it 1000+ times just to do nothing isn't that useful. In addition, most of these dump()s were used to debug the core PLIF code which now works pretty well, so they aren't that useful any more. 2001-12-04 18:06:06 +00:00
ian%hixie.ch 0ac4b20d8e PLIF::Service::XML::Char() was the most expensive function in a typical profile. This takes it completely off the radar by not bothering to merge adjacent strings. 2001-12-04 17:51:23 +00:00
ian%hixie.ch 199ee1a91f Changed the groupsById and groupsByName hashes of arrays into hashes of hashes to make them friendlier to handle. Also fixed some typos (groupByID instead of groupsByID, and one case of groupsByID where groupsByName was meant) and optimised away a call to dataSource.user's getGroupName method (since we already know the name). 2001-12-04 14:34:54 +00:00
ian%hixie.ch a4d4cebebf Fixing copy/paste error -- the user prefs object isn't the application object... 2001-12-04 13:40:04 +00:00
ian%hixie.ch b382ef763c Make '0' and '' be equivalent to 'default' for the 'order' attribute of the <set> element. This makes defaulting actually work (missing attributes seem to get set to ''?). 2001-12-04 13:08:39 +00:00
ian%hixie.ch 9868c69a29 Place a 5 second timeout on the SMTP object -- this makes running setup bearable without an SMTP server (the default timeout is 2 minutes). 2001-12-04 12:53:40 +00:00
ian%hixie.ch 1454dc7651 getFieldsHierarchically() will now return an even prettier result. Since it is mainly (currently only?) used for creating the data hash sent to the string expanders, this makes it a lot easier to author the templates. No silly numbers to remember. :-) 2001-12-04 12:51:48 +00:00