1
#!/usr/bin/env php
2
<?php
3
/*
4
 * StatusNet - a distributed open-source microblogging tool
5
 * Copyright (C) 2008, 2009, StatusNet, Inc.
6
 *
7
 * This program is free software: you can redistribute it and/or modify
8
 * it under the terms of the GNU Affero General Public License as published by
9
 * the Free Software Foundation, either version 3 of the License, or
10
 * (at your option) any later version.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU Affero General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Affero General Public License
18
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 */
20
21
define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
22
23
$shortoptions = 'i:n:e:';
24
$longoptions = array('id=', 'nickname=', 'email=');
25
26
$helptext = <<<END_OF_USEREMAIL_HELP
27
useremail.php [options]
28
Queries a user's registered email address, or queries the users with a given registered email.
29
30
  -i --id       id of the user to query
31
  -n --nickname nickname of the user to query
32
  -e --email    email address to query
33
34
END_OF_USEREMAIL_HELP;
35
36
require_once INSTALLDIR.'/scripts/commandline.inc';
37
38
if (have_option('i', 'id')) {
39
    $id = get_option_value('i', 'id');
40
    $user = User::staticGet('id', $id);
41
    if (empty($user)) {
42
        print "Can't find user with ID $id\n";
43
        exit(1);
44
    }
45
} else if (have_option('n', 'nickname')) {
46
    $nickname = get_option_value('n', 'nickname');
47
    $user = User::staticGet('nickname', $nickname);
48
    if (empty($user)) {
49
        print "Can't find user with nickname '$nickname'\n";
50
        exit(1);
51
    }
52
}
53
54
if (!empty($user)) {
55
    if (empty($user->email)) {
56
        # Check for unconfirmed emails
57
        $unconfirmed_email = new Confirm_address();
58
        $unconfirmed_email->user_id = $user->id;
59
        $unconfirmed_email->address_type = 'email';
60
        $unconfirmed_email->find(true);
61
62
        if (empty($unconfirmed_email->address)) {
63
            print "No email registered for user '$user->nickname'\n";
64
        } else {
65
            print "Unconfirmed Adress: $unconfirmed_email->address\n";
66
        }
67
    } else {
68
        print "$user->email\n";
69
    }
70
    exit(0);
71
}
72
73
if (have_option('e', 'email')) {
74
    $user = new User();
75
    $user->email = get_option_value('e', 'email');
76
    $user->find(false);
77
    if (!$user->fetch()) {
78
        # Check unconfirmed emails
79
        $unconfirmed_email = new Confirm_address();
80
        $unconfirmed_email->address = $user->email;
81
        $unconfirmed_email->address_type = 'email';
82
        $unconfirmed_email->find(true);
83
84
        if (empty($unconfirmed_email->user_id)) {
85
            print "No users with email $user->email\n";
86
        } else {
87
            $user=User::staticGet('id', $unconfirmed_email->user_id);
88
            print "Unconfirmed Address: $user->id $user->nickname\n";
89
        }
90
        exit(0);
91
    }
92
    do {
93
        print "$user->id $user->nickname\n";
94
    } while ($user->fetch());
95
} else {
96
    print "You must provide either an ID, email, or a nickname.\n";
97
    exit(1);
98
}