summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@archlinux.org>2016-06-02 08:51:29 +0200
committerLukas Fleischer <lfleischer@archlinux.org>2016-06-08 22:23:57 +0200
commite3670ef1888a3f030452b229e8d48b83bb83b240 (patch)
treea781f46adae963a5b19112e2928e87088394781b
parent9fec03d65598cf13d0efda6b9361d7b9e0ee7e36 (diff)
downloadaurweb-e3670ef1888a3f030452b229e8d48b83bb83b240.tar.xz
Add a homepage field to accounts
Allow users to add a link to their homepage to their profile. Implements FS#22774. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
-rw-r--r--schema/aur-schema.sql1
-rw-r--r--upgrading/4.3.0.txt6
-rw-r--r--web/html/account.php53
-rw-r--r--web/lib/acctfuncs.inc.php12
-rw-r--r--web/template/account_details.php4
-rw-r--r--web/template/account_edit_form.php5
6 files changed, 62 insertions, 19 deletions
diff --git a/schema/aur-schema.sql b/schema/aur-schema.sql
index ea19d46..7edf94c 100644
--- a/schema/aur-schema.sql
+++ b/schema/aur-schema.sql
@@ -32,6 +32,7 @@ CREATE TABLE Users (
ResetKey CHAR(32) NOT NULL DEFAULT '',
RealName VARCHAR(64) NOT NULL DEFAULT '',
LangPreference VARCHAR(5) NOT NULL DEFAULT 'en',
+ Homepage TEXT NULL DEFAULT NULL,
IRCNick VARCHAR(32) NOT NULL DEFAULT '',
PGPKey VARCHAR(40) NULL DEFAULT NULL,
LastLogin BIGINT UNSIGNED NOT NULL DEFAULT 0,
diff --git a/upgrading/4.3.0.txt b/upgrading/4.3.0.txt
index f7f3e08..6c1753d 100644
--- a/upgrading/4.3.0.txt
+++ b/upgrading/4.3.0.txt
@@ -15,3 +15,9 @@ ALTER TABLE Users MODIFY LastLoginIPAddress VARCHAR(45) NULL DEFAULT NULL;
----
ALTER TABLE OfficialProviders ADD COLUMN Repo VARCHAR(64) NOT NULL;
----
+
+4. Add a column to store users' homepages:
+
+----
+ALTER TABLE Users ADD COLUMN Homepage TEXT NULL DEFAULT NULL;
+----
diff --git a/web/html/account.php b/web/html/account.php
index 9007ace..8d92b2c 100644
--- a/web/html/account.php
+++ b/web/html/account.php
@@ -78,12 +78,25 @@ if (isset($_COOKIE["AURSID"])) {
} else {
/* Verify user has permission to edit the account */
if (can_edit_account($row)) {
- display_account_form("UpdateAccount", $row["Username"],
- $row["AccountTypeID"], $row["Suspended"], $row["Email"],
- $row["HideEmail"], "", "", $row["RealName"],
- $row["LangPreference"], $row["IRCNick"], $row["PGPKey"], $PK,
- $row["InactivityTS"] ? 1 : 0, $row["CommentNotify"],
- $row["UpdateNotify"], $row["ID"], $row["Username"]);
+ display_account_form("UpdateAccount",
+ $row["Username"],
+ $row["AccountTypeID"],
+ $row["Suspended"],
+ $row["Email"],
+ $row["HideEmail"],
+ "",
+ "",
+ $row["RealName"],
+ $row["LangPreference"],
+ $row["Homepage"],
+ $row["IRCNick"],
+ $row["PGPKey"],
+ $PK,
+ $row["InactivityTS"] ? 1 : 0,
+ $row["CommentNotify"],
+ $row["UpdateNotify"],
+ $row["ID"],
+ $row["Username"]);
} else {
print __("You do not have permission to edit this account.");
}
@@ -116,15 +129,25 @@ if (isset($_COOKIE["AURSID"])) {
print $update_account_message;
if (!$success) {
- display_account_form("UpdateAccount", in_request("U"),
- in_request("T"), in_request("S"),
- in_request("E"), in_request("H"),
- in_request("P"), in_request("C"),
- in_request("R"), in_request("L"),
- in_request("I"), in_request("K"),
- in_request("PK"), in_request("J"),
- in_request("CN"), in_request("UN"),
- in_request("ID"), $row["Username"]);
+ display_account_form("UpdateAccount",
+ in_request("U"),
+ in_request("T"),
+ in_request("S"),
+ in_request("E"),
+ in_request("H"),
+ in_request("P"),
+ in_request("C"),
+ in_request("R"),
+ in_request("L"),
+ in_request("HP"),
+ in_request("I"),
+ in_request("K"),
+ in_request("PK"),
+ in_request("J"),
+ in_request("CN"),
+ in_request("UN"),
+ in_request("ID"),
+ $row["Username"]);
}
} else {
diff --git a/web/lib/acctfuncs.inc.php b/web/lib/acctfuncs.inc.php
index 0eb021e..172b962 100644
--- a/web/lib/acctfuncs.inc.php
+++ b/web/lib/acctfuncs.inc.php
@@ -52,6 +52,7 @@ function html_format_pgp_fingerprint($fingerprint) {
* @param string $C The confirmed password value of the displayed user
* @param string $R The real name of the displayed user
* @param string $L The language preference of the displayed user
+ * @param string $HP The homepage of the displayed user
* @param string $I The IRC nickname of the displayed user
* @param string $K The PGP key fingerprint of the displayed user
* @param string $PK The list of SSH public keys
@@ -65,7 +66,7 @@ function html_format_pgp_fingerprint($fingerprint) {
* @return void
*/
function display_account_form($A,$U="",$T="",$S="",$E="",$H="",$P="",$C="",$R="",
- $L="",$I="",$K="",$PK="",$J="",$CN="",$UN="",$ON="",$UID=0,$N="") {
+ $L="",$HP="",$I="",$K="",$PK="",$J="",$CN="",$UN="",$ON="",$UID=0,$N="") {
global $SUPPORTED_LANGS;
include("account_edit_form.php");
@@ -87,6 +88,7 @@ function display_account_form($A,$U="",$T="",$S="",$E="",$H="",$P="",$C="",$R=""
* @param string $C The confirmed password for the user
* @param string $R The real name of the user
* @param string $L The language preference of the user
+ * @param string $HP The homepage of the displayed user
* @param string $I The IRC nickname of the user
* @param string $K The PGP fingerprint of the user
* @param string $PK The list of public SSH keys
@@ -100,7 +102,7 @@ function display_account_form($A,$U="",$T="",$S="",$E="",$H="",$P="",$C="",$R=""
* @return array Boolean indicating success and message to be printed
*/
function process_account_form($TYPE,$A,$U="",$T="",$S="",$E="",$H="",$P="",$C="",
- $R="",$L="",$I="",$K="",$PK="",$J="",$CN="",$UN="",$ON="",$UID=0,$N="") {
+ $R="",$L="",$HP="",$I="",$K="",$PK="",$J="",$CN="",$UN="",$ON="",$UID=0,$N="") {
global $SUPPORTED_LANGS;
$error = '';
@@ -276,13 +278,14 @@ function process_account_form($TYPE,$A,$U="",$T="",$S="",$E="",$H="",$P="",$C=""
$salt = $dbh->quote($salt);
$R = $dbh->quote($R);
$L = $dbh->quote($L);
+ $HP = $dbh->quote($HP);
$I = $dbh->quote($I);
$K = $dbh->quote(str_replace(" ", "", $K));
$q = "INSERT INTO Users (AccountTypeID, Suspended, ";
$q.= "InactivityTS, Username, Email, Passwd, Salt, ";
- $q.= "RealName, LangPreference, IRCNick, PGPKey) ";
+ $q.= "RealName, LangPreference, Homepage, IRCNick, PGPKey) ";
$q.= "VALUES (1, 0, 0, $U, $E, $P, $salt, $R, $L, ";
- $q.= "$I, $K)";
+ $q.= "$HP, $I, $K)";
$result = $dbh->exec($q);
if (!$result) {
$message = __("Error trying to create account, %s%s%s.",
@@ -344,6 +347,7 @@ function process_account_form($TYPE,$A,$U="",$T="",$S="",$E="",$H="",$P="",$C=""
}
$q.= ", RealName = " . $dbh->quote($R);
$q.= ", LangPreference = " . $dbh->quote($L);
+ $q.= ", Homepage = " . $dbh->quote($HP);
$q.= ", IRCNick = " . $dbh->quote($I);
$q.= ", PGPKey = " . $dbh->quote(str_replace(" ", "", $K));
$q.= ", InactivityTS = " . $inactivity_ts;
diff --git a/web/template/account_details.php b/web/template/account_details.php
index 59a6a63..0ac85a5 100644
--- a/web/template/account_details.php
+++ b/web/template/account_details.php
@@ -42,6 +42,10 @@
<td><?= htmlspecialchars($row["RealName"], ENT_QUOTES) ?></td>
</tr>
<tr>
+ <th><?= __("Homepage") . ":" ?></th>
+ <td><?= htmlspecialchars($row["Homepage"], ENT_QUOTES) ?></td>
+ </tr>
+ <tr>
<th><?= __("IRC Nick") . ":" ?></th>
<td><?= htmlspecialchars($row["IRCNick"], ENT_QUOTES) ?></td>
</tr>
diff --git a/web/template/account_edit_form.php b/web/template/account_edit_form.php
index b4f0192..6c2b8fb 100644
--- a/web/template/account_edit_form.php
+++ b/web/template/account_edit_form.php
@@ -99,6 +99,11 @@
</p>
<p>
+ <label for="id_homepage"><?= __("Homepage") ?>:</label>
+ <input type="text" size="30" name="HP" id="id_homepage" value="<?= htmlspecialchars($HP,ENT_QUOTES) ?>" />
+ </p>
+
+ <p>
<label for="id_irc"><?= __("IRC Nick") ?>:</label>
<input type="text" size="30" maxlength="32" name="I" id="id_irc" value="<?= htmlspecialchars($I,ENT_QUOTES) ?>" />
</p>