From 9d6a4093baf805891d03eca871c6e3b5ff66eec3 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 18 Mar 2013 17:55:04 -0700 Subject: we'll need a special system channel (not attached to any account) for directory synchronisation --- boot.php | 1 + include/identity.php | 36 +++++++++++++++++++++++++++--------- version.inc | 2 +- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/boot.php b/boot.php index fe7af04db..d424a44d7 100644 --- a/boot.php +++ b/boot.php @@ -147,6 +147,7 @@ define ( 'PAGE_NORMAL', 0x0000 ); define ( 'PAGE_HIDDEN', 0x0001 ); define ( 'PAGE_AUTOCONNECT', 0x0002 ); define ( 'PAGE_APPLICATION', 0x0004 ); +define ( 'PAGE_DIRECTORY_CHANNEL', 0x0008 ); // system channel used for directory synchronisation define ( 'PAGE_REMOVED', 0x8000 ); diff --git a/include/identity.php b/include/identity.php index ae3aab972..2b7085e85 100644 --- a/include/identity.php +++ b/include/identity.php @@ -44,6 +44,21 @@ function validate_channelname($name) { } +// Create the system channel for directory synchronisation - this has no account attached + + +function create_dir_account() { + create_account(array( + 'account_id' => 'xxx', // This will create an identity with an (integer) account_id of 0, but account_id is required + 'nickname' => 'dir', + 'name' => 'Directory', + 'pageflags' => PAGE_DIRECTORY_CHANNEL|PAGE_HIDDEN, + 'publish' => 0 + )); +} + + + // Required: name, nickname, account_id // optional: pageflags @@ -107,7 +122,7 @@ function create_identity($arr) { dbesc($hash), dbesc($key['prvkey']), dbesc($key['pubkey']), - intval(PAGE_NORMAL) + intval($pageflags) ); $r = q("select * from channel where channel_account_id = %d @@ -123,7 +138,8 @@ function create_identity($arr) { $ret['channel'] = $r[0]; - set_default_login_identity($arr['account_id'],$ret['channel']['channel_id'],false); + if(intval($arr['account_id'])) + set_default_login_identity($arr['account_id'],$ret['channel']['channel_id'],false); // Ensure that there is a host keypair. @@ -200,16 +216,18 @@ function create_identity($arr) { intval(ABOOK_FLAG_SELF) ); + if(intval($ret['channel']['channel_account_id'])) { - // Create a group with no members. This allows somebody to use it - // right away as a default group for new contacts. - - require_once('include/group.php'); - group_add($newuid, t('Friends')); + // Create a group with no members. This allows somebody to use it + // right away as a default group for new contacts. - call_hooks('register_account', $newuid); + require_once('include/group.php'); + group_add($newuid, t('Friends')); - proc_run('php','include/directory.php', $ret['channel']['channel_id']); + call_hooks('register_account', $newuid); + + proc_run('php','include/directory.php', $ret['channel']['channel_id']); + } $ret['success'] = true; return $ret; diff --git a/version.inc b/version.inc index b55af91e4..990270dcc 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2013-03-15.253 +2013-03-18.256 -- cgit v1.2.3