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 --- include/identity.php | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) (limited to 'include') 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; -- cgit v1.2.3