summaryrefslogtreecommitdiff
path: root/lib/VNDB
diff options
context:
space:
mode:
authoryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-07-16 07:34:49 +0000
committeryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-07-16 07:34:49 +0000
commitee40f5605e50b1d421e3456f672a324360aff5a7 (patch)
tree3c0b8b491da00c20d1f4b38a634d5be12e13cee4 /lib/VNDB
parent94e9da6f6c654f45bc7efb7a4e6591c64f0553c5 (diff)
Accounts can be deleted, home page now shows age of last post instead of user, removed the /u+/pending URL, and small bugfix in dump.sql
git-svn-id: svn://vndb.org/vndb@69 1fe2e327-d9db-4752-bcf7-ef0cb4a1748b
Diffstat (limited to 'lib/VNDB')
-rw-r--r--lib/VNDB/Users.pm11
-rw-r--r--lib/VNDB/Util/DB.pm16
2 files changed, 25 insertions, 2 deletions
diff --git a/lib/VNDB/Users.pm b/lib/VNDB/Users.pm
index 318f6dbc..670086cc 100644
--- a/lib/VNDB/Users.pm
+++ b/lib/VNDB/Users.pm
@@ -7,7 +7,7 @@ use Exporter 'import';
use Digest::MD5 'md5_hex';
our $VERSION = $VNDB::VERSION;
-our @EXPORT = qw| UsrLogin UsrLogout UsrReg UsrPass UsrEdit UsrList UsrPage |;
+our @EXPORT = qw| UsrLogin UsrLogout UsrReg UsrPass UsrEdit UsrList UsrPage UsrDel |;
sub UsrLogin {
@@ -231,5 +231,14 @@ sub UsrPage {
});
}
+
+sub UsrDel {
+ my($s, $id) = @_;
+ return $s->ResDenied if !$s->AuthCan('usermod');
+ $s->DBDelUser($id);
+ $s->ResRedirect('/u/list', 'temp');
+}
+
+
1;
diff --git a/lib/VNDB/Util/DB.pm b/lib/VNDB/Util/DB.pm
index e3685687..46a17fb1 100644
--- a/lib/VNDB/Util/DB.pm
+++ b/lib/VNDB/Util/DB.pm
@@ -13,7 +13,7 @@ $VERSION = $VNDB::VERSION;
@EXPORT = qw|
DBInit DBCheck DBCommit DBRollBack DBExit
DBLanguageCount DBCategoryCount DBTableCount DBGetHist DBLockItem DBIncId
- DBGetUser DBAddUser DBUpdateUser
+ DBGetUser DBAddUser DBUpdateUser DBDelUser
DBGetVotes DBVoteStats DBAddVote DBDelVote
DBGetVNList DBVNListStats DBAddVNList DBEditVNList DBDelVNList
DBGetVN DBAddVN DBEditVN DBHideVN DBUndefRG DBVNCache
@@ -272,6 +272,8 @@ sub DBGetUser { # %options->{ username mail passwd order firstchar uid results p
'ASCII(username) < 97 OR ASCII(username) > 122' => 1 ) : (),
$o{uid} ? (
'id = %d' => $o{uid} ) : (),
+ !$o{uid} && !$o{username} ? (
+ 'id > 0' => 1 ) : (),
);
my $where = keys %where ? 'AND !W' : '';
@@ -358,6 +360,18 @@ sub DBUpdateUser { # uid, %options->{ columns in users table }
}
+sub DBDelUser { # uid
+ my($s, $id) = @_;
+ $s->DBExec($_, $id) for (
+ q|DELETE FROM vnlists WHERE uid = %d|,
+ q|DELETE FROM votes WHERE uid = %d|,
+ q|UPDATE changes SET requester = 0 WHERE requester = %d|,
+ q|UPDATE threads_posts SET uid = 0 WHERE uid = %d|,
+ q|DELETE FROM users WHERE id = %d|
+ );
+}
+
+