Expire users that haven't activated their account in a month
[infodrom.org/www.zeitungsliste.de] / bin / zeitungen-tidy
index 51f98f3..a751357 100755 (executable)
@@ -43,6 +43,23 @@ sub tidy_online
     }
 }
 
+sub tidy_activation
+{
+    my $query = q{SELECT uid,id FROM activation WHERE register_date < now() - interval'35 days'};
+
+    my $sth = $dbh->prepare ($query) or die "Can't prepare Query: $DBI::errstr\n";
+    my $rv = $sth->execute or die "Can't execute query: $DBI::errstr\n";
+
+    my @uids = ();
+    push @uids, $_->{uid} while ($_ = $sth->fetchrow_hashref);
+
+    if ($#uids > -1) {
+       $query = sprintf('DELETE FROM users WHERE id in (%s)',
+                        join(',', @uids));
+       $dbh->do($query);
+    }
+}
+
 sub archive_topics
 {
     my $query = q{SELECT id FROM topics WHERE archived IS false AND modified < now() - interval'2 weeks'};
@@ -80,3 +97,4 @@ sub tidy_tags
 tidy_online;
 archive_topics;
 # tidy_tags;
+tidy_activation;