diff options
author | friendica <info@friendica.com> | 2013-03-18 17:55:04 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2013-03-18 17:55:04 -0700 |
commit | 9d6a4093baf805891d03eca871c6e3b5ff66eec3 (patch) | |
tree | e251b1995d68d143179f5ea14e4c297bbb2eaac7 | |
parent | 11534ae91e535012f84a53a4026f5288d3a3e79f (diff) | |
download | volse-hubzilla-9d6a4093baf805891d03eca871c6e3b5ff66eec3.tar.gz volse-hubzilla-9d6a4093baf805891d03eca871c6e3b5ff66eec3.tar.bz2 volse-hubzilla-9d6a4093baf805891d03eca871c6e3b5ff66eec3.zip |
we'll need a special system channel (not attached to any account) for directory synchronisation
-rw-r--r-- | boot.php | 1 | ||||
-rw-r--r-- | include/identity.php | 36 | ||||
-rw-r--r-- | version.inc | 2 |
3 files changed, 29 insertions, 10 deletions
@@ -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 |