diff options
-rw-r--r-- | support/schema/aur-schema.sql | 2 | ||||
-rw-r--r-- | web/README.txt | 45 | ||||
-rw-r--r-- | web/html/account.php | 406 | ||||
-rw-r--r-- | web/html/css/containers.css | 1 | ||||
-rw-r--r-- | web/html/index.php | 13 | ||||
-rw-r--r-- | web/lang/account_po.inc | 185 | ||||
-rw-r--r-- | web/lang/aur_po.inc | 15 | ||||
-rw-r--r-- | web/lang/common_po.inc | 55 | ||||
-rw-r--r-- | web/lang/common_po.list | 11 | ||||
-rw-r--r-- | web/lang/index_po.inc | 15 | ||||
-rw-r--r-- | web/lib/aur.inc | 77 |
11 files changed, 809 insertions, 16 deletions
diff --git a/support/schema/aur-schema.sql b/support/schema/aur-schema.sql index ab00845..8ed407c 100644 --- a/support/schema/aur-schema.sql +++ b/support/schema/aur-schema.sql @@ -22,6 +22,7 @@ CREATE TABLE Users ( ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, AccountTypeID TINYINT UNSIGNED NOT NULL DEFAULT 1, Suspended TINYINT UNSIGNED NOT NULL DEFAULT 0, + Username CHAR(32) NOT NULL, Email CHAR(64) NOT NULL, Passwd CHAR(32) NOT NULL, RealName CHAR(64) NOT NULL DEFAULT '', @@ -30,6 +31,7 @@ CREATE TABLE Users ( LastVoted BIGINT UNSIGNED NOT NULL DEFAULT 0, NewPkgNotify TINYINT UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY (ID), + UNIQUE (Username), UNIQUE (Email), INDEX (AccountTypeID), INDEX (NewPkgNotify), diff --git a/web/README.txt b/web/README.txt index dbc3c6d..938504a 100644 --- a/web/README.txt +++ b/web/README.txt @@ -1,3 +1,48 @@ +Setup on ArchLinux: +=================== +1) Install Apache, MySQL, PHP, and Subversion + # pacman -Sy apache mysql php subversion + +2) Set a local 'hostname' of 'aur' + - Edit /etc/hosts and append 'aur' to loopback address + 127.0.0.1 localhost aur + +3) Configure Apache + - Edit /etc/httpd/conf/httpd.conf and append the following: + Replace MYUSER with your username. + + <VirtualHost aur:80> + Servername aur + DocumentRoot /home/MYUSER/aur/web/html + ErrorLog /var/log/httpd/aur-error.log + CustomLog /var/log/httpd/aur-access.log combined + <Directory /home/MYUSER/aur/web/html> + Options Indexes FollowSymLinks + AllowOverride All + </Directory> + </VirtualHost> + +4) Configure PHP + - Edit /etc/php.ini and uncomment the mysql extension line: + extension=mysql.so + +5) Configure MySQL + - Connect to the mysql client + # mysql -uroot + + - Issue the following commands to the mysql client + mysql> create database AUR; + mysql> grant all privileges on AUR.* to aur@localhost identified by 'aur'; + mysql> flush privileges; + mysql> quit + +6) Check out the AUR project (using the MYUSER from above) + $ cd + $ svn co https://xentac.net/svn/aur/trunk aur + +7) Point your browser to http://aur + + Web Interface: ============== diff --git a/web/html/account.php b/web/html/account.php index 4d2cd9f..b03aee5 100644 --- a/web/html/account.php +++ b/web/html/account.php @@ -5,12 +5,412 @@ set_lang(); # this sets up the visitor's language check_sid(); # see if they're still logged in html_header(); # print out the HTML header +# Display the standard Account form +# SID: the session id cookie value (if any) +# A: what "form" name to use +# U: value to display for username +# T: value to display for account type +# S: value to display for account suspended +# E: value to display for email address +# P: password value +# C: confirm password value +# R: value to display for RealName +# L: value to display for Language preference +# I: value to display for IRC nick +# N: new package notify value +function display_account_form($SID,$A,$U="",$T="",$S="",$E="",$P="",$C="",$R="",$L="",$I="",$N="") { + global $SUPPORTED_LANGS; -# Any text you print out to the visitor, use the __() function -# for i18n support. See 'testpo.php' for more details. + print "<form action='/account.php' method='post'>\n"; + print "<input type='hidden' name='Action' value='".$A."'>\n"; + print "<center>\n"; + print "<table border='0' cellpadding='0' cellspacing='0' width='80%'>\n"; + print "<tr><td colspan='2'> </td></tr>\n"; + + # figure out what account type the visitor is + # + if ($SID) { + $atype = account_from_sid($SID); + } else { + $atype = ""; + } + + print "<tr>"; + print "<td align='left'>".__("Username:")."</td>"; + print "<td align='left'><input type='text' size='30' maxlength='64'"; + print " name='U' value='".$U."'> (".__("required").")</td>"; + print "</tr>\n"; + + if ($atype == "Trusted User" || $atype == "Developer") { + # only TUs or Devs can promote/demote/suspend a user + # + print "<tr>"; + print "<td align='left'>".__("Account Type:")."</td>"; + print "<td align='left'><select name=T>\n"; + print "<option value='u'> ".__("Normal user")."\n"; + print "<option value='t'> ".__("Trusted user")."\n"; + if ($atype == "Developer") { + # only developers can make another account a developer + # + print "<option value='d'> ".__("Developer")."\n"; + } + print "</select></td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("Account Suspended:")."</td>"; + print "<td align='left'><input type='checkbox' name='S'"; + if ($S) { + print " checked>"; + } else { + print ">"; + } + print "</tr>\n"; + } + + print "<tr>"; + print "<td align='left'>".__("Email Address:")."</td>"; + print "<td align='left'><input type='text' size='30' maxlength='64'"; + print " name='E' value='".$E."'> (".__("required").")</td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("Password:")."</td>"; + print "<td align='left'><input type='password' size='30' maxlength='32'"; + print " name='P' value='".$P."'> (".__("required").")</td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("Re-type password:")."</td>"; + print "<td align='left'><input type='password' size='30' maxlength='32'"; + print " name='C' value='".$C."'> (".__("required").")</td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("Real Name:")."</td>"; + print "<td align='left'><input type='text' size='30' maxlength='32'"; + print " name='R' value='".$R."'></td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("IRC Nick:")."</td>"; + print "<td align='left'><input type='text' size='30' maxlength='32'"; + print " name='I' value='".$I."'></td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("Language:")."</td>"; + print "<td align='left'><select name=L>\n"; + while (list($code, $lang) = each($SUPPORTED_LANGS)) { + if ($L == $code) { + print "<option value=".$code." selected> ".$lang."\n"; + } else { + print "<option value=".$code."> ".$lang."\n"; + } + } + print "</select></td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("New Package Notify:")."</td>"; + print "<td align='left'><input type='checkbox' name='N'"; + if ($N) { + print " checked>"; + } else { + print ">"; + } + print "</tr>\n"; + + print "<tr><td colspan='2'> </td></tr>\n"; + print "<tr>"; + print "<td> </td>"; + print "<td align='left'>"; + if ($A == "ModifyAccount") { + print "<input type='submit' value='".__("Update")."'> "; + } else { + print "<input type='submit' value='".__("Create")."'> "; + } + print "<input type='reset' value='".__("Reset")."'>"; + print "</td>"; + print "</tr>\n"; + + print "</table>\n"; + print "</center>\n"; + print "</form>\n"; +} # function display_account_form() + + +# Main page processing here # -print __("Under construction...")."<br/>\n"; +if (isset($_COOKIE["AURSID"])) { + # visitor is logged in + # + $dbh = db_connect(); + + if ($_REQUEST["Action"] == "SearchAccounts") { + # the user has entered search criteria, find any matching accounts + # + $HITS_PER_PAGE = 50; + $OFFSET = 0; + + $q = "SELECT Users.*, AccountTypes.AccountType "; + $q.= "FROM Users, AccountTypes "; + $q.= "WHERE AccountTypes.ID = Users.AccountTypeID "; + if ($_REQUEST["T"] == "u") { + $q.= "AND AccountTypes.ID = 1 "; + } elseif ($_REQUEST["T"] == "t") { + $q.= "AND AccountTypes.ID = 2 "; + } elseif ($_REQUEST["T"] == "d") { + $q.= "AND AccountTypes.ID = 3 "; + } + if ($_REQUEST["S"]) { + $q.= "AND Users.Suspended = 1 "; + } + if ($_REQUEST["U"]) { + $q.= "AND Username LIKE '%".mysql_escape_string($_REQUEST["U"])."%' "; + } + if ($_REQUEST["E"]) { + $q.= "AND Email LIKE '%".mysql_escape_string($_REQUEST["E"])."%' "; + } + if ($_REQUEST["R"]) { + $q.= "AND RealName LIKE '%".mysql_escape_string($_REQUEST["R"])."%' "; + } + if ($_REQUEST["I"]) { + $q.= "AND IRCNick LIKE '%".mysql_escape_string($_REQUEST["I"])."%' "; + } + $q.= "LIMIT ". $OFFSET . ", " . $HITS_PER_PAGE; + $result = db_query($q, $dbh); + if (!$result) { + print __("No results matched your search criteria."); + } else { + print "<center>\n"; + print "<table border='0' cellpadding='0' cellspacing='0' width='90%'>\n"; + print "<tr>"; + print "<td colspan='2'>"; + print "<table border='0' cellpadding='0' cellspacing='0' width='100%'>\n"; + print "<th>".__("Username")."</th>"; + print "<th>".__("Type")."</th>"; + print "<th>".__("Status")."</th>"; + print "<th>".__("Real Name")."</th>"; + print "<th>".__("IRC Nick")."</th>"; + print "<th>".__("Last Voted")."</th>"; + print "</tr>\n"; + $i = 0; + while ($row = mysql_fetch_assoc($result)) { + if ($i % 2) { + print "<tr class='data1'>"; + } else { + print "<tr class='data2'>"; + } + print "<td align='center'>".$row["Username"]."</td>"; + print "<td align='center'>".user_type($row["AccountType"])."</td>"; + print "<td align='center'>"; + if ($row["Suspended"]) { + print __("Suspended"); + } else { + print __("Active"); + } + print "</td>"; + print "<td align='left'>"; + $row["RealName"] ? print $row["RealName"] : print " "; + print "</td>"; + print "<td align='left'>"; + $row["IRCNick"] ? print $row["IRCNick"] : print " "; + print "</td>"; + print "<td align='center'>"; + $row["LastVoted"] + ? print date("Ymd", $row["LastVoted"]) + : print __("Never"); + print "</td>"; + print "</tr>\n"; + $i++; + } + print "</table>\n"; + print "</td></tr>\n"; + + print "<tr>"; + print "<td align='left'>"; + print "<form action='/account.php' method='post'>\n"; + print "<input type='hidden' name='Action' value='SearchPackages'>\n"; + print "<input type='hidden' name='offset' value='more'>\n"; + print "<input type='submit' value='<-- ".__("Less")."'>"; + print "</form>\n"; + print "</td>"; + print "<td align='right'>"; + print "<form action='/account.php' method='post'>\n"; + print "<input type='hidden' name='Action' value='SearchPackages'>\n"; + print "<input type='hidden' name='offset' value='more'>\n"; + print "<input type='submit' value='".__("More")." -->'>"; + print "</form>\n"; + print "</td>"; + print "</tr>\n"; + print "</table>\n"; + print "</center>\n"; + } + + + } elseif ($_REQUEST["Action"] == "DisplayAccount") { + # the user has clicked 'edit', display the account details in a form + # + + } elseif ($_REQUEST["Action"] == "UpdateAccount") { + # user is submitting their modifications to an existing account + # + + } else { + # display the search page + # + print "<form action='/account.php' method='post'>\n"; + print "<input type='hidden' name='Action' value='SearchAccounts'>\n"; + print "<center>\n"; + print "<table border='0' cellpadding='0' cellspacing='0' width='80%'>\n"; + print "<tr><td colspan='2'> </td></tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("Username:")."</td>"; + print "<td align='left'><input type='text' size='30' maxlength='64'"; + print " name='U'></td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("Account Type:")."</td>"; + print "<td align='left'><select name=T>\n"; + print "<option value=''> ".__("Any type")."\n"; + print "<option value='u'> ".__("Normal user")."\n"; + print "<option value='t'> ".__("Trusted user")."\n"; + print "<option value='d'> ".__("Developer")."\n"; + print "</select></td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("Account Suspended:")."</td>"; + print "<td align='left'><input type='checkbox' name='S'>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("Email Address:")."</td>"; + print "<td align='left'><input type='text' size='30' maxlength='64'"; + print " name='E'></td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("Real Name:")."</td>"; + print "<td align='left'><input type='text' size='30' maxlength='32'"; + print " name='R'></td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td align='left'>".__("IRC Nick:")."</td>"; + print "<td align='left'><input type='text' size='30' maxlength='32'"; + print " name='I'></td>"; + print "</tr>\n"; + + print "<tr>"; + print "<td> </td>"; + print "<td align='left'>"; + print "<input type='submit' value='Search'> "; + print "<input type='reset' value='Reset'></td>"; + print "</tr>\n"; + + print "</table>\n"; + print "</center>\n"; + print "</form>\n"; + } + +} else { + # visitor is not logged in + # + if ($_REQUEST["Action"] == "NewAccount") { + # error check and process request for a new account + # + $dbh = db_connect(); + $error = ""; + if (!isset($_REQUEST["E"]) || !isset($_REQUEST["P"]) || + !isset($_REQUEST["C"])) { + $error = __("Missing a required field."); + } + if (!$error && ($_REQUEST["P"] != $_REQUEST["C"])) { + $error = __("Password fields do not match."); + } + if (!$error && !valid_email($_REQUEST["E"])) { + $error = __("The email address is invalid."); + } + if (!$error && !array_key_exists($_REQUEST["L"], $SUPPORTED_LANGS)) { + $error = __("Language is not currently supported."); + } + if (!$error) { + # check to see if this username is available + # NOTE: a race condition exists here if we care... + # + $q = "SELECT COUNT(*) AS CNT FROM Users "; + $q.= "WHERE Username = '".mysql_escape_string($_REQUEST["U"])."'"; + $result = db_query($q, $dbh); + if ($result) { + $row = mysql_fetch_array($result); + if ($row[0]) { + $error = __("The username, %h%s%h, is already in use.", + array("<b>", $_REQUEST["U"], "</b>")); + } + } + } + if (!$error) { + # check to see if this email address is available + # NOTE: a race condition exists here if we care... + # + $q = "SELECT COUNT(*) AS CNT FROM Users "; + $q.= "WHERE Email = '".mysql_escape_string($_REQUEST["E"])."'"; + $result = db_query($q, $dbh); + if ($result) { + $row = mysql_fetch_array($result); + if ($row[0]) { + $error = __("The address, %h%s%h, is already in use.", + array("<b>", $_REQUEST["E"], "</b>")); + } + } + } + if ($error) { + print "<span class='error'>".$error."</span><br/>\n"; + display_account_form("", "NewAccount", "", "", + $_REQUEST["U"], $_REQUEST["E"], $_REQUEST["R"], $_REQUEST["L"], + $_REQUEST["I"], $_REQUEST["N"]); + } else { + # no errors, go ahead and create the unprivileged user + # + $q = "INSERT INTO Users (AccountTypeID, Suspended, Username, Email, "; + $q.= "Passwd, RealName, LangPreference, IRCNick, NewPkgNotify) "; + $q.= "VALUES (1, 0, '".mysql_escape_string($_REQUEST["U"])."'"; + $q.= ", '".mysql_escape_string($_REQUEST["E"])."'"; + $q.= ", '".mysql_escape_string($_REQUEST["P"])."'"; + $q.= ", '".mysql_escape_string($_REQUEST["R"])."'"; + $q.= ", '".mysql_escape_string($_REQUEST["L"])."'"; + $q.= ", '".mysql_escape_string($_REQUEST["I"])."'"; + if ($_REQUEST["N"] == "on") { + $q.= ", 1)"; + } else { + $q.= ", 0)"; + } + $result = db_query($q, $dbh); + if (!$result) { + print __("Error trying to create account, %h%s%h: %s.", + array("<b>", $_REQUEST["U"], "</b>", mysql_error($dbh))); + } else { + # account created, tell them so. + # + print __("The account, %h%s%h, has been successfully created.", + array("<b>", $_REQUEST["U"], "</b>")); + print "<p>\n"; + print __("Click on the Home link above to login."); + print "</p>\n"; + } + } + } else { + # display the account request form + # + display_account_form("", "NewAccount"); + } +} html_footer("\$Id$"); +# vim: ts=2 sw=2 noet ft=php ?> diff --git a/web/html/css/containers.css b/web/html/css/containers.css index 69ed1d9..1f437e7 100644 --- a/web/html/css/containers.css +++ b/web/html/css/containers.css @@ -76,6 +76,7 @@ {
background-color: #ffffff;
border-right: 1px solid #000;
+ border-left: 1px solid #000;
border-bottom: 1px solid #000;
text-align: center;
vertical-align: top;
diff --git a/web/html/index.php b/web/html/index.php index ad7b73f..dd9b2cc 100644 --- a/web/html/index.php +++ b/web/html/index.php @@ -11,7 +11,7 @@ if (isset($_REQUEST["user"]) || isset($_REQUEST["pass"])) { # Attempting to log in # if (!isset($_REQUEST['user'])) { - $login_error = __("You must supply a username."); + $login_error = __("You must supply an email address."); } if (!isset($_REQUEST['pass'])) { $login_error = __("You must supply a password."); @@ -21,11 +21,11 @@ if (isset($_REQUEST["user"]) || isset($_REQUEST["pass"])) { # $dbh = db_connect(); $q = "SELECT ID, Suspended FROM Users "; - $q.= "WHERE Email = '" . mysql_escape_string($_REQUEST["user"]) . "' "; + $q.= "WHERE Username = '" . mysql_escape_string($_REQUEST["user"]) . "' "; $q.= "AND Passwd = '" . mysql_escape_string($_REQUEST["pass"]) . "'"; $result = db_query($q, $dbh); if (!$result) { - $login_error = __("Incorrect password for username %s.", + $login_error = __("Incorrect password for email address, %s.", array($_REQUEST["user"])); } else { $row = mysql_fetch_row($result); @@ -70,13 +70,16 @@ html_header(); print "<table border='0' cellpadding='0' cellspacing='3' width='90%'>\n"; print "<tr>\n"; -print " <td align='left' valign='top'> <br/>"; +print " <td align='left' valign='top'>"; print __("This is where the intro text will go."); print __("For now, it's just a place holder."); print __("It's more important to get the login functionality finished."); print __("After that, this can be filled in with more meaningful text."); print " </td>"; -print " <td align='right'> <br/>\n"; +# XXX Is this the proper way to add some spacing between table cells? +# +print " <td> </td>"; +print " <td align='right'>\n"; if (!isset($_COOKIE["AURSID"])) { # the user is not logged in, give them login widgets # diff --git a/web/lang/account_po.inc b/web/lang/account_po.inc index 438f50d..ef88307 100644 --- a/web/lang/account_po.inc +++ b/web/lang/account_po.inc @@ -16,4 +16,189 @@ $_t["en"]["Under construction..."] = "Under construction..."; # $_t["fr"]["Under construction..."] = "--> Traduction française ici. <--"; # $_t["de"]["Under construction..."] = "--> Deutsche Übersetzung hier. <--"; +$_t["en"]["Account Suspended:"] = "Account Suspended:"; +# $_t["es"]["Account Suspended:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Account Suspended:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Account Suspended:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Notify:"] = "Notify:"; +# $_t["es"]["Notify:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Notify:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Notify:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Trusted User"] = "Trusted User"; +# $_t["es"]["Trusted User"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Trusted User"] = "--> Traduction française ici. <--"; +# $_t["de"]["Trusted User"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Normal User"] = "Normal User"; +# $_t["es"]["Normal User"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Normal User"] = "--> Traduction française ici. <--"; +# $_t["de"]["Normal User"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Password:"] = "Password:"; +# $_t["es"]["Password:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Password:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Password:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Email Address:"] = "Email Address:"; +# $_t["es"]["Email Address:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Email Address:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Email Address:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Confirm:"] = "Confirm:"; +# $_t["es"]["Confirm:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Confirm:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Confirm:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Real Name:"] = "Real Name:"; +# $_t["es"]["Real Name:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Real Name:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Real Name:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Account Type:"] = "Account Type:"; +# $_t["es"]["Account Type:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Account Type:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Account Type:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["IRC Nick:"] = "IRC Nick:"; +# $_t["es"]["IRC Nick:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["IRC Nick:"] = "--> Traduction française ici. <--"; +# $_t["de"]["IRC Nick:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Language:"] = "Language:"; +# $_t["es"]["Language:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Language:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Language:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Developer"] = "Developer"; +# $_t["es"]["Developer"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Developer"] = "--> Traduction française ici. <--"; +# $_t["de"]["Developer"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["New Package Notify:"] = "New Package Notify:"; +# $_t["es"]["New Package Notify:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["New Package Notify:"] = "--> Traduction française ici. <--"; +# $_t["de"]["New Package Notify:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Password fields do not match."] = "Password fields do not match."; +# $_t["es"]["Password fields do not match."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Password fields do not match."] = "--> Traduction française ici. <--"; +# $_t["de"]["Password fields do not match."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Error trying to create account, %h%s%h: %s."] = "Error trying to create account, %h%s%h: %s."; +# $_t["es"]["Error trying to create account, %h%s%h: %s."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Error trying to create account, %h%s%h: %s."] = "--> Traduction française ici. <--"; +# $_t["de"]["Error trying to create account, %h%s%h: %s."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Missing a required field."] = "Missing a required field."; +# $_t["es"]["Missing a required field."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Missing a required field."] = "--> Traduction française ici. <--"; +# $_t["de"]["Missing a required field."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["This address is already in use."] = "This address is already in use."; +# $_t["es"]["This address is already in use."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["This address is already in use."] = "--> Traduction française ici. <--"; +# $_t["de"]["This address is already in use."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Language is not currently supported."] = "Language is not currently supported."; +# $_t["es"]["Language is not currently supported."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Language is not currently supported."] = "--> Traduction française ici. <--"; +# $_t["de"]["Language is not currently supported."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["The email address is invalid."] = "The email address is invalid."; +# $_t["es"]["The email address is invalid."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["The email address is invalid."] = "--> Traduction française ici. <--"; +# $_t["de"]["The email address is invalid."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Re-type password:"] = "Re-type password:"; +# $_t["es"]["Re-type password:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Re-type password:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Re-type password:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["The account, %h%s%h, has been successfully created."] = "The account, %h%s%h, has been successfully created."; +# $_t["es"]["The account, %h%s%h, has been successfully created."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["The account, %h%s%h, has been successfully created."] = "--> Traduction française ici. <--"; +# $_t["de"]["The account, %h%s%h, has been successfully created."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Click on the Home link above to login."] = "Click on the Home link above to login."; +# $_t["es"]["Click on the Home link above to login."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Click on the Home link above to login."] = "--> Traduction française ici. <--"; +# $_t["de"]["Click on the Home link above to login."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["The address, %h%s%h, is already in use."] = "The address, %h%s%h, is already in use."; +# $_t["es"]["The address, %h%s%h, is already in use."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["The address, %h%s%h, is already in use."] = "--> Traduction française ici. <--"; +# $_t["de"]["The address, %h%s%h, is already in use."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Trusted user"] = "Trusted user"; +# $_t["es"]["Trusted user"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Trusted user"] = "--> Traduction française ici. <--"; +# $_t["de"]["Trusted user"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Normal user"] = "Normal user"; +# $_t["es"]["Normal user"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Normal user"] = "--> Traduction française ici. <--"; +# $_t["de"]["Normal user"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Any type"] = "Any type"; +# $_t["es"]["Any type"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Any type"] = "--> Traduction française ici. <--"; +# $_t["de"]["Any type"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["No results matched your search criteria."] = "No results matched your search criteria."; +# $_t["es"]["No results matched your search criteria."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["No results matched your search criteria."] = "--> Traduction française ici. <--"; +# $_t["de"]["No results matched your search criteria."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Never"] = "Never"; +# $_t["es"]["Never"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Never"] = "--> Traduction française ici. <--"; +# $_t["de"]["Never"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Active"] = "Active"; +# $_t["es"]["Active"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Active"] = "--> Traduction française ici. <--"; +# $_t["de"]["Active"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Suspended"] = "Suspended"; +# $_t["es"]["Suspended"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Suspended"] = "--> Traduction française ici. <--"; +# $_t["de"]["Suspended"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["The username, %h%s%h, is already in use."] = "The username, %h%s%h, is already in use."; +# $_t["es"]["The username, %h%s%h, is already in use."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["The username, %h%s%h, is already in use."] = "--> Traduction française ici. <--"; +# $_t["de"]["The username, %h%s%h, is already in use."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Type"] = "Type"; +# $_t["es"]["Type"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Type"] = "--> Traduction française ici. <--"; +# $_t["de"]["Type"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Status"] = "Status"; +# $_t["es"]["Status"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Status"] = "--> Traduction française ici. <--"; +# $_t["de"]["Status"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["IRC Nick"] = "IRC Nick"; +# $_t["es"]["IRC Nick"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["IRC Nick"] = "--> Traduction française ici. <--"; +# $_t["de"]["IRC Nick"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Last Voted"] = "Last Voted"; +# $_t["es"]["Last Voted"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Last Voted"] = "--> Traduction française ici. <--"; +# $_t["de"]["Last Voted"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Real Name"] = "Real Name"; +# $_t["es"]["Real Name"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Real Name"] = "--> Traduction française ici. <--"; +# $_t["de"]["Real Name"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Username:"] = "Username:"; +# $_t["es"]["Username:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Username:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Username:"] = "--> Deutsche Übersetzung hier. <--"; + ?>
\ No newline at end of file diff --git a/web/lang/aur_po.inc b/web/lang/aur_po.inc index 5f4ca98..211a05b 100644 --- a/web/lang/aur_po.inc +++ b/web/lang/aur_po.inc @@ -61,4 +61,19 @@ $_t["en"]["Packages"] = "Packages"; # $_t["fr"]["Packages"] = "--> Traduction française ici. <--"; # $_t["de"]["Packages"] = "--> Deutsche Übersetzung hier. <--"; +$_t["en"]["Trusted user"] = "Trusted user"; +# $_t["es"]["Trusted user"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Trusted user"] = "--> Traduction française ici. <--"; +# $_t["de"]["Trusted user"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["User"] = "User"; +# $_t["es"]["User"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["User"] = "--> Traduction française ici. <--"; +# $_t["de"]["User"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Developer"] = "Developer"; +# $_t["es"]["Developer"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Developer"] = "--> Traduction française ici. <--"; +# $_t["de"]["Developer"] = "--> Deutsche Übersetzung hier. <--"; + ?>
\ No newline at end of file diff --git a/web/lang/common_po.inc b/web/lang/common_po.inc index 6c04677..acaf9d2 100644 --- a/web/lang/common_po.inc +++ b/web/lang/common_po.inc @@ -11,4 +11,59 @@ include_once("translator.inc"); global $_t; +$_t["en"]["Password"] = "Password"; +# $_t["es"]["Password"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Password"] = "--> Traduction française ici. <--"; +# $_t["de"]["Password"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Clear"] = "Clear"; +# $_t["es"]["Clear"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Clear"] = "--> Traduction française ici. <--"; +# $_t["de"]["Clear"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["required"] = "required"; +# $_t["es"]["required"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["required"] = "--> Traduction française ici. <--"; +# $_t["de"]["required"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Email Address"] = "Email Address"; +# $_t["es"]["Email Address"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Email Address"] = "--> Traduction française ici. <--"; +# $_t["de"]["Email Address"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Submit"] = "Submit"; +# $_t["es"]["Submit"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Submit"] = "--> Traduction française ici. <--"; +# $_t["de"]["Submit"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Reset"] = "Reset"; +# $_t["es"]["Reset"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Reset"] = "--> Traduction française ici. <--"; +# $_t["de"]["Reset"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Create"] = "Create"; +# $_t["es"]["Create"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Create"] = "--> Traduction française ici. <--"; +# $_t["de"]["Create"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Update"] = "Update"; +# $_t["es"]["Update"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Update"] = "--> Traduction française ici. <--"; +# $_t["de"]["Update"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Less"] = "Less"; +# $_t["es"]["Less"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Less"] = "--> Traduction française ici. <--"; +# $_t["de"]["Less"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["More"] = "More"; +# $_t["es"]["More"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["More"] = "--> Traduction française ici. <--"; +# $_t["de"]["More"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Username"] = "Username"; +# $_t["es"]["Username"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Username"] = "--> Traduction française ici. <--"; +# $_t["de"]["Username"] = "--> Deutsche Übersetzung hier. <--"; + ?>
\ No newline at end of file diff --git a/web/lang/common_po.list b/web/lang/common_po.list index 395b894..eb94023 100644 --- a/web/lang/common_po.list +++ b/web/lang/common_po.list @@ -2,3 +2,14 @@ # in more than one PHP script. It only supports one line # strings at the moment. # +Submit +Clear +Create +Reset +Update +required +Email Address +Username +Password +More +Less diff --git a/web/lang/index_po.inc b/web/lang/index_po.inc index e5bfe70..58bb8ab 100644 --- a/web/lang/index_po.inc +++ b/web/lang/index_po.inc @@ -81,4 +81,19 @@ $_t["en"]["Login"] = "Login"; # $_t["fr"]["Login"] = "--> Traduction française ici. <--"; # $_t["de"]["Login"] = "--> Deutsche Übersetzung hier. <--"; +$_t["en"]["Email Address:"] = "Email Address:"; +# $_t["es"]["Email Address:"] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Email Address:"] = "--> Traduction française ici. <--"; +# $_t["de"]["Email Address:"] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["You must supply an email address."] = "You must supply an email address."; +# $_t["es"]["You must supply an email address."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["You must supply an email address."] = "--> Traduction française ici. <--"; +# $_t["de"]["You must supply an email address."] = "--> Deutsche Übersetzung hier. <--"; + +$_t["en"]["Incorrect password for email address, %s."] = "Incorrect password for email address, %s."; +# $_t["es"]["Incorrect password for email address, %s."] = "--> Traducción española aquí. <--"; +# $_t["fr"]["Incorrect password for email address, %s."] = "--> Traduction française ici. <--"; +# $_t["de"]["Incorrect password for email address, %s."] = "--> Deutsche Übersetzung hier. <--"; + ?>
\ No newline at end of file diff --git a/web/lib/aur.inc b/web/lib/aur.inc index 54ec5ef..9695229 100644 --- a/web/lib/aur.inc +++ b/web/lib/aur.inc @@ -3,12 +3,12 @@ include_once("aur_po.inc"); # Define global variables # -$LOGIN_TIMEOUT = 10; # number of idle seconds before timeout +$LOGIN_TIMEOUT = 1800; # number of idle seconds before timeout $SUPPORTED_LANGS = array( # what languages we have translations for - "en" => 1, # English - "es" => 1, # Español - "de" => 1, # Deutsch - "fr" => 1, # Français + "en" => "English", + "es" => "Español", + "de" => "Deutsch", + "fr" => "Français", ); # debugging variables @@ -71,6 +71,12 @@ function check_sid() { return; } +# verify that an email address looks like it is legitimate +# +function valid_email($addy) { + return eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,3}$", $addy); +} + # a new seed value for mt_srand() # function make_seed() { @@ -93,6 +99,18 @@ function new_sid() { return strtoupper(md5($id)); } +# obtain the user type from its database ID +# +function user_type($id=0) { + if ($id == 3) { + return __("Developer"); + } elseif ($id == 2) { + return __("Trusted user"); + } else { + return __("User"); + } +} + # obtain the username if given their current SID # function username_from_sid($sid="") { @@ -100,10 +118,52 @@ function username_from_sid($sid="") { return ""; } $dbh = db_connect(); + $q = "SELECT Username "; + $q.= "FROM Users, Sessions "; + $q.= "WHERE Users.ID = Sessions.UsersID "; + $q.= "AND Sessions.SessionID = '" . mysql_escape_string($sid) . "'"; + $result = db_query($q, $dbh); + if (!$result) { + return ""; + } + $row = mysql_fetch_row($result); + + return $row[0]; +} + +# obtain the email address if given their current SID +# +function email_from_sid($sid="") { + if (!$sid) { + return ""; + } + $dbh = db_connect(); $q = "SELECT Email "; $q.= "FROM Users, Sessions "; $q.= "WHERE Users.ID = Sessions.UsersID "; - $q.= "AND SessionID = '" . mysql_escape_string($sid) . "'"; + $q.= "AND Sessions.SessionID = '" . mysql_escape_string($sid) . "'"; + $result = db_query($q, $dbh); + if (!$result) { + return ""; + } + $row = mysql_fetch_row($result); + + return $row[0]; +} + +# obtain the account type if given their current SID +# Return either "", "User", "Trusted User", "Developer" +# +function account_from_sid($sid="") { + if (!$sid) { + return ""; + } + $dbh = db_connect(); + $q = "SELECT AccountType "; + $q.= "FROM Users, AccountTypes, Sessions "; + $q.= "WHERE Users.ID = Sessions.UsersID "; + $q.= "AND AccountTypes.ID = Users.AccountTypesID "; + $q.= "AND Sessions.SessionID = '" . mysql_escape_string($sid) . "'"; $result = db_query($q, $dbh); if (!$result) { return ""; @@ -150,7 +210,7 @@ function db_query($query="", $db_handle="") { fwrite($fp, $query . "\n"); fclose($fp); } - $result = mysql_query($query, $db_handle); + $result = @mysql_query($query, $db_handle); return $result; } @@ -268,6 +328,7 @@ function html_header() { print " </tr>"; print " <tr>\n"; print " <td class='contentDisplay'>\n"; + print " <br/>\n"; print "<!-- Start of main content -->\n\n"; return; @@ -277,7 +338,7 @@ function html_header() { # common footer # function html_footer($ver="") { - print "\n\n<!-- End of main content -->"; + print "\n\n<!-- End of main content -->\n"; print " </td>\n"; print " </tr>\n"; print "</table>\n"; |