commit 1e555d4dc28bf9faa3b411651fd64a48d272ddd5 Author: Eric J. Bowersox Date: Wed Jan 31 20:48:40 2001 +0000 *** empty log message *** diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..40caffa --- /dev/null +++ b/.cvsignore @@ -0,0 +1,28 @@ +# CVS default ignores begin +tags +TAGS +.make.state +.nse_depinfo +*~ +#* +.#* +,* +_$* +*$ +*.old +*.bak +*.BAK +*.orig +*.rej +.del-* +*.a +*.olb +*.o +*.obj +*.so +*.exe +*.Z +*.elc +*.ln +core +# CVS default ignores end diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..969b331 --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Eric J. Bowersox diff --git a/FAQS b/FAQS new file mode 100644 index 0000000..02e1807 --- /dev/null +++ b/FAQS @@ -0,0 +1,107 @@ +Frequently-Asked Questions about Venice (*) +------------------------------------------- + +(* - or at least those I think people will be asking) + +Q: What is Venice? +A: The Venice Web Community System is a system for supporting online + communities and special interest groups. A single Venice server will + support multiple SIGs, and all users authenticating themselves with the + Venice server will be able to join any SIG based on that server. SIGs + will support features like Web conferencing, chat, and instant messaging. + +Q: Aren't there already conferencing packages out there? +A: Yes, and some of them are very good. However, Venice is being designed + first and foremost to support the Electric Minds community, and the + software will implement the appearances and behaviors they're used to + (at least for the most part). Enough other people have already found + this useful that I think it will have broad-based appeal. + +Q: Who are Electric Minds, anyway? What makes them so special? +A: Electric Minds is a pioneering online community, originally founded by + Howard Rheingold, longtime user of The WELL and author of _The Virtual + Community_, in November 1996. Electric Minds, among other things, hosted + the discussion site for the Kasparov vs. Deep Blue chess match, and went on + to become one of _Time_ magazine's top 10 Web sites of 1996. His company + lost its financing, though, and was acquired by Durand Communications, + Inc., of Santa Barbara, CA, in July 1997, who shifted the community from + the existing WellEngaged conferencing platform to its own "CommunityWare" + online community software. Electric Minds has been a lively place for + conversation ever since, despite the departure of Rheingold. The current + host of the Electric Minds community is Harry "maddog" Pike, of New + Hampshire. + +Q: So where's Durand Communications now? Never heard of 'em. +A: Durand Communications was acquired by Online System Services (now Webb + Interactive Services, Inc.), of Denver, CO. CommunityWare was folded + together with OSS' i2u product, and the result was introduced as WebbMe, + which was also an online community system. + +Q: So why does Electric Minds need Venice? +A: Webb Interactive is pulling the plug on WebbMe at the end of January, 2001. + Electric Minds will be no more, unless it can be moved from its existing + servers. + +Q: Can't you just use the existing WebbMe software? +A: Not practical. WebbMe is written using Microsoft Active Server Pages under + IIS 4.0 on Windows NT 4.0, using a SQL Server back end. Even if a server + could be found to support it, the software is old and very touchy to + administer. (Webb Interactive's work is all in Java now, using WebLogic + and Oracle. Very few people are left who remember much of anything about + how WebbMe works.) + +Q: Doesn't Webb have software you can use now? +A: Well, they do have a Discussions product as part of their AccelX suite, but + it has a couple of major issues: + (1) It's not open source. In my opinion, it is not desirable for a + community like Electric Minds to be held prey to proprietary software + storing its intellectual content. + (2) It's also heavy in its requirements. It uses Enterprise JavaBeans and + requires the BEA WebLogic server and an Oracle database as back end. + For our purposes, that'd be overkill. + +Q: Well, then, what about {Slash|Scoop|Squishdot|mod_virgule|etc.}? +A: Those packages are all good (and, in fact, Venice may incorporate some of + their features in future), but they were designed for other purposes. It's + partially the nature of the software that makes Electric Minds the community + it is, and so, to preserve the community as we know it, we need to keep + the functionality as close as possible. (This will also make it possible, + at a future date, to import the old discussions from the WebbMe Electric + Minds into Venice, for future reference and for posterity.) + +Q: Why call it "Venice"? +A: During its early development (predating the Electric Minds acquisition), + CommunityWare was known as "Rome." Rome was one of the primary centers + of advanced community in ancient times. Similarly, Venice was one of the + centers of advanced community during the Renaissance...and, right now, + Electric Minds could use a renaissance :-). + +Q: But you're not ripping off CommunityWare/Webb, are you? +A: Not at all. Some of the design structures are similar to CommunityWare, + but there are many significant changes. For instance, the Venice HTML + interface uses no tags, and the security model has been replaced + with a more self-consistent one. As time goes on, Venice will continue + to incorporate features that distinguish it from the original WebbMe. + +Q: Did WebbMe have instant messaging, too? +A: Yes, it did. The original CommunityWare instant messaging and chat was + based on code derived from Durand's earlier MindWire product. It was later + replaced with a not-entirely-reliable system implemented using IRC. When + Venice implements IM and chat, it will likely be based on Jabber. + +Q: What's Jabber? +A: Jabber is the world's only open-source XML-based instant messaging system. + Aside from offering its own instant messaging, it allows compatibility with + other IM systems like AIM, ICQ, MSN, and Yahoo!. See http://www.jabber.org. + +Q: How will Venice use Jabber? +A: Venice will most likely run in conjunction with a Jabber server that can + authenticate users against the Venice database. Venice will include Java + applets for Jabber communication. + +Q: Venice should implement {cool feature} like {other software} does. +A: Sounds interesting. Email me and tell me more. + +Q: My question wasn't covered here! Will you add it? +A: Maybe, if enough people ask it :-). Email me your suggestions. + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..45664c8 --- /dev/null +++ b/INSTALL @@ -0,0 +1,74 @@ +INSTALLATION INSTRUCTIONS +------------------------- + +Software requirements: + You must install the following software on your system: + + * Java 2 SDK version 1.2.2. Venice is normally run with the Blackdown + JDK port, available at http://www.blackdown.org. Version 1.3.x has + not been tested. + * Java API for XML Parsing (JAXP) version 1.0.1, available from + http://java.sun.com. + * Java Secure Socket Extension (JSSE) version 1.0.2, available from + http://java.sun.com. (Venice does not (yet) require this, but Apache + Tomcat does.) + * JavaMail API version 1.2, available from http://java.sun.com. + * JavaBeans Activation Framework (JAF) version 1.0.1, available from + http://java.sun.com. (Required by JavaMail.) + * Apache Jakarta LOG4J library, available from http://www.log4j.org. + * MySQL 3.23.x (get the most recent 3.23 version), available from + http://www.mysql.com. + * The MM.MySQL JDBC drivers version 2.0.3, available from XXXX. + * Apache Jakarta Ant, version 1.2, available from + http://jakarta.apache.org. + * Apache Jakarta Servlet API, version 3.2, available from + http://jakarta.apache.org. + * Apache Tomcat version 3.2.1, available from http://jakarta.apache.org. + + It is recommended that you install JAXP, JSSE, JavaMail, JAF, and LOG4J + by copying or symbolically linking their JAR files to the /jre/lib/ext + directory, to avoid creating a huge CLASSPATH variable. The JDK /bin + subdirectory should be in your PATH, naturally. + + You should have access to a mail server that can relay e-mail messages + from the host on which Tomcat will be running. (If it's the same host, + so much the better.) + +Setting Up: + After extracting the source from CVS, you will need to choose your + deployment directory. This will need to be specified as the "deploy.home" + property in the build.xml file. In addition, the three main Venice + configuration files (logging-config.xml, render-config.xml, and + venice-config.xml) are all copied to the WEB-INF subdirectory of the + deployment directory, and three parameters in web.xml point to them, so + those parameters will have to be modified. + + Also modify the three configuration files to suit your system layout. + Each file is reasonably commented, so you should be able to figure it out + based on your directory location and your Tomcat configuration. + + The database.sql file's "grant privileges" section may also need to be + modified to suit your tastes. Make sure though, that the Venice database + username and password match those specified in venice-config.xml, or + nothing will work. + + Finally, in the setup directory, the files context-add.xml and + tomcat.policy.add contain snippets to be added to your Tomcat server.xml + and tomcat.policy files, respectively. These also need to be modified + as necessary. (Yes, I know the policy should not be granting AllPermission + to the entire server application. This will be fixed later, once I know + exactly what permissions are required.) + + Create the Venice database by using the command: + + mysql -u root -p < setup/database.sql + + and type your MySQL root password when prompted. If your database gets + horked, this command will reset it to its "pristine" state as well. + + Now start Tomcat in the usual way, and point your Web browser at the + URL "http://:/venice/top". If all goes well, you will + see the Venice "top level" page pop up in your browser. (It'll take a + minute or so the first time, as the classes all get loaded and some of + the JSPs compile for the first time.) + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7714141 --- /dev/null +++ b/LICENSE @@ -0,0 +1,470 @@ + MOZILLA PUBLIC LICENSE + Version 1.1 + + --------------- + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is ______________________________________. + + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the terms + of the _____ license (the "[___] License"), in which case the + provisions of [______] License are applicable instead of those + above. If you wish to allow use of your version of this file only + under the terms of the [____] License and not to allow others to use + your version of this file under the MPL, indicate your decision by + deleting the provisions above and replace them with the notice and + other provisions required by the [___] License. If you do not delete + the provisions above, a recipient may use your version of this file + under either the MPL or the [___] License." + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] + diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/README b/README new file mode 100644 index 0000000..168b76e --- /dev/null +++ b/README @@ -0,0 +1,52 @@ +The Venice Web Communities System +Eric J. Bowersox for Silverwrist Design Studios +In Development, January 21, 2001 +SourceForge Home: + +---------- + +Description: + The Venice Web Communities System is a system for supporting online + communities and special interest groups. A single Venice server will + support multiple SIGs, and all users authenticating themselves with the + Venice server will be able to join any SIG based on that server. + + SIGs support multiple features, the first of which will be Web-based linear + conferencing (along the lines of WellEngaged, UBB, and other conferencing + systems). Features to be added thereafter include instant messaging and + chat (which will be based on the Jabber open-source instant-messaging + system), calendars, link directories, e-mail newsletters, and possibly + advanced features such as collaborative databases and content creation/ + publishing. + +Implementation: + Venice is written in Java using Java Servlet and JSP technologies, and + runs under the Apache Tomcat applications server, release 3.2. It is + written to version 1.2.2 of the Java SDK (Java 2). It also employs the + Sun Java API for XML Parsing, the JavaMail API (and associated JavaBeans + Activation Framework), and the Apache LOG4J logging class library. It + uses MySQL 3.23 as a database back end, via the mm.mysql JDBC drivers. + +Licensing: + Venice is licensed under the terms of the Mozilla Public License, Version + 1.1. See the file LICENSE for details. + +History: + Venice's designed capabilities stem from the requirements for the Electric + Minds online community, which originally ran on the WellEngaged + conferencing software and was later ported to Durand Communications' + CommunityWare online community system (which later became the "WebbMe" + portal system of Webb Interactive Services). WebbMe will shut down at the + end of January 2001, leaving the community homeless; Venice is intended to + provide it with a permanent, open-source home. + +---------- + +Directory Structure: + doc/ - Documentation, notes, and images to be used later + etc/ - Configuration files + lib/ - .JAR files (this is where the mm.mysql driver lives) + setup/ - Files used in setup, notably the database initialization script + src/ - The source code itself + web/ - Web content and images + diff --git a/TODO b/TODO new file mode 100644 index 0000000..adcfcf8 --- /dev/null +++ b/TODO @@ -0,0 +1,50 @@ +Lots! + +- A bunch of the SIG-level functionality is not fully implemented. We need + invites, some admin functions, and the "Manage" button on the "top + content" window to work. + +- Should we provide the sysadmin the ability to disable SIG creation for + non-admin users? Maybe there needs to be a "global" set of levels that + aren't hardcoded. Where do they get stored? The database? + +- There's no system admin functionality AT ALL. We need to have this stuff + before we go live. (It plugs into the Administrative SIG features.) + +- Implement quick e-mail from the user profile display (engine support and + UI). + +- The whole "top" display thing needs a serious realignment. The present + system is a bit klunky and will be tough to implement Customize. We need + the capability to support JSP-based rendering in the individual "top" content + panes as well. + +- More SELECT queries that specify discrete columns need to start using + numeric indexes to retrieve the column data, instead of names. This will + make the retrieval process more efficient, and make for shorter SQL + statements in the case of joined queries (no need to SELECT table.column + AS name). + +- Getting conferencing in there - but still not there yet. We need topic and + post implementations, and UI. + +- Implement conference hotlist for users. + +- The HTML checker is back together and almost all integrated into the + Venice engine, but I still need to initialize the dictionary. It's going + to require configuration entries in the Venice XML config file, and the + use of LazyLexicon (to load the dictionary in the background while people + log in). + +- Not everybody likes purple. Provide a way to change the default colors. + Probably via entries in render-config.xml. Of course, if we go to a + different rendering system eventually, we won't need this. + +- Javadocs. Lots of javadocs. + +- I haven't explored the possibility of using Tomcat-Apache integration yet. + This is something I'd like to explore one day. We may need it for EMinds. + Actually, we probably will. + +- Continue pressing on. "Failure is not an option." + diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..3d372dc --- /dev/null +++ b/build.bat @@ -0,0 +1,30 @@ +@echo off +: The contents of this file are subject to the Mozilla Public License Version 1.1 +: (the "License"); you may not use this file except in compliance with the License. +; You may obtain a copy of the License at . +: +: Software distributed under the License is distributed on an "AS IS" basis, WITHOUT +: WARRANTY OF ANY KIND, either express or implied. See the License for the specific +: language governing rights and limitations under the License. +: +: The Original Code is the Venice Web Community System. +; +: The Initial Developer of the Original Code is Eric J. Bowersox , +: for Silverwrist Design Studios. Portions created by Eric J. Bowersox are +: Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. +: +; Contributor(s): +: + +set _CP=%CP% + +rem Identify the custom class path components we need +set CP=%TOMCAT_HOME%\lib\ant.jar;%TOMCAT_HOME%\lib\servlet.jar +set CP=%TOMCAT_HOME%\lib\jaxp.jar;%TOMCAT_HOME%\lib\parser.jar +set CP=%CP%;%JAVA_HOME%\lib\tools.jar + +rem Execute ANT to perform the requird build target +java -classpath %CP%;%CLASSPATH% org.apache.tools.ant.Main -Dtomcat.home=%TOMCAT_HOME% %1 %2 %3 %4 %5 %6 %7 %8 %9 + +set CP=%_CP% +set _CP= diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..26fbfb2 --- /dev/null +++ b/build.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# The contents of this file are subject to the Mozilla Public License Version 1.1 +# (the "License"); you may not use this file except in compliance with the License. +# You may obtain a copy of the License at . +# +# Software distributed under the License is distributed on an "AS IS" basis, WITHOUT +# WARRANTY OF ANY KIND, either express or implied. See the License for the specific +# language governing rights and limitations under the License. +# +# The Original Code is the Venice Web Community System. +# +# The Initial Developer of the Original Code is Eric J. Bowersox , +# for Silverwrist Design Studios. Portions created by Eric J. Bowersox are +# Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. +# +# Contributor(s): +# + +# Identify the custom class path components we need +CP=$TOMCAT_HOME/lib/ant.jar:$TOMCAT_HOME/lib/servlet.jar +CP=$CP:$TOMCAT_HOME/lib/jaxp.jar:$TOMCAT_HOME/lib/parser.jar +CP=$CP:$JAVA_HOME/lib/tools.jar + +# Execute ANT to perform the requested build target +java -classpath $CP:$CLASSPATH org.apache.tools.ant.Main \ + -Dtomcat.home=$TOMCAT_HOME "$@" diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..eccdc28 --- /dev/null +++ b/build.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/buttons/bn_blank80.png b/doc/buttons/bn_blank80.png new file mode 100644 index 0000000..100bbd6 Binary files /dev/null and b/doc/buttons/bn_blank80.png differ diff --git a/doc/buttons/bn_delete.png b/doc/buttons/bn_delete.png new file mode 100644 index 0000000..084742a Binary files /dev/null and b/doc/buttons/bn_delete.png differ diff --git a/doc/buttons/bn_go.png b/doc/buttons/bn_go.png new file mode 100644 index 0000000..dac836f Binary files /dev/null and b/doc/buttons/bn_go.png differ diff --git a/doc/buttons/bn_hide.png b/doc/buttons/bn_hide.png new file mode 100644 index 0000000..7739c59 Binary files /dev/null and b/doc/buttons/bn_hide.png differ diff --git a/doc/buttons/bn_post_go_next.png b/doc/buttons/bn_post_go_next.png new file mode 100644 index 0000000..4c87e8e Binary files /dev/null and b/doc/buttons/bn_post_go_next.png differ diff --git a/doc/buttons/bn_post_reload.png b/doc/buttons/bn_post_reload.png new file mode 100644 index 0000000..a3e1c39 Binary files /dev/null and b/doc/buttons/bn_post_reload.png differ diff --git a/doc/buttons/bn_preview.png b/doc/buttons/bn_preview.png new file mode 100644 index 0000000..dbfc130 Binary files /dev/null and b/doc/buttons/bn_preview.png differ diff --git a/doc/buttons/bn_save.png b/doc/buttons/bn_save.png new file mode 100644 index 0000000..49df817 Binary files /dev/null and b/doc/buttons/bn_save.png differ diff --git a/doc/buttons/bn_scribble.png b/doc/buttons/bn_scribble.png new file mode 100644 index 0000000..c7c4ef3 Binary files /dev/null and b/doc/buttons/bn_scribble.png differ diff --git a/doc/categorization.txt b/doc/categorization.txt new file mode 100644 index 0000000..76e5f29 --- /dev/null +++ b/doc/categorization.txt @@ -0,0 +1,366 @@ +CATEGORY SYSTEM FOR VENICE SIGS +(Based on the Mozilla Open Directory Project category system) + +Arts + Animation + Antiques -> Recreation:Antiques + Architecture + Art History + Body Art + Celebrities + Comics + Crafts + Dance + Design + Education + Entertainment + Graphic Design + Humanities + Illustration + Literature + Movies + Music + Myths and Folktales + Native and Tribal + Performing Arts + Photography + Radio + Television + Theatre + Typography + Video + Visual Arts + Writing +Business + Accounting + Advertising + Aerospace + Agriculture and Forestry + Apparel + Arts and Entertainment + Associations + Aviation + Business Services + Classifieds -> Shopping:Classifieds + Computers + Consulting + Construction and Maintenance + Electronics + Employment + Energy and Utilities + Environmental and Safety + Financial Services + Food and Related Products + Insurance + Internet Services + Investing + Law -> Society:Law + Management + Manufacturing + Marketing + Mining and Drilling + Printing + Publishing + Real Estate + Retail + Security + Small Business + Taxes + Training and Schools + Telecommunications + Transportation + Venture Capital +Computers + CAD + Computer Science + Consultants + Data Communications + Desktop Publishing + Education + Ethics + Fonts + Games -> Games:Video Games + Graphics + Hacking + Hardware + History + Internet + Multimedia + Open Source + Operating Systems + Programming + Robotics + Security + Shopping + Software + Systems +Games + Board Games + Card Games + Coin-op Games + Collectible Card Games -> Games:Trading Cards + Dice Games + Fantasy Sports -> Sports:Fantasy + Gambling + Game Creation Systems + Game Design + Hand Games + Internet + Party Games + Puzzles + Retailers -> Shopping:Toys and Games + Roleplaying + Sports -> Sports + Tile Games + Trading Cards + Video Games + Yard and Deck Games +Health + Aging + Alternative Medicine + Beauty + Children's Health + Conditions and Diseases + Dentistry + Disabilities -> Society:Disabled + Education + Fitness + Health Insurance -> Business:Insurance + Medicine + Men's Health + Mental Health + Nursing + Nutrition + Occupational Health and Safety + Pharmacy + Public Health and Safety + Reproductive Health + Seniors' Health + Services + Substance Abuse + Teen Health + Women's Health +Home + Apartment Living + Cooking + Do-It-Yourself + Emergency Preparation + Entertaining + Family + Gardens + Home Improvement + Homemaking + Homeowners + Kids + Moving and Relocating + Nursery + Pets -> Recreation:Pets + Personal Finance + Personal Organization + Relatives + Rural Living + Shopping -> Shopping + Urban Living +News + Alternative Media + Columnists + Current Events + Magazines + Media + Newspapers + Online + Politics + Satire + Weather +Recreation + Air Hockey + Amateur Radio + Antiques + Audio + Autos + Aviation + Birdwatching + Boating + Bowling -> Sports:Bowling + Climbing + Collecting + Crafts -> Arts:Crafts + Drugs + Food and Drink + Games -> Games + Gardens -> Home:Gardens + Genealogy -> Society:Genealogy + Guns + Hot Air Ballooning + Humor + Kites + Knives + Living History + Martial Arts -> Sports:Martial Arts + Models + Motorcycles + Nudism + Outdoors + Parties + Pets + Roads and Highways + Scouting + Smoking + Sports -> Sports + Theme Parks + Trains and Railroads + Travel +Reference & Education + Alumni + Colleges and Universities + Continuing Education + Corporate Training -> Business:Training and Schools + Distance Learning + International + K through 12 + Libraries + Museums + Special Education + Vocational Education +Regional + International + US +Science + Agriculture + Alternative Science + Astronomy + Biology + Chemistry + Earth Sciences + Environment + Mathematics + Physics + Science in Society + Social Siences + Space + Technology +Shopping + Antiques and Collectibles + Auctions + Books + Children + Classifieds + Clothing + Computers -> Computers:Shopping + Consumer Electronics + Crafts + Entertainment + Ethnic and Regional + Flowers + Food and Drink + Furniture + Gifts + Health and Beauty + Holidays + Home and Garden + Jewelry + Music + Niche + Office Products + Pets + Photography + Recreation and Hobbies + Religious + Sports + Tobacco + Tools + Toys and Games + Travel + Vehicles + Visual Arts + Weddings + Wholesale +Society + Activism + Advice + Crime + Death + Disabled + Ethnicity + Folklore + Future + Gay/Lesbian/Bisexual + Genealogy + Government + History + Holidays + Issues + Law + Lifestyle Choices + Military + Paranormal + People + Philosophy + Politics + Recovery and Support Groups + Relationships + Religion and Spirituality + Sexuality + Subcultures + Transgendered + Work +Sports + Archery + Badminton + Baseball + Basketball + Billiards + Boomerang + Bowling + Boxing + Cheerleading + Cricket + Croquet + Cycling + Darts + Equestrian + Extreme Sports + Fantasy + Fencing + Fishing + Flying Discs + Football + Golf + Greyhound Racing + Gymnastics + Handball + Hockey + Lacrosse + Laser Games + Lumberjack + Martial Arts + Motor Sports + Orienteering + Paintball + Racquetball + Rodeo + Roller Derby + Rope Skipping + Rugby + Running + Sailing + Shooting + Shopping -> Shopping:Sports + Skateboarding + Skating + Skiing + Sledding + Sled Dog Racing + Snowboarding + Soccer + Softball + Squash + Strength Sports + Table Tennis + Tennis + Track and Field + Volleyball + Walking + Water Sports + Winter Sports + Wrestling diff --git a/doc/design-goals.html b/doc/design-goals.html new file mode 100644 index 0000000..63d2ff4 --- /dev/null +++ b/doc/design-goals.html @@ -0,0 +1,64 @@ + + + + Doc: Design Goals for Venice Project + + + +

Design Goals for the Venice Project

+ Eric J. Bowersox <erbo@silcom.com> - + January 26, 2001

+ +

    +
  1. A replacement for the CommunityWare/WebbMe conferencing system
  2. +
  3. Java/JSP/servlets implementation running under Apache Tomcat, MySQL backend
  4. +
  5. Multiple SIGs (communities) hosted per server, each with multiple conferences + (and other features); users logged into one server can join multiple SIGs
  6. +
  7. Conferencing functionality similar to CW/WebbMe: +
      +
    • Linear topics composed of HTML messages
    • +
    • View topics by new messages/unread/all messages/hidden topics/archived topics
    • +
    • Topics can be deleted/archived/made read-only by the conference host
    • +
    • Topics can be hidden from a user's personal view
    • +
    • Individual posts can be "hidden" or "scribbled" by owner or conference host
    • +
    • Posts can be previewed, with spellchecking and HTML formatting
    • +
    • Files can be "attached" to posts (up to 1 Mb in size) +
    +
  8. +
  9. Enhancements to existing conference features: +
      +
    • Full text search of posts within a conference
    • +
    • Conference-level "bozo filters"
    • +
    • Individual posts can be "nuked" without a trace by the conference host
    • +
    +
  10. +
  11. Later, replace other CW/WebbMe functions: +
      +
    • Activity logs
    • +
    • Instant messaging and chat (use Jabber)
    • +
    • Calendaring
    • +
    • Newsletters via e-mail
    • +
    +
  12. +
  13. Features from CW/WebbMe we won't do: +
      +
    • Web hosting
    • +
    • Web-based email
    • +
    +
  14. +
  15. Blue sky features: +
      +
    • Output uses XML and gets formatted into [X]HTML via XSLT; "themeable"/"skinnable" interface
    • +
    • Conferencing/other functionality available via XML-RPC or SOAP calls
    • +
    • News page creation (see Slash, Squishdot, Scoop)
    • +
    • Member trust metrics (see Slashdot "karma," Scoop "mojo," Advogato distributed trust metric)
    • +
    • User diary pages (see Advogato, Kuro5hin)
    • +
    • Moderated discussions (see Slash, Scoop)
    • +
    • Collaborative database facility (see Wiki, Everything2)
    • +
    • Content management/distributed publishing
    • +
    +
  16. +
+ + + diff --git a/doc/graphic-notes.txt b/doc/graphic-notes.txt new file mode 100644 index 0000000..4c82658 --- /dev/null +++ b/doc/graphic-notes.txt @@ -0,0 +1,7 @@ +GRAPHIC NOTES + +Buttons +------- +Standard button size - 80x24 +Button background - Brushed metal (Golden gradient), 2-pixel Bevel edge +Button text - Helvetica Medium Narrow 12-point diff --git a/doc/identifiers.html b/doc/identifiers.html new file mode 100644 index 0000000..7b3ea9e --- /dev/null +++ b/doc/identifiers.html @@ -0,0 +1,46 @@ + + + + Doc: About Venice Identifiers + + + +

About Venice Identifiers

+ Eric J. Bowersox <erbo@silcom.com> - + January 26, 2001

+ + Venice identifiers are used for user IDs, SIG aliases, and conference aliases (and maybe other unique + identifiers in the future). A valid Venice ID consists of characters from the following character set + only: +

    +
  • Alphanumerics [A-Z, a-z, and 0-9]
  • +
  • Dash [-]
  • +
  • Underscore [_]
  • +
  • Tilde [~]
  • +
  • Asterisk [*]
  • +
  • Apostrophe [']
  • +
  • Dollar sign [$]
  • +

+ All characters are represented in the ISO 8859-1 character set. Also note that all Venice identifiers + are case-insensitive.

+ Rationale

+ The character set was defined starting with the list of characters allowable in URL path components + ("pchar" as defined in RFC 2396, section 3.3, page 14), so that Venice IDs would be usable as "path + information" in a URL.

+ The ampersand [&] was eliminated because of its possible confusion with a URL parameter separator, and + because it requires HTML escaping.

+ The at sign [@] was eliminated because of possible confusion with email addresses and Jabber IDs.

+ The plus sign [+] was eliminated because of possible confusion with a URL-encoded space character.

+ The comma [,] was eliminated because of its possible interpretation as a separator character.

+ The equals sign [=] was eliminated because of its possible confusion with a URL parameter/value + separator.

+ The colon [:] was withheld to provide for a possible future "namespace" expansion (as in XML + namespaces).

+ The parentheses [(, )] were eliminated because of possible confusion with user link syntax in + conferencing.

+ The period [.] was eliminated because of possible confusion with post link syntax in conferencing.

+ The exclamation point [!] was eliminated because of possible confusion with extended post link syntax in + conferencing. + + + diff --git a/doc/packages.txt b/doc/packages.txt new file mode 100644 index 0000000..93846d2 --- /dev/null +++ b/doc/packages.txt @@ -0,0 +1,29 @@ +JAVA PACKAGES USED BY VENICE SOURCE + +com.silverwrist - All packages + + com.silverwrist.util - Generic utility packages + + com.silverwrist.venice - Venice-specific code + + com.silverwrist.venice.core - Core Venice engine code + + com.silverwrist.venice.core.impl - Venice engine code implementation + + com.silverwrist.venice.db - Database-management code + + com.silverwrist.venice.htmlc - OLD html checker + + com.silverwrist.venice.htmlc.impl - OLD HTML checker + + com.silverwrist.venice.htmlcheck - The HTML Checker (interfaces, etc.) + + com.silverwrist.venice.htmlcheck.impl - HTML checker implementation + + com.silverwrist.venice.htmlcheck.filters - Standard filters + + com.silverwrist.venice.security - Security management and data + + com.silverwrist.venice.servlets - Java servlets at the top level + + com.silverwrist.venice.servlets.format - HTML output formatter diff --git a/doc/security-levels.html b/doc/security-levels.html new file mode 100644 index 0000000..ba782d5 --- /dev/null +++ b/doc/security-levels.html @@ -0,0 +1,179 @@ + + + + Doc: Security Levels in Venice + + + +

Security Levels in Venice

+ Eric J. Bowersox <erbo@silcom.com> - + January 26, 2001

+ + The security level system in Venice is based on a concept of "levels" represented by small 16-bit + integers. A number of different security "scope" values are defined, each with a "low band" and a + "high band" range of values, defined such that, for any scope level n (n>=0), + the "low band" range for scope n+1 is immediately adjacent to, but greater than, the "low + band" range for scope n, and the "high band" range for scope n+1 is immediately + adjacent to, but less than, the "high band" range for scope n. A table of scopes and their + ranges will help visualize this:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Scope Level"Low Band" Range"High Band" Range
00-199963000-64999
12000-399961000-62999
24000-599959000-60999
36000-799957000-58999
48000-999955000-56999
510000-1199953000-54999
612000-1399951000-52999
714000-1599949000-50999
816000-1799947000-48999
918000-1999945000-46999
1020000-2199943000-44999
1122000-2399941000-42999
1224000-2599939000-40999
1326000-2799937000-38999
1428000-2999935000-36999
1530000-3199933000-34999
+ + Within each scope level, a "low band" security level refers to an ordinary user at that scope, and a + "high band" security level refers to someone who exercises administrative control over that scope + (and therefore all scopes greater than or "inside" it). Objects which are logically "enclosed" by + other objects have a higher scope value; for instance, a conference would have a higher scope value + than a SIG, which in turn would have a higher scope value than 0 (the "global" scope).

+ The values 65000-65535 are not used, except that the value 65500 is defined as "no access" (something + not even the global system administrator can touch). Neither are the values 32000-32999, except that + the value 32500 is defined as "unrestricted user" (lying above the low bands of all scopes but below + the high bands of any of them).

+ Within the "global scope" (scope 0), the following values are defined: +

    +
  • 100 - User that has not logged in ("Anonymous Honyak")
  • +
  • 500 - User that has logged in, but email address is unverified
  • +
  • 1000 - User logged in and verified (normal user level)
  • +
  • 64000 - Assistant administrator accounts ("PFY" level)
  • +
  • 64999 - Global system administrator ("BOFH" level)
  • +

+ SIGs use the scope level 3; the following values are defined within that scope: +

    +
  • 6500 - SIG member
  • +
  • 58000 - SIG co-host
  • +
  • 58500 - SIG host
  • +

+ Within SIGs, conferences use scope 6; the following values are defined within that scope: +

    +
  • 12500 - Conference member (for private conferences)
  • +
  • 52500 - Conference host
  • +

+ Each user has a "base access" level, within scope 0, that is stored in the "users" table. Each SIG + has four defined access levels associated with it: +

    +
  • Read level - minimum access level required to read the SIG's data. This is commonly 6500 + (must be a member) but may be lower for special cases.
  • +
  • Write level - minimum access level required to write the SIG's data. Since this refers to + the SIG itself, this is commonly 58000 (hosts/co-hosts only)
  • +
  • Create level - minimum access level required to create new objects in the SIG. Typically + 58000 (hosts/co-hosts only).
  • +
  • Delete level - minimum access level required to delete the SIG. Typically 58500 (host + only).
  • +

+ The "sigmember" table maps UIDs to SIGIDs, adding a "granted level" field that specifies a given user's + access level within the SIG itself. (If a user already has a higher access level than the "granted" + access level, as in the case of the global sysadmin, the higher level takes precedence.) Note that + this level grant is within the context of that SIG only, and does not affect access privileges + to any other SIG.

+ Each conference has seven defined access levels associated with it: +

    +
  • Read level - minimum access level required to read the posts. Commonly 6500 (member of + community) for public confs, 12500 (conference member) for private confs.
  • +
  • Post level - minimum access level required to post new messages. Commonly 6500 (member of + community) for public confs, 12500 (member of conference) for private confs.
  • +
  • Create level - minimum access level required to create new topics. Commonly 6500 (member + of community) for public confs, 12500 (member of conference) for private confs.
  • +
  • Hide level - minimum access level required to archive topics, or hide posts of which you + are not the owner. Commonly 52500 (conference hosts only).
  • +
  • Nuke level - minimum access level required to scribble posts of which you are not the + owner, to nuke posts, or to delete topics. Commonly 52500 (conference hosts only).
  • +
  • Change level - minimum access level required to change the conference's profile or + membership list. Commonly 52500 (conference hosts only).
  • +
  • Delete level - minimum access level required to delete the conference. Commonly 58000 + (hosts/cohosts of the enclosing SIG only).
  • +

+ As with SIGs, there is a "confmember" table that maps UIDs to CONFIDs, adding a "granted level" field + that grants additional access privileges. (There is also a field in the table that maps conferences + into SIGs that allows a SIG to grant its users additional privileges within a conference. Normally, + this field is 0, and so it "drops out" of the calculation of access levels.) Note that, if a user has + no membership entry for a conference, the entry for the conference's enclosing SIG takes precedence, + or the base level if there is no entry in any enclosing SIG. Also note that a grant of level for a + conference or SIG only applies with respect to that conference or SIG, not any other.

+ Additional scopes and levels will be defined for additional objects as they are added to Venice.

+ + diff --git a/doc/tag_new.png b/doc/tag_new.png new file mode 100644 index 0000000..70a7626 Binary files /dev/null and b/doc/tag_new.png differ diff --git a/doc/venice-banner.xcf b/doc/venice-banner.xcf new file mode 100644 index 0000000..f8a22e4 Binary files /dev/null and b/doc/venice-banner.xcf differ diff --git a/etc/README.dict b/etc/README.dict new file mode 100644 index 0000000..48117d3 --- /dev/null +++ b/etc/README.dict @@ -0,0 +1,28 @@ +The file "webster2.dict" was produced from the word lists supplied as "web2" +and "web2a.gz" in the /usr/share/dict directory of the Debian "miscfiles" +package (GNU miscfiles version 1.2). The following commands were used to +produce this file: + +zcat /usr/share/dict/web2a.gz | fgrep -v ' ' > temp.dict +cat /usr/share/dict/web2 temp.dict | tr '[A-Z]' [a-z]' | sort \ + | uniq > webster2.dict +rm temp.dict + +"webster2.dict" is to be considered "freely redistributable," and is not +subject to the MPL as with the rest of Venice code. Herewith is the original +README for the dictionary: + +--- begin README --- +# $NetBSD: README,v 1.2 1997/03/26 07:14:32 mikel Exp $ +# @(#)README 8.1 (Berkeley) 6/5/93 + +WEB ---- (introduction provided by jaw@riacs) ------------------------- + +Welcome to web2 (Webster's Second International) all 234,936 words worth. +The 1934 copyright has elapsed, according to the supplier. The +supplemental 'web2a' list contains hyphenated terms as well as assorted +noun and adverbial phrases. The wordlist makes a dandy 'grep' victim. + + -- James A. Woods {ihnp4,hplabs}!ames!jaw (or jaw@riacs) +--- end README --- + diff --git a/etc/erbo.dict b/etc/erbo.dict new file mode 100644 index 0000000..d0c9b0f --- /dev/null +++ b/etc/erbo.dict @@ -0,0 +1,8 @@ +eminds +erbo +maddog +snarf +snarfage +utne +webb +webbme diff --git a/etc/logging-config.xml b/etc/logging-config.xml new file mode 100644 index 0000000..73e3080 --- /dev/null +++ b/etc/logging-config.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/render-config.xml b/etc/render-config.xml new file mode 100644 index 0000000..fbc4dc0 --- /dev/null +++ b/etc/render-config.xml @@ -0,0 +1,50 @@ + + + + + + Venice Test + + + + + + + + + + + Arial, Helvetica + + + + + + + http://delenn:8080/venice/ + + + http://delenn:8080/venice/images/ + + + http://delenn:8080/venice/images/powered-by-venice.gif + + + \ No newline at end of file diff --git a/etc/venice-config.xml b/etc/venice-config.xml new file mode 100644 index 0000000..800e084 --- /dev/null +++ b/etc/venice-config.xml @@ -0,0 +1,107 @@ + + + + + + + + + com.silverwrist.venice.core.impl.VeniceEngineImpl + + + + + + org.gjt.mm.mysql.Driver + + + jdbc:mysql://localhost/venice + + + venicedb + + + x00yes2K + + + 5 + + + 20 + + + + + + + + + janelane + + + nobody@delenn.silverwrist.internal + + + Venice AutoMail System v0.01 + + + + + /home/erbo/venice/WEB-INF/webster2.dict + /home/erbo/venice/WEB-INF/erbo.dict + + + + + + + +Welcome to the Venice conferencing system! In order to fully activate your +account after you register or change your E-mail address, you must provide a +confirmation number to the system. Please enter this number into the "Confirm +E-mail Address" dialog on the system when indicated. + +Your confirmation number for your account "$USERNAME" is $CONFNUM. + +Thank you, and enjoy the Venice conferencing system! + +-- The Management + + + + + +Here is the password reminder for your account "$USERNAME" as you requested: + +$REMINDER + +If this reminder is not sufficient for you to remember what your password is, +please contact the server administrator for further assistance. + +-- The Management + + + + diff --git a/etc/web.xml b/etc/web.xml new file mode 100644 index 0000000..c4e65e7 --- /dev/null +++ b/etc/web.xml @@ -0,0 +1,215 @@ + + + + + + Venice Web Community System + + The Venice Web conferencing system provides an online conferencing + environment, including discussions, online services, and other + things. Written by Eric J. Bowersox (erbo@silcom.com). + + + + + logging.config + /home/erbo/venice/WEB-INF/logging-config.xml + + The full path and file name of the LOG4J configuration file, which needs + to be loaded into LOG4J's DOMConfigurator at start-up. + + + + + venice.config + /home/erbo/venice/WEB-INF/venice-config.xml + + The full path and file name of the Venice engine configuration file, which + needs to be loaded into the Venice engine at start-up. + + + + + render.config + /home/erbo/venice/WEB-INF/render-config.xml + + The full path and file name of the Venice rendering configuration file, which + needs to be loaded into the Venice rendering system at start-up. + + + + + + top + + Displays the top-level page of the Venice application. + + com.silverwrist.venice.servlets.Top + + 3 + + + + account + + Displays the "accounts" page of the Venice application. + + com.silverwrist.venice.servlets.Account + + + + userdisplay + + Displays Venice user profiles. + + com.silverwrist.venice.servlets.UserDisplay + + + + sigfrontend + + The "front end" for SIG display; it redirects the user to whatever page has + been defined as the "default" for that SIG. + + com.silverwrist.venice.servlets.SIGFrontEnd + + + + sigprofile + + Displays the profile for a given SIG. + + com.silverwrist.venice.servlets.SIGProfile + + + + sigadmin + + SIG administration functions. + + com.silverwrist.venice.servlets.SIGAdmin + + + + sigoperations + + General SIG operations. + + com.silverwrist.venice.servlets.SIGOperations + + + + find + + The main Find page. + + com.silverwrist.venice.servlets.Find + + + + confoperations + + General conference operations. + + com.silverwrist.venice.servlets.ConfOperations + + + + confdisplay + + Conference topic list and topic display. + + com.silverwrist.venice.servlets.ConfDisplay + + + + + + testformdata + com.silverwrist.util.test.FormDataTest + + + + + top + /top + + + + account + /account + + + + userdisplay + /user/* + + + + sigfrontend + /sig/* + + + + sigprofile + /sigprofile + + + + sigadmin + /sigadmin + + + + sigoperations + /sigops + + + + find + /find + + + + confoperations + /confops + + + + confdisplay + /confdisp + + + + + testformdata + /testformdata + + + + + 60 + + + +