コード例 #1
0
ファイル: post.php プロジェクト: dmitriz/Platform
function Users_resend_post()
{
    $identifier = Users::requestedIdentifier($type);
    if ($type !== 'email' and $type !== 'mobile') {
        throw new Q_Exception("Expecting a valid email or mobile number", array('identifier', 'emailAddress', 'mobileNumber'));
    }
    if ($type === 'email') {
        $thing = 'email address';
        $field = 'emailAddress';
        $row = new Users_Email();
        $row->address = $identifier;
    } else {
        if ($type === 'mobile') {
            $thing = 'mobile number';
            $field = 'mobileNumber';
            $row = new Users_Mobile();
            $row->number = $identifier;
        } else {
            throw new Q_Exception("Expecting a valid email or mobile number", array('identifier', 'emailAddress', 'mobileNumber'));
        }
    }
    if ($row->retrieve()) {
        $userId = $row->userId;
    } else {
        if ($ui = Users::identify($type, $identifier, 'future')) {
            $userId = $ui->userId;
        } else {
            throw new Q_Exception("That {$thing} was not found in the system", array('identifier', $field));
        }
    }
    $user = new Users_User();
    $user->id = $userId;
    if (!$user->retrieve()) {
        throw new Q_Exception("No user corresponds to that {$thing}", array('identifier', $field));
    }
    if ($logged_in_user = Users::loggedInUser() and $logged_in_user->id != $user->id) {
        throw new Q_Exception("That {$thing} belongs to someone else", array('identifier', $field));
    }
    if ($type === 'email') {
        $existing = $user->addEmail($identifier);
    } else {
        $existing = $user->addMobile($identifier);
    }
    if ($existing) {
        $existing->resendActivationMessage();
    }
    Users::$cache['user'] = $user;
}