diff options
author | David Lawrence <dkl@mozilla.com> | 2015-07-06 21:21:04 +0200 |
---|---|---|
committer | David Lawrence <dkl@mozilla.com> | 2015-07-06 21:21:04 +0200 |
commit | b758be1d37cb49ced8cb17fca3d5a4cb2dd2e03e (patch) | |
tree | 01d7b7c5a5fcd5dddc0ed4adc55a60917ce70bce /contrib/verify-user.pl | |
parent | f70d4ce7e0a94379bb901559109650874946c84b (diff) | |
download | bugzilla-b758be1d37cb49ced8cb17fca3d5a4cb2dd2e03e.tar.gz bugzilla-b758be1d37cb49ced8cb17fca3d5a4cb2dd2e03e.tar.xz |
Bug 1172968: Move the scripts we want to keep from contrib/* and place them in scripts/ directory. Remove contrib from repo
Diffstat (limited to 'contrib/verify-user.pl')
-rwxr-xr-x | contrib/verify-user.pl | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/contrib/verify-user.pl b/contrib/verify-user.pl deleted file mode 100755 index d12cd745f..000000000 --- a/contrib/verify-user.pl +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/perl -wT -# -*- Mode: perl; indent-tabs-mode: nil -*- -# -# The contents of this file are subject to the Mozilla Public -# License Version 1.1 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS -# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -# implied. See the License for the specific language governing -# rights and limitations under the License. -# -# The Original Code is the Bugzilla Bug Tracking System. -# -# The Initial Developer of the Original Code is Netscape Communications -# Corporation. Portions created by Netscape are -# Copyright (C) 1998 Netscape Communications Corporation. All -# Rights Reserved. -# -# Contributor(s): Myk Melez <myk@mozilla.org> -# Dave Miller <justdave@bugzilla.org> - -# See if a user account has ever done anything - -# ./verify-user.pl foo@baz.com - -use strict; - -use lib qw(.); - -use Bugzilla; -use Bugzilla::Util; -use Bugzilla::DB; -use Bugzilla::Constants; - -# Make sure accounts were specified on the command line and exist. -my $user = $ARGV[0] || die "You must specify an user.\n"; -my $dbh = Bugzilla->dbh; -my $sth; - -#$sth = $dbh->prepare("SELECT name, count(*) as qty from bugs, products where reporter=198524 and product_id=products.id group by name order by qty desc"); -#$sth->execute(); -#my $results = $sth->fetchall_arrayref(); -#use Data::Dumper; -#print Data::Dumper::Dumper($results); -#exit; - -trick_taint($user); -if ($user =~ /^\d+$/) { # user ID passed instead of email - $sth = $dbh->prepare('SELECT login_name FROM profiles WHERE userid = ?'); - $sth->execute($user); - ($user) = $sth->fetchrow_array || die "The user with ID $ARGV[0] does not exist.\n"; - print "User $ARGV[0]'s login name is $user.\n"; -} -$sth = $dbh->prepare("SELECT userid FROM profiles WHERE login_name = ?"); -$sth->execute($user); -my ($user_id) = $sth->fetchrow_array || die "The user $user does not exist.\n"; - -print "${user}'s ID is $user_id.\n"; - -$sth = $dbh->prepare("SELECT DISTINCT ipaddr FROM logincookies WHERE userid = ?"); -$sth->execute($user_id); -my $iplist = $sth->fetchall_arrayref; -if (@$iplist > 0) { - print "This user has recently connected from the following IP addresses:\n"; - foreach my $ip (@$iplist) { - print $$ip[0] . "\n"; - } -} - - -# A list of tables and columns to be checked. -my $columns = { - attachments => ['submitter_id'] , - bugs => ['assigned_to', 'reporter', 'qa_contact'] , - bugs_activity => ['who'] , - cc => ['who'] , - components => ['initialowner', 'initialqacontact'] , - flags => ['setter_id', 'requestee_id'] , - logincookies => ['userid'] , - longdescs => ['who'] , - namedqueries => ['userid'] , - profiles_activity => ['userid', 'who'] , - quips => ['userid'] , - series => ['creator'] , - tokens => ['userid'] , - user_group_map => ['user_id'] , - votes => ['who'] , - watch => ['watcher', 'watched'] , - -}; - -my $fields = 0; -# Check records for user. -foreach my $table (keys(%$columns)) { - foreach my $column (@{$columns->{$table}}) { - $sth = $dbh->prepare("SELECT COUNT(*) FROM $table WHERE $column = ?"); - if ($table eq 'user_group_map') { - $sth = $dbh->prepare("SELECT COUNT(*) FROM $table WHERE $column = ? AND grant_type = " . GRANT_DIRECT); - } - $sth->execute($user_id); - my ($val) = $sth->fetchrow_array; - $fields++ if $val; - print "$table.$column: $val\n" if $val; - } -} - -print "The user is mentioned in $fields fields.\n"; - -if ($::ARGV[1] && $::ARGV[1] eq '-r') { - if ($fields == 0) { - $sth = $dbh->prepare("SELECT login_name FROM profiles WHERE login_name = ?"); - my $count = 0; - print "Finding an unused recycle ID"; - do { - $count++; - $sth->execute(sprintf("reuseme%03d\@bugzilla.org", $count)); - print "."; - } while (my ($match) = $sth->fetchrow_array()); - printf "\nUsing reuseme%03d\@bugzilla.org.\n", $count; - $dbh->do("DELETE FROM user_group_map WHERE user_id=?",undef,$user_id); - $dbh->do("UPDATE profiles SET realname='', cryptpassword='randomgarbage' WHERE userid=?",undef,$user_id); - $dbh->do("UPDATE profiles SET login_name=? WHERE userid=?",undef,sprintf("reuseme%03d\@bugzilla.org",$count),$user_id); - } - else { - print "Account has been used, so not recycling.\n"; - } -} |