Bugzilla import
Added: trunk/web/reactos.org/htdocs/
Added: trunk/web/reactos.org/htdocs/bugzilla/
Added: trunk/web/reactos.org/htdocs/bugzilla/.htaccess
Added: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/.htaccess
Added: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Auth/ROSCMS.pm
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Config.pm
Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla.pm
Added: trunk/web/reactos.org/htdocs/bugzilla/data/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/.htaccess
Added: trunk/web/reactos.org/htdocs/bugzilla/data/duplicates/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/mail
Added: trunk/web/reactos.org/htdocs/bugzilla/data/mimedump-tmp/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/mining/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/nomail
Added: trunk/web/reactos.org/htdocs/bugzilla/data/params
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/account/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/account/auth/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/account/email/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/account/password/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/account/prefs/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/admin/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/admin/flag-type/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/admin/groups/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/admin/keywords/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/admin/products/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/admin/products/groupcontrol/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/attachment/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/bug/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/bug/activity/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/bug/create/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/bug/process/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/bug/votes/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/flag/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/global/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/list/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/pages/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/reports/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/request/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/template/template/en/default/search/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/webdot/
Added: trunk/web/reactos.org/htdocs/bugzilla/data/webdot/.htaccess
Modified: trunk/web/reactos.org/htdocs/bugzilla/defparams.pl
Added: trunk/web/reactos.org/htdocs/bugzilla/graphs/
Added: trunk/web/reactos.org/htdocs/bugzilla/template/.htaccess
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/account/prefs/account.html.tmpl
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/account/prefs/prefs.html.tmpl
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/banner.html.tmpl
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/footer.html.tmpl
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/header.html.tmpl
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/useful-links.html.tmpl
Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/index.html.tmpl
Modified: trunk/web/reactos.org/htdocs/bugzilla/userprefs.cgi

Copied: trunk/web/reactos.org/htdocs/bugzilla (from rev 18769, vendor/bugzilla/current)

Added: trunk/web/reactos.org/htdocs/bugzilla/.htaccess
--- vendor/bugzilla/current/.htaccess	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/.htaccess	2005-10-25 15:29:42 UTC (rev 18771)
@@ -0,0 +1,7 @@
+# don't allow people to retrieve non-cgi executable files or our private data
+<FilesMatch ^(.*\.pl|.*localconfig.*|runtests.sh)$>
+  deny from all
+</FilesMatch>
+<FilesMatch ^(localconfig.js|localconfig.rdf)$>
+  allow from all
+</FilesMatch>
Property changes on: trunk/web/reactos.org/htdocs/bugzilla/.htaccess
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/.htaccess
--- vendor/bugzilla/current/Bugzilla/.htaccess	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/.htaccess	2005-10-25 15:29:42 UTC (rev 18771)
@@ -0,0 +1,3 @@
+# nothing in this directory is retrievable unless overriden by an .htaccess
+# in a subdirectory
+deny from all
Property changes on: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/.htaccess
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Auth/ROSCMS.pm
--- vendor/bugzilla/current/Bugzilla/Auth/ROSCMS.pm	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Auth/ROSCMS.pm	2005-10-25 15:29:42 UTC (rev 18771)
@@ -0,0 +1,215 @@
+# -*- Mode: perl; indent-tabs-mode: nil -*-
+#
+# 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 Bugzilla Bug Tracking System.
+#
+# The Initial Developer of the Original Code is Netscape Communications
+# Corporation. Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All
+# Rights Reserved.
+#
+# Contributor(s): Terry Weissman <terry@mozilla.org>
+#                 Dan Mosedale <dmose@mozilla.org>
+#                 Joe Robins <jmrobins@tgix.com>
+#                 Dave Miller <justdave@syndicomm.com>
+#                 Christopher Aillon <christopher@aillon.com>
+#                 Gervase Markham <gerv@gerv.net>
+#                 Christian Reis <kiko@async.com.br>
+#                 Bradley Baetz <bbaetz@acm.org>
+
+package Bugzilla::Auth::ROSCMS;
+
+use strict;
+
+use URI;
+use URI::Escape;
+
+use Bugzilla::Config;
+use Bugzilla::Constants;
+use Bugzilla::Error;
+use Bugzilla::Util;
+
+my $session_cookie_name = "roscmsusrkey";
+my $roscms_db_name      = "roscms";
+my $roscms_login_page   = "/roscms/?page=login&target=";
+
+sub authenticate {
+    my ($class, $username, $passwd) = @_;
+
+    return (AUTH_NODATA) unless defined $username && defined $passwd;
+
+    # We're just testing against the db: any value is ok
+    trick_taint($username);
+
+    my $userid = $class->get_id_from_username($username);
+    return (AUTH_LOGINFAILED) unless defined $userid;
+
+    return (AUTH_LOGINFAILED, $userid) 
+        unless $class->check_password($userid, $passwd);
+
+    # The user's credentials are okay, so delete any outstanding
+    # password tokens they may have generated.
+    require Bugzilla::Token;
+    Bugzilla::Token::DeletePasswordTokens($userid, "user_logged_in");
+
+    # Account may have been disabled
+    my $disabledtext = $class->get_disabled($userid);
+    return (AUTH_DISABLED, $userid, $disabledtext)
+      if $disabledtext ne '';
+
+    return (AUTH_OK, $userid);
+}
+
+sub can_edit { return 1; }
+
+sub get_id_from_username {
+    my ($class, $username) = @_;
+    my $dbh = Bugzilla->dbh;
+    my $sth = $dbh->prepare_cached("SELECT userid FROM profiles " .
+                                   "WHERE login_name=?");
+    my ($userid) = $dbh->selectrow_array($sth, undef, $username);
+    return $userid;
+}
+
+sub get_disabled {
+    my ($class, $userid) = @_;
+    my $dbh = Bugzilla->dbh;
+    my $sth = $dbh->prepare_cached("SELECT disabledtext FROM profiles " .
+                                   "WHERE userid=?");
+    my ($text) = $dbh->selectrow_array($sth, undef, $userid);
+    return $text;
+}
+
+sub check_password {
+    my ($class, $userid, $passwd) = @_;
+    my $dbh = Bugzilla->dbh;
+    my $sth = $dbh->prepare_cached("SELECT cryptpassword FROM profiles " .
+                                   "WHERE userid=?");
+    my ($realcryptpwd) = $dbh->selectrow_array($sth, undef, $userid);
+
+    # Get the salt from the user's crypted password.
+    my $salt = $realcryptpwd;
+
+    # Using the salt, crypt the password the user entered.
+    my $enteredCryptedPassword = crypt($passwd, $salt);
+
+    return $enteredCryptedPassword eq $realcryptpwd;
+}
+
+sub change_password {
+    my ($class, $userid, $password) = @_;
+    my $dbh = Bugzilla->dbh;
+    my $cryptpassword = Crypt($password);
+    $dbh->do("UPDATE profiles SET cryptpassword = ? WHERE userid = ?", 
+             undef, $cryptpassword, $userid);
+}
+
+sub login {
+    my ($class, $type) = @_;
+
+    # 'NORMAL' logins depend on the 'requirelogin' param
+    if ($type == LOGIN_NORMAL) {
+        $type = Param('requirelogin') ? LOGIN_REQUIRED : LOGIN_OPTIONAL;
+    }
+
+    my $cgi = Bugzilla->cgi;
+
+    my $authres;
+    my $userid;
+    my $session_id = $cgi->cookie($session_cookie_name);
+    if (! defined($session_id)) {
+        $authres = AUTH_NODATA;
+    } else {
+        my $session_id_clean = $session_id;
+        trick_taint($session_id_clean);
+        my $remote_addr_clean;
+        if ($ENV{'REMOTE_ADDR'} =~ m/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/) {
+            $remote_addr_clean = $1;
+        } else {
+            $remote_addr_clean = 'invalid';
+        }
+        my $browser_agent_clean = $ENV{'HTTP_USER_AGENT'};
+        trick_taint($browser_agent_clean);
+        my $query = "SELECT m.map_subsys_userid " .
+                    "  FROM $roscms_db_name.user_sessions s, " .
+                    "       $roscms_db_name.users u, " .
+                    "       $roscms_db_name.subsys_mappings m " .
+                    " WHERE s.usersession_id = ? " .
+                    "   AND (s.usersession_expires IS NULL OR " .
+                    "        NOW() <= s.usersession_expires) " .
+                    "   AND u.user_id = s.usersession_user_id " .
+                    "   AND (u.user_setting_ipaddress = 'false' OR " .
+                    "        s.usersession_ipaddress = ?) " .
+                    "   AND (u.user_setting_browseragent = 'false' OR " .
+                    "        s.usersession_browseragent = ?) " .
+                    "   AND m.map_roscms_userid = s.usersession_user_id " .
+                    "   AND m.map_subsys_name = 'bugzilla'";
+        my @params = ($session_id_clean, $remote_addr_clean,
+                      $browser_agent_clean);
+        my $dbh = Bugzilla->dbh;
+        ($userid) = $dbh->selectrow_array($query, undef, @params);
+        if ($userid) {
+            $authres = AUTH_OK;
+
+            # Update time of last session use
+            $query = "UPDATE $roscms_db_name.user_sessions " .
+                     "   SET usersession_expires = DATE_ADD(NOW(), INTERVAL 30 MINUTE) " .
+                     " WHERE usersession_id = ? " .
+                     "   AND usersession_expires IS NOT NULL";
+            @params = ($session_id_clean);
+            $dbh->do($query, undef, @params);
+        } else {
+            $authres = AUTH_NODATA;
+        }
+    }
+
+    # We can load the page if the login was ok, or there was no data
+    # but a login wasn't required
+    if ($authres == AUTH_OK ||
+        ($authres == AUTH_NODATA && $type == LOGIN_OPTIONAL)) {
+
+        # login succeded, so we're done
+        return $userid;
+    }
+
+    # No login details were given, but we require a login if the
+    # page does
+    if ($authres == AUTH_NODATA && $type == LOGIN_REQUIRED) {
+        # Throw up the login page
+
+        my $this_uri = uri_escape($cgi->url(-absolute=>1, -path_info=>1,
+                                            -query=>1));
+        print $cgi->redirect($roscms_login_page .  $this_uri);
+        exit 0;
+    }
+
+    # If we get here, then we've run out of options, which shouldn't happen
+    ThrowCodeError("authres_unhandled", { authres => $authres,
+                                          type => $type, });
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Bugzilla::Auth::ROSCMS - ROSCMS authentication for Bugzilla
+
+=head1 SUMMARY
+
+This is an L<authentication module|Bugzilla::Auth/"AUTHENTICATION"> for
+Bugzilla, which logs the user in using the ROSCMS login system.
+
+=head1 SEE ALSO
+
+L<Bugzilla::Auth>
Property changes on: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Auth/ROSCMS.pm
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Config.pm
--- vendor/bugzilla/current/Bugzilla/Config.pm	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Config.pm	2005-10-25 15:29:42 UTC (rev 18771)
@@ -52,7 +52,8 @@
 # some point.
 
 our $libpath = '.';
-our $localconfig = "$libpath/localconfig";
+#our $localconfig = "$libpath/localconfig";
+our $localconfig = "/web/reactos.org/config/bugzilla-config";
 our $datadir = "$libpath/data";
 our $templatedir = "$libpath/template";
 our $webdotdir = "$datadir/webdot";

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla.pm
--- vendor/bugzilla/current/Bugzilla.pm	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla.pm	2005-10-25 15:29:42 UTC (rev 18771)
@@ -70,8 +70,8 @@
     # One day, we'll be able to log in via apache auth, an email message's
     # PGP signature, and so on
 
-    use Bugzilla::Auth::CGI;
-    my $userid = Bugzilla::Auth::CGI->login($type);
+    use Bugzilla::Auth::ROSCMS;
+    my $userid = Bugzilla::Auth::ROSCMS->login($type);
     if ($userid) {
         $_user = new Bugzilla::User($userid);
 
@@ -97,10 +97,10 @@
     }
     $option = LOGOUT_CURRENT unless defined $option;
 
-    use Bugzilla::Auth::CGI;
-    Bugzilla::Auth::CGI->logout($_user, $option);
+    use Bugzilla::Auth::ROSCMS;
+    Bugzilla::Auth::ROSCMS->logout($_user, $option);
     if ($option != LOGOUT_KEEP_CURRENT) {
-        Bugzilla::Auth::CGI->clear_browser_cookies();
+        Bugzilla::Auth::ROSCMS->clear_browser_cookies();
         logout_request();
     }
 }
@@ -109,8 +109,8 @@
     my ($class, $user) = @_;
     # When we're logging out another user we leave cookies alone, and
     # therefore avoid calling logout() directly.
-    use Bugzilla::Auth::CGI;
-    Bugzilla::Auth::CGI->logout($user, LOGOUT_ALL);
+    use Bugzilla::Auth::ROSCMS;
+    Bugzilla::Auth::ROSCMS->logout($user, LOGOUT_ALL);
 }
 
 # just a compatibility front-end to logout_user that gets a user by id
@@ -127,7 +127,7 @@
     # XXX clean these up eventually
     delete $::COOKIE{"Bugzilla_login"};
     # NB - Can't delete from $cgi->cookie, so the logincookie data will
-    # remain there; it's only used in Bugzilla::Auth::CGI->logout anyway
+    # remain there; it's only used in Bugzilla::Auth::ROSCMS->logout anyway
     # People shouldn't rely on the cookie param for the username
     # - use Bugzilla->user instead!
 }

Added: trunk/web/reactos.org/htdocs/bugzilla/data/.htaccess
--- vendor/bugzilla/current/data/.htaccess	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/data/.htaccess	2005-10-25 15:29:42 UTC (rev 18771)
@@ -0,0 +1,7 @@
+# nothing in this directory is retrievable unless overriden by an .htaccess
+# in a subdirectory; the only exception is duplicates.rdf, which is used by
+# duplicates.xul and must be loadable over the web
+deny from all
+<Files duplicates.rdf>
+  allow from all
+</Files>
Property changes on: trunk/web/reactos.org/htdocs/bugzilla/data/.htaccess
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/web/reactos.org/htdocs/bugzilla/data/mail
Property changes on: trunk/web/reactos.org/htdocs/bugzilla/data/mail
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/web/reactos.org/htdocs/bugzilla/data/nomail
Property changes on: trunk/web/reactos.org/htdocs/bugzilla/data/nomail
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/web/reactos.org/htdocs/bugzilla/data/params
--- vendor/bugzilla/current/data/params	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/data/params	2005-10-25 15:29:42 UTC (rev 18771)
@@ -0,0 +1,160 @@
+%param = (
+           'LDAPBaseDN' => '',
+           'LDAPbinddn' => '',
+           'LDAPfilter' => '',
+           'LDAPmailattribute' => 'mail',
+           'LDAPserver' => '',
+           'LDAPuidattribute' => 'uid',
+           'allowbugdeletion' => 0,
+           'allowemailchange' => 0,
+           'allowuserdeletion' => 0,
+           'bonsai_url' => '',
+           'browserbugmessage' => 'this may indicate a bug in your browser.',
+           'chartgroup' => 'editbugs',
+           'commentonaccept' => 0,
+           'commentonclearresolution' => 0,
+           'commentonclose' => 1,
+           'commentonconfirm' => 0,
+           'commentoncreate' => 0,
+           'commentonduplicate' => 0,
+           'commentonreassign' => 0,
+           'commentonreassignbycomponent' => 0,
+           'commentonreopen' => 1,
+           'commentonresolve' => 1,
+           'commentonverify' => 0,
+           'confirmuniqueusermatch' => 1,
+           'cookiepath' => '/',
+           'createemailregexp' => '.*',
+           'cvsroot' => '',
+           'cvsroot_get' => '',
+           'defaultlanguage' => 'en',
+           'defaultpriority' => 'P3',
+           'defaultquery' => 'bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailqa_contact2=1&order=Importance&long_desc_type=substring',
+           'emailregexp' => '^[\\w\\.\\+\\-=]+@[\\w\\.\\-]+\\.[\\w\\-]+$',
+           'emailregexpdesc' => 'A legal address must contain exactly one \'@\', and at least one \'.\' after the @.',
+           'emailsuffix' => '',
+           'enablequips' => 'on',
+           'insidergroup' => '',
+           'languages' => 'en',
+           'letsubmitterchoosepriority' => 0,
+           'loginmethod' => 'ROSCMS',
+           'loginnetmask' => '32',
+           'lxr_root' => '',
+           'lxr_url' => '',
+           'maintainer' => 'gvg@reactos.org',
+           'makeproductgroups' => 0,
+           'maxattachmentsize' => '1000',
+           'maxpatchsize' => '1000',
+           'maxusermatches' => '1000',
+           'mostfreqthreshold' => '2',
+           'move-button-text' => 'Move To Bugscape',
+           'move-enabled' => 0,
+           'move-to-address' => 'bugzilla-import',
+           'move-to-url' => '',
+           'moved-default-component' => '',
+           'moved-default-product' => '',
+           'moved-from-address' => 'bugzilla-admin',
+           'movers' => '',
+           'musthavemilestoneonaccept' => 0,
+           'mybugstemplate' => 'buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=%userid%&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1',
+           'newchangedmail' => 'From: ReactOS Bugzilla
+To: %to%
+Subject: [Bug %bugid%] %neworchanged%%summary%
+X-Bugzilla-Reason: %reasonsheader%
+
+%urlbase%show_bug.cgi?id=%bugid%
+
+%diffs%
+
+--%space%
+Configure bugmail: %urlbase%userprefs.cgi?tab=email
+%reasonsbody%',
+           'noresolveonopenblockers' => 0,
+           'passwordmail' => 'From: ReactOS Bugzilla
+To: %mailaddress%
+Subject: Your Bugzilla password.
+
+To use the wonders of Bugzilla, you can use the following:
+
+ E-mail address: %login%
+       Password: %password%
+
+ To change your password, go to:
+ %urlbase%userprefs.cgi
+',
+           'rememberlogin' => 'defaulton',
+           'requirelogin' => '0',
+           'sendmailnow' => 1,
+           'shadowdb' => '',
+           'shadowdbhost' => '',
+           'shadowdbport' => '3306',
+           'shadowdbsock' => '',
+           'shutdownhtml' => '',
+           'supportwatchers' => 0,
+           'timetrackinggroup' => '',
+           'timezone' => 'CET',
+           'urlbase' => 'http://www.reactos.org/bugzilla/',
+           'usebrowserinfo' => '0',
+           'usebugaliases' => 0,
+           'useentrygroupdefault' => 0,
+           'useqacontact' => 1,
+           'usermatchmode' => 'off',
+           'usestatuswhiteboard' => 0,
+           'usetargetmilestone' => '1',
+           'usevotes' => '0',
+           'voteremovedmail' => 'From: ReactOS Bugzilla
+To: %to%
+Subject: [Bug %bugid%] Some or all of your votes have been removed.
+
+Some or all of your votes have been removed from bug %bugid%.
+
+%votesoldtext%
+
+%votesnewtext%
+
+Reason: %reason%
+
+%urlbase%show_bug.cgi?id=%bugid%
+',
+           'webdotbase' => 'http://www.research.att.com/~north/cgi-bin/webdot.cgi/%urlbase%',
+           'whinedays' => 7,
+           'whinemail' => 'From: %maintainer%
+To: %email%
+Subject: Your Bugzilla buglist needs attention.
+
+[This e-mail has been automatically generated.]
+
+You have one or more bugs assigned to you in the Bugzilla 
+bugsystem (%urlbase%) that require
+attention.
+
+All of these bugs are in the NEW or REOPENED state, and have not
+been touched in %whinedays% days or more.  You need to take a look
+at them, and decide on an initial action.
+
+Generally, this means one of three things:
+
+(1) You decide this bug is really quick to deal with (like, it\'s INVALID),
+    and so you get rid of it immediately.
+(2) You decide the bug doesn\'t belong to you, and you reassign it to someone
+    else.  (Hint: if you don\'t know who to reassign it to, make sure that
+    the Component field seems reasonable, and then use the "Reassign bug to
+    owner of selected component" option.)
+(3) You decide the bug belongs to you, but you can\'t solve it this moment.
+    Just use the "Accept bug" command.
+
+To get a list of all NEW/REOPENED bugs, you can use this URL (bookmark
+it if you like!):
+
+ %urlbase%buglist.cgi?bug_status=NEW&bug_status=REOPENED&assigned_to=%userid%
+
+Or, you can use the general query page, at
+%urlbase%query.cgi.
+
+Appended below are the individual URLs to get to all of your NEW bugs that
+haven\'t been touched for a week or more.
+
+You will get this message once a day until you\'ve dealt with these bugs!
+
+'
+         );
Property changes on: trunk/web/reactos.org/htdocs/bugzilla/data/params
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/web/reactos.org/htdocs/bugzilla/data/webdot/.htaccess
--- vendor/bugzilla/current/data/webdot/.htaccess	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/data/webdot/.htaccess	2005-10-25 15:29:42 UTC (rev 18771)
@@ -0,0 +1,15 @@
+# Restrict access to .dot files to the public webdot server at research.att.com 
+# if research.att.com ever changed their IP, or if you use a different
+# webdot server, you'll need to edit this
+<FilesMatch \.dot$>
+  Allow from 192.20.225.10
+  Deny from all
+</FilesMatch>
+
+# Allow access to .png files created by a local copy of 'dot'
+<FilesMatch \.png$>
+  Allow from all
+</FilesMatch>
+
+# And no directory listings, either.
+Deny from all
Property changes on: trunk/web/reactos.org/htdocs/bugzilla/data/webdot/.htaccess
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/web/reactos.org/htdocs/bugzilla/defparams.pl
--- vendor/bugzilla/current/defparams.pl	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/defparams.pl	2005-10-25 15:29:42 UTC (rev 18771)
@@ -146,6 +146,8 @@
         return "Error requiring Net::LDAP: '$@'" if $@;
         return "LDAP servername is missing" unless Param("LDAPserver");
         return "LDAPBaseDN is empty" unless Param("LDAPBaseDN");
+    } elsif ($method eq 'ROSCMS') {
+        # No params
     } else {
         return "Unknown loginmethod '$method' in check_loginmethod";
     }
@@ -448,9 +450,13 @@
                 information. Using this method requires additional parameters
                 to be set above.
               </dd>
+              <dt>ROSCMS</dt>
+              <dd>
+                Use the ROSCMS login system.
+              </dd>
              </dl>',
    type => 's',
-   choices => [ 'DB', 'LDAP' ],
+   choices => [ 'DB', 'LDAP', 'ROSCMS' ],
    default => 'DB',
    checker => \&check_loginmethod
   },

Added: trunk/web/reactos.org/htdocs/bugzilla/template/.htaccess
--- vendor/bugzilla/current/template/.htaccess	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/.htaccess	2005-10-25 15:29:42 UTC (rev 18771)
@@ -0,0 +1,3 @@
+# nothing in this directory is retrievable unless overriden by an .htaccess
+# in a subdirectory
+deny from all
Property changes on: trunk/web/reactos.org/htdocs/bugzilla/template/.htaccess
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/account/prefs/account.html.tmpl
--- vendor/bugzilla/current/template/en/default/account/prefs/account.html.tmpl	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/account/prefs/account.html.tmpl	2005-10-25 15:29:42 UTC (rev 18771)
@@ -25,74 +25,10 @@
   # new_login_name:    string. The user's new Bugzilla login whilst not confirmed. (optional)
   #%]
 
-<table>
-  <tr>
-    <td colspan="3">
-      Please enter your existing password to confirm account changes.
-    </td>
-  </tr>
-  <tr>
-    <th align="right">Password:</th>
-    <td>
-      <input type="hidden" name="Bugzilla_login" 
-             value="[% user.login FILTER html %]">
-      <input type="password" name="Bugzilla_password">
-    </td>
-  </tr>              
-  <tr>
-    <td colspan="2"><hr></td>
-  </tr>
-
-  <tr>
-    <th align="right">New password:</th>
-    <td>
-      <input type="password" name="new_password1">
-    </td>
-  </tr>              
-
-  <tr>
-    <th align="right">Re-enter new password:</th>
-    <td>
-      <input type="password" name="new_password2">
-    </td>
-  </tr>              
-
-  <tr>
-    <th align="right">Your real name (optional, but encouraged):</th>
-    <td>
-      <input size="35" name="realname" value="[% realname FILTER html %]">
-    </td>
-  </tr>  
-
-  [% IF Param('allowemailchange') %]
-    [% IF login_change_date %]
-      [% IF new_login_name %]
-        <tr>
-          <th align="right">Pending email address:</th>
-          <td>[% new_login_name FILTER html %]</td>
-        </tr>
-        <tr>
-          <th align="right">Change request expires:</th>
-          <td>[% login_change_date FILTER time %]</td>
-        </tr>
-      [% ELSE %]
-        <tr>
-          <th align="right">Confirmed email address:</th>
-          <td>[% user.login FILTER html %]</td>
-        </tr>
-        <tr>
-          <th align="right">Completion date:</th>
-          <td>[% login_change_date FILTER time %]</td>
-        </tr>
-      [% END %]
-    [% ELSE %]
-      <tr>
-        <th align="right">New email address:</th>
-        <td>
-          <input size="35" name="new_login_name">
-        </td>
-      </tr>
-    [% END %]
-  [% END %]
-  
-</table>
+You can change your account settings (password, email address etc.)
+<a href="/roscms/?page=user">in myReactOS</a><br>
+<br>
+<br>
+<br>
+<br>
+<br>

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/account/prefs/prefs.html.tmpl
--- vendor/bugzilla/current/template/en/default/account/prefs/prefs.html.tmpl	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/account/prefs/prefs.html.tmpl	2005-10-25 15:29:42 UTC (rev 18771)
@@ -34,7 +34,7 @@
   #                message if required (which Perl still evaluates as True).
   #%]
 
-[% filtered_login = user.login FILTER html %]
+[% filtered_login = user.name FILTER html %]
 [% PROCESS global/header.html.tmpl
    title = "User Preferences"
    h2 = filtered_login
@@ -49,7 +49,7 @@
  %]
 
 [% tabs = [ { name => "account", description => "Account settings", 
-              saveable => "1" },
+              saveable => "0" },
             { name => "email", description => "Email settings", 
               saveable => "1" },
             { name => "saved-searches", description => "Saved searches", 

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/banner.html.tmpl
--- vendor/bugzilla/current/template/en/default/global/banner.html.tmpl	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/banner.html.tmpl	2005-10-25 15:29:42 UTC (rev 18771)
@@ -1,5 +1,8 @@
 [%# 1.0@bugzilla.org %]
-[%# The contents of this file are subject to the Mozilla Public
+[%# Based on mozilla.org template/en/default/global/footer.html.tmpl
+  # Adjusted for roscms by Ge van Geldorp <gvg@reactos.org>
+  #
+  # 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/
@@ -24,15 +27,3 @@
 [%# Migration note: this file corresponds to the old Param 'bannerhtml' %]
 
 [% PROCESS global/variables.none.tmpl %]
-
-    <div id="banner">
-    <div class="intro"></div>
-      <p id="banner-name">
-        <span>This is [% terms.Bugzilla %]</span>
-      </p>
-      <p id="banner-version">
-        <a href="http://www.bugzilla.org/"><span>Bugzilla</span></a>
-        <span>Version [% VERSION %]</span>
-      </p>
-    <div class="outro"></div>
-    </div>

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/footer.html.tmpl
--- vendor/bugzilla/current/template/en/default/global/footer.html.tmpl	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/footer.html.tmpl	2005-10-25 15:29:42 UTC (rev 18771)
@@ -1,5 +1,8 @@
 [%# 1.0@bugzilla.org %]
-[%# The contents of this file are subject to the Mozilla Public
+[%# Based on mozilla.org template/en/default/global/footer.html.tmpl
+  # Adjusted for roscms by Ge van Geldorp <gvg@reactos.org>
+  #
+  # 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/
@@ -43,5 +46,21 @@
   <div class="outro"></div>
 </div>
 
+</div>
+</td>
+</tr>
+</table>
+
+<!--
+     links/lynx/etc.. dont handle css (atleast not external
+     files by default) so dont overly depend on it.
+ -->
+<hr size="1">
+
+<address>
+ <p align="center">
+  ReactOS is a trademark of ReactOS Foundation in the United States and other countries.
+ </p>
+</address>
 </body>
-</html>
+</html>									

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/header.html.tmpl
--- vendor/bugzilla/current/template/en/default/global/header.html.tmpl	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/header.html.tmpl	2005-10-25 15:29:42 UTC (rev 18771)
@@ -1,5 +1,8 @@
 [%# 1.0@bugzilla.org %]
-[%# The contents of this file are subject to the Mozilla Public
+[%# Based on mozilla.org template/en/default/global/footer.html.tmpl
+  # Adjusted for roscms by Ge van Geldorp <gvg@reactos.org>
+  #
+  # 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/
@@ -59,9 +62,9 @@
 [% IF !h1.defined %][% h1 = title %][% END %]
 
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
+<html lang="en">
   <head>
-    <title>[% title FILTER html %]</title>
+    <title>ReactOS Homepage - [% title FILTER html %]</title>
 
 [%# Migration note: contents of the old Param 'headerhtml' would go here %]
 
@@ -81,7 +84,8 @@
 
     [%+ INCLUDE "global/help-header.html.tmpl" %]
 
-    <link href="css/global.css" rel="stylesheet" type="text/css">
+    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+    <link href="/style.css" type="text/css" rel="stylesheet">
 
     [% IF style %]
       <style type="text/css">
@@ -102,12 +106,100 @@
   #%]
 
   <body bgcolor="[% bgcolor %]" onload="[% onload %]"
-        class="[% Param('urlbase').replace('^https?://','').replace('/$','').replace('[-~@:/.]+','-') %]
-               [% FOREACH class = bodyclasses %]
-                 [% ' ' %][% class FILTER css_class_quote %]
-               [% END %]"
-        [% bodyattrs %]>
+    [% IF bodyclasses %]
+      class="
+        [% FOREACH class = bodyclasses %]
+          [% ' ' %][% class FILTER css_class_quote %]
+        [% END %]"
+    [% END %]
+  [% bodyattrs %]>
 
+<div id="top">
+  <div id="topMenu"> 
+    <!-- 
+       Use <p> to align things for links/lynx, then in the css make it
+	   margin: 0; and use text-align: left/right/etc;.
+   -->
+	<p align="center"> 
+		<a href="/?page=index">Home</a> <font color="#ffffff">|</font> 
+		<a href="/?page=community">Community</a> <font color="#ffffff">|</font> 
+		<a href="/?page=support">Support</a> <font color="#ffffff">|</font> 
+		<a href="/?page=dev">Development</a> <font color="#ffffff">|</font> 
+		<a href="/roscms/?page=user">myReactOS</a> </p>
+	 </div>
+	</div>
+
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+    <td width="147" id="leftNav"> 
+      <div class="navTitle">Navigation</div>
+   <ol>
+        <li><a href="/?page=index">Home</a></li>
+        <li><a href="/?page=community">Community</a></li>
+        <li><a href="/?page=support">Support</a></li>
+        <li><a href="/?page=dev">Development</a></li>
+	<li><a href="/roscms/?page=user">myReactOS</a></li>
+      </ol>
+   <p></p>
+			
+<div class="navTitle">Bugzilla</div>
+      <ol>
+        <li><a href="/bugzilla">Main Page</a></li>
+        <li><a href="/bugzilla/enter_bug.cgi">New</a></li>
+        <li><a href="/bugzilla/query.cgi">Search</a></li>
+        <li><a href="/bugzilla/report.cgi">Reports</a></li>
+        <li><a href="/bugzilla/request.cgi">Requests</a></li>
+      </ol>
+      <p></p>
+
+[%# TODO we don't support switching languages yet
+<div class="navTitle">Language</div>   
+      <ol>
+        <li> 
+          <div align="center"> 
+            <select id="select" size="1" name="select" class="selectbox" onchange="window.open(this.options[this.selectedIndex].value,'_main')">
+              <optgroup label="current language"> 
+              <option value="#" selected="selected">English</option>
+              </optgroup>
+              <optgroup label="most popular"> 
+              <option value="http://www.reactos.org/./[#inc_path_lang]../en/developer.htm">English</option>
+              <option value="http://www.reactos.org/./[#inc_path_lang]../de/developer.htm">Deutsch</option>
+              <option value="http://www.reactos.org/./[#inc_path_lang]../fr/developer.htm">Fran?ºais</option>
+              </optgroup>
+              <optgroup label="other languages"> 
+              <option value="#">&lt;placeholder&gt;</option>
+              </optgroup>
+            </select>
+          </div>
+        </li>
+      </ol>
+      <p></p>
+%]
+
+<div class="navTitle">Account</div>
+      <ol>
+        [% IF user %]
+        <li><a href="/roscms/?page=logout">Logout [% user.name %]</a></li>
+        [% ELSE %]
+        <li><a href="/roscms/?page=login&amp;target=%2Fbugzilla">Login</a></li>
+        [% END %]
+        <li><a href="/roscms/?page=register&amp;target=%2Fbugzilla">Register</a></li>
+      </ol>
+      <p></p>
+												
+[%# TODO Haven't found a way to get the latest update info
+<div class="navTitle">Latest Update</div>   
+      <ol>
+        <li><div align="center">2005-08-21 15:16<br>$ test: rev.1 $</div></li>
+      </ol>      
+      <p> </p>
+%]
+      </td>
+
+<td id="bugzillaContent">
+<div class="contentSmall">
+<span class="contentSmallTitle">ReactOS bug tracking and reporting</span>
+
 [%# Migration note: the following file corresponds to the old Param
   # 'bannerhtml'
   #%]

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/useful-links.html.tmpl
--- vendor/bugzilla/current/template/en/default/global/useful-links.html.tmpl	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/useful-links.html.tmpl	2005-10-25 15:29:42 UTC (rev 18771)
@@ -53,13 +53,11 @@
         [% IF user.login %] 
             [% ' | <a href="sanitycheck.cgi">Sanity&nbsp;check</a>' 
                                                   IF user.groups.tweakparams %]
-            | <a href="relogin.cgi">Log&nbsp;out</a>&nbsp;
-              [% user.login FILTER html %]
         [% ELSE %]
             [% IF Param('createemailregexp') %]
-              | <a href="createaccount.cgi">New&nbsp;Account</a>
+              | <a href="/roscms/?page=register&amp;target=%2Fbugzilla">Register&nbsp;Account</a>
             [% END %]
-            | <a href="query.cgi?GoAheadAndLogIn=1">Log&nbsp;In</a>
+            | <a href="/roscms/?page=login&amp;target=%2Fbugzilla">Log&nbsp;In</a>
         [% END %]
     </div>
   </div>

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/index.html.tmpl
--- vendor/bugzilla/current/template/en/default/index.html.tmpl	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/index.html.tmpl	2005-10-25 15:29:42 UTC (rev 18771)
@@ -1,6 +1,9 @@
 [%# 1.0@bugzilla.org %]
 [%# -*- mode: html -*- %]
-[%# The contents of this file are subject to the Mozilla Public
+[%# Based on mozilla.org template/en/default/index.html.tmpl
+  # Adjusted for roscms by Ge van Geldorp <gvg@reactos.org>
+  #
+  # 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/
@@ -33,27 +36,6 @@
 [% PROCESS global/header.html.tmpl %]
 
 
-<script type="text/javascript" language="JavaScript">
-<!--
-function addSidebar() {
-  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function"))
-  {
-    var sidebarname=window.location.host;
-    if (!/bug/i.test(sidebarname))
-      sidebarname="[% terms.Bugzilla %] "+sidebarname;
-    window.sidebar.addPanel (sidebarname, "[% Param('urlbase') %]sidebar.cgi", "");
-  }
-  else
-  {
-    var rv = window.confirm ("Your browser does not support the sidebar extension.  " + "Would you like to upgrade now?");
-    if (rv)
-      document.location.href = "http://www.mozilla.org/binaries.html";
-  }
-}
-//-->
-</script>
-
-
 <table width="100%"><tr>
  <td>
   <p>This is where we put in lots of nifty words explaining all about [% terms.Bugzilla %].</p>
@@ -64,17 +46,10 @@
   <a href="enter_bug.cgi">Enter a new [% terms.bug %] report</a><br>
   <a href="report.cgi">Summary reports and charts</a><br>
   </p><p>
-[% IF user.id %]
-  <a href="userprefs.cgi">Change password or user preferences</a><br>
-  <a href="relogin.cgi">Logout [% user.login FILTER html %]</a><br>
-[% ELSE %]
-  <a href="query.cgi?GoAheadAndLogIn=1">Log in to an existing account</a><br>
-  [% IF Param('createemailregexp') %]
-    <a href="createaccount.cgi">Open a new [% terms.Bugzilla %] account</a><br>
-  [% END %]
+[% IF NOT user.id %]
+  <a href="/roscms/?page=login&amp;target=%2Fbugzilla">Log in to an existing account</a><br>
+  <a href="/roscms/?page=register&amp;target=%2Fbugzilla">Register a new account</a><br>
 [% END %]
-  </p><p>
-  <a href="javascript:addSidebar()">Add to Sidebar</a> (Requires Mozilla or Netscape 6)<br>
   </p>
   <form name="f" action="show_bug.cgi" method="get"
       onsubmit="QuickSearch(f.id.value); return false;">

Modified: trunk/web/reactos.org/htdocs/bugzilla/userprefs.cgi
--- vendor/bugzilla/current/userprefs.cgi	2005-10-25 15:06:23 UTC (rev 18769)
+++ trunk/web/reactos.org/htdocs/bugzilla/userprefs.cgi	2005-10-25 15:29:42 UTC (rev 18771)
@@ -68,75 +68,7 @@
     }
 }
 
-sub SaveAccount {
-    my $cgi = Bugzilla->cgi;
 
-    my $pwd1 = $cgi->param('new_password1');
-    my $pwd2 = $cgi->param('new_password2');
-
-    if ($cgi->param('Bugzilla_password') ne "" || 
-        $pwd1 ne "" || $pwd2 ne "") 
-    {
-        my $old = SqlQuote($cgi->param('Bugzilla_password'));
-        SendSQL("SELECT cryptpassword FROM profiles WHERE userid = $userid");
-        my $oldcryptedpwd = FetchOneColumn();
-        $oldcryptedpwd || ThrowCodeError("unable_to_retrieve_password");
-
[truncated at 1000 lines; 66 more skipped]