summaryrefslogtreecommitdiffstats
path: root/web/lib/pkgbasefuncs.inc.php
diff options
context:
space:
mode:
authorMarcel Korpel <marcel.korpel@gmail.com>2016-01-19 14:49:50 +0100
committerLukas Fleischer <lfleischer@archlinux.org>2016-01-23 11:50:03 +0100
commitbd85441cf66b39d887f01654913da58ef313d14c (patch)
tree54de0489a7031b061ce4e70bb9b0f25575caf4ec /web/lib/pkgbasefuncs.inc.php
parente9fe1a9eb100b11fda80f05b5b3239ee97e3a905 (diff)
downloadaur-bd85441cf66b39d887f01654913da58ef313d14c.tar.gz
aur-bd85441cf66b39d887f01654913da58ef313d14c.tar.xz
Add comment undeletion functionality
Only Developers and Trusted Users can undelete comments. Signed-off-by: Marcel Korpel <marcel.korpel@gmail.com> Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
Diffstat (limited to 'web/lib/pkgbasefuncs.inc.php')
-rw-r--r--web/lib/pkgbasefuncs.inc.php22
1 files changed, 18 insertions, 4 deletions
diff --git a/web/lib/pkgbasefuncs.inc.php b/web/lib/pkgbasefuncs.inc.php
index 2b1201d5..20f5bb49 100644
--- a/web/lib/pkgbasefuncs.inc.php
+++ b/web/lib/pkgbasefuncs.inc.php
@@ -932,9 +932,10 @@ function pkgbase_notify ($base_ids, $action=true) {
/**
* Delete a package comment
*
+ * @param boolean $undelete True if undeleting rather than deleting
* @return array Tuple of success/failure indicator and error message
*/
-function pkgbase_delete_comment() {
+function pkgbase_delete_comment($undelete=false) {
$uid = uid_from_sid($_COOKIE["AURSID"]);
if (!$uid) {
return array(false, __("You must be logged in before you can edit package information."));
@@ -947,15 +948,28 @@ function pkgbase_delete_comment() {
}
$dbh = DB::connect();
- if (can_delete_comment($comment_id)) {
+ if ($undelete) {
+ if (!has_credential(CRED_COMMENT_UNDELETE)) {
+ return array(false, __("You are not allowed to undelete this comment."));
+ }
+
+ $q = "UPDATE PackageComments ";
+ $q.= "SET DelUsersID = NULL, ";
+ $q.= "DelTS = NULL ";
+ $q.= "WHERE ID = ".intval($comment_id);
+ $dbh->exec($q);
+ return array(true, __("Comment has been undeleted."));
+ } else {
+ if (!can_delete_comment($comment_id)) {
+ return array(false, __("You are not allowed to delete this comment."));
+ }
+
$q = "UPDATE PackageComments ";
$q.= "SET DelUsersID = ".$uid.", ";
$q.= "DelTS = UNIX_TIMESTAMP() ";
$q.= "WHERE ID = ".intval($comment_id);
$dbh->exec($q);
return array(true, __("Comment has been deleted."));
- } else {
- return array(false, __("You are not allowed to delete this comment."));
}
}