Exemplo n.º 1
0
 private function buildJoinsClause($conn_r)
 {
     $joins = array();
     if ($this->emails) {
         $email_table = new PhabricatorUserEmail();
         $joins[] = qsprintf($conn_r, 'JOIN %T email ON email.userPHID = user.PHID', $email_table->getTableName());
     }
     $joins = implode(' ', $joins);
     return $joins;
 }
Exemplo n.º 2
0
<?php

echo "Migrating user emails...\n";
$table = new PhabricatorUser();
$table->openTransaction();
$conn = $table->establishConnection('w');
$emails = queryfx_all($conn, 'SELECT phid, email FROM %T LOCK IN SHARE MODE', $table->getTableName());
$emails = ipull($emails, 'email', 'phid');
$etable = new PhabricatorUserEmail();
foreach ($emails as $phid => $email) {
    // NOTE: Grandfather all existing email in as primary / verified. We generate
    // verification codes because they are used for password resets, etc.
    echo "Migrating '{$phid}'...\n";
    queryfx($conn, 'INSERT INTO %T (userPHID, address, verificationCode, isVerified, isPrimary)
      VALUES (%s, %s, %s, 1, 1)', $etable->getTableName(), $phid, $email, Filesystem::readRandomCharacters(24));
}
$table->saveTransaction();
echo "Done.\n";
 protected function buildJoinClauseParts(AphrontDatabaseConnection $conn)
 {
     $joins = parent::buildJoinClauseParts($conn);
     if ($this->emails) {
         $email_table = new PhabricatorUserEmail();
         $joins[] = qsprintf($conn, 'JOIN %T email ON email.userPHID = user.PHID', $email_table->getTableName());
     }
     if ($this->nameTokens) {
         foreach ($this->nameTokens as $key => $token) {
             $token_table = 'token_' . $key;
             $joins[] = qsprintf($conn, 'JOIN %T %T ON %T.userID = user.id AND %T.token LIKE %>', PhabricatorUser::NAMETOKEN_TABLE, $token_table, $token_table, $token_table, $token);
         }
     }
     return $joins;
 }