public static function getInstitutionalUserQuota($userID) { // TODO: config $dev = Z_ENV_TESTING_SITE ? "_test" : ""; $databaseName = "zotero_www{$dev}"; // Get maximum institutional quota by e-mail domain $sql = "SELECT IFNULL(MAX(storageQuota), 0) FROM {$databaseName}.users_email\n\t\t\t\tJOIN {$databaseName}.storage_institutions ON (SUBSTRING_INDEX(email, '@', -1)=domain)\n\t\t\t\tWHERE userID=?"; try { $institutionalDomainQuota = Zotero_WWW_DB_2::valueQuery($sql, $userID); } catch (Exception $e) { Z_Core::logError("WARNING: {$e} -- retrying on primary"); $institutionalDomainQuota = Zotero_WWW_DB_1::valueQuery($sql, $userID); } // Get maximum institutional quota by e-mail address $sql = "SELECT IFNULL(MAX(storageQuota), 0) FROM {$databaseName}.users_email\n\t\t\t\tJOIN {$databaseName}.storage_institution_email USING (email)\n\t\t\t\tJOIN {$databaseName}.storage_institutions USING (institutionID)\n\t\t\t\tWHERE userID=?"; try { $institutionalEmailQuota = Zotero_WWW_DB_2::valueQuery($sql, $userID); } catch (Exception $e) { Z_Core::logError("WARNING: {$e} -- retrying on primary"); $institutionalEmailQuota = Zotero_WWW_DB_1::valueQuery($sql, $userID); } $quota = max($institutionalDomainQuota, $institutionalEmailQuota); return $quota ? $quota : false; }
private static function getUsernameFromWWW($userID) { $sql = "SELECT username FROM users WHERE userID=?"; try { $username = Zotero_WWW_DB_2::valueQuery($sql, $userID); } catch (Exception $e) { Z_Core::logError("WARNING: {$e} -- retrying on primary"); $username = Zotero_WWW_DB_1::valueQuery($sql, $userID); } if (!$username) { throw new Exception("User {$userID} not found", Z_ERROR_USER_NOT_FOUND); } return $username; }