diff --git a/domain_user/domain_user.module b/domain_user/domain_user.module index c4d5e96..f550ed1 100644 --- a/domain_user/domain_user.module +++ b/domain_user/domain_user.module @@ -113,11 +113,21 @@ function domain_user_disable() { function domain_user_domainload(&$domain) { // Zero is the default domain, and we don't want to invalidate it. if ($domain['domain_id'] > 0) { - $data = db_fetch_array(db_query("SELECT du.uid, u.status FROM {domain_user} du - INNER JOIN {users} u ON du.uid = u.uid - WHERE du.domain_id = %d", $domain['domain_id'])); - if ($data['uid']) { - $domain['uid'] = $data['uid']; + static $domains; + + // No static cache set, let's get it. + if (empty($domains)) { + // Load all Domain + User information. + $domain_users_all = db_query("SELECT domain_id, uid FROM {domain_user} du"); + // Fetch to domain_id => user-id keypairs. + while ($result = db_fetch_array($domain_users_all)) { + $domains[$result['domain_id']] = array('uid' => $result['uid']); + } + } + + // User ID found, update the domain. + if ($domains[$domain['domain_id']]['uid']) { + $domain['uid'] = $domains[$domain['domain_id']]['uid']; } } }