some more work on realms

This commit is contained in:
friendica 2014-08-17 19:06:56 -07:00
parent de1198ccfe
commit 4a76925787
6 changed files with 54 additions and 15 deletions

View File

@ -47,7 +47,7 @@ define ( 'RED_PLATFORM', 'Red Matrix' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R'); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
define ( 'ZOT_REVISION', 1 ); define ( 'ZOT_REVISION', 1 );
define ( 'DB_UPDATE_VERSION', 1122 ); define ( 'DB_UPDATE_VERSION', 1123 );
define ( 'EOL', '<br />' . "\r\n" ); define ( 'EOL', '<br />' . "\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );

View File

@ -64,26 +64,40 @@ function sync_directories($dirmode) {
if($dirmode == DIRECTORY_MODE_STANDALONE || $dirmode == DIRECTORY_MODE_NORMAL) if($dirmode == DIRECTORY_MODE_STANDALONE || $dirmode == DIRECTORY_MODE_NORMAL)
return; return;
$r = q("select * from site where (site_flags & %d) and site_url != '%s'", $realm = get_directory_realm();
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY), if($realm == DIRECTORY_REALM) {
dbesc(z_root()) $r = q("select * from site where (site_flags & %d) and site_url != '%s' and ( site_realm = '%s' or site_realm = '') ",
); intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
dbesc($realm)
);
}
else {
$r = q("select * from site where (site_flags & %d) and site_url != '%s' and site_realm like '%s' ",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
dbesc(protect_sprintf('%' . $realm . '%'))
);
}
// If there are no directory servers, setup the fallback master // If there are no directory servers, setup the fallback master
// FIXME - what to do if we're in a different realm?
if((! $r) && (z_root() != DIRECTORY_FALLBACK_MASTER)) { if((! $r) && (z_root() != DIRECTORY_FALLBACK_MASTER)) {
$r = array( $r = array(
'site_url' => DIRECTORY_FALLBACK_MASTER, 'site_url' => DIRECTORY_FALLBACK_MASTER,
'site_flags' => DIRECTORY_MODE_PRIMARY, 'site_flags' => DIRECTORY_MODE_PRIMARY,
'site_update' => '0000-00-00 00:00:00', 'site_update' => '0000-00-00 00:00:00',
'site_directory' => DIRECTORY_FALLBACK_MASTER . '/dirsearch' 'site_directory' => DIRECTORY_FALLBACK_MASTER . '/dirsearch',
'site_realm' => DIRECTORY_REALM
); );
$x = q("insert into site ( site_url, site_flags, site_update, site_directory ) $x = q("insert into site ( site_url, site_flags, site_update, site_directory, site_realm )
values ( '%s', %d', '%s', '%s' ) ", values ( '%s', %d', '%s', '%s', '%s' ) ",
dbesc($r[0]['site_url']), dbesc($r[0]['site_url']),
intval($r[0]['site_flags']), intval($r[0]['site_flags']),
dbesc($r[0]['site_update']), dbesc($r[0]['site_update']),
dbesc($r[0]['site_directory']) dbesc($r[0]['site_directory']),
dbesc($r[0]['site_realm'])
); );
$r = q("select * from site where (site_flags & %d) and site_url != '%s'", $r = q("select * from site where (site_flags & %d) and site_url != '%s'",

View File

@ -2064,8 +2064,8 @@ function import_site($arr,$pubkey) {
} }
else { else {
$update = true; $update = true;
$r = q("insert into site ( site_location, site_url, site_access, site_flags, site_update, site_directory, site_register, site_sellpage ) $r = q("insert into site ( site_location, site_url, site_access, site_flags, site_update, site_directory, site_register, site_sellpage, site_realm )
values ( '%s', '%s', %d, %d, '%s', '%s', %d, '%s' )", values ( '%s', '%s', %d, %d, '%s', '%s', %d, '%s', '%s' )",
dbesc($site_location), dbesc($site_location),
dbesc($url), dbesc($url),
intval($access_policy), intval($access_policy),
@ -2073,7 +2073,8 @@ function import_site($arr,$pubkey) {
dbesc(datetime_convert()), dbesc(datetime_convert()),
dbesc($directory_url), dbesc($directory_url),
intval($register_policy), intval($register_policy),
dbesc($sellpage) dbesc($sellpage),
dbesc($site_realm)
); );
if(! $r) { if(! $r) {
logger('import_site: record create failed. ' . print_r($arr,true)); logger('import_site: record create failed. ' . print_r($arr,true));

View File

@ -1,6 +1,6 @@
<?php <?php
define( 'UPDATE_VERSION' , 1122 ); define( 'UPDATE_VERSION' , 1123 );
/** /**
* *
@ -1369,3 +1369,11 @@ ADD INDEX ( `site_realm` )");
} }
function update_r1122() {
$r = q("update site set site_realm = '%s' where true",
dbesc(DIRECTORY_REALM)
);
if($r)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}

View File

@ -325,8 +325,18 @@ function dir_parse_query($s) {
function list_public_sites() { function list_public_sites() {
$realm = get_directory_realm();
$r = q("select * from site where site_access != 0 and site_register !=0 order by rand()"); if($realm == DIRECTORY_REALM) {
$r = q("select * from site where site_access != 0 and site_register !=0 and ( site_realm = '%s' or site_realm = '') order by rand()",
dbesc($realm)
);
}
else {
$r = q("select * from site where site_access != 0 and site_register !=0 and site_realm = '%s' order by rand()",
dbesc($realm)
);
}
$ret = array('success' => false); $ret = array('success' => false);
if($r) { if($r) {

View File

@ -18,6 +18,12 @@ function sitelist_init(&$a) {
if($open) if($open)
$sql_extra = " and site_register = " . intval(REGISTER_OPEN) . " "; $sql_extra = " and site_register = " . intval(REGISTER_OPEN) . " ";
$realm = get_directory_realm();
if($realm == DIRECTORY_REALM) {
$sql_extra .= " and ( site_realm = '" . dbesc($realm) . "' or site_realm = '') ";
}
else
$sql_extra .= " and site_realm = '" . dbesc($realm) . "' ";
$result = array('success' => false); $result = array('success' => false);