diff --git a/inc/always.php.in b/inc/always.php.in
index 9a2e7e9c..c66b2a37 100644
--- a/inc/always.php.in
+++ b/inc/always.php.in
@@ -127,6 +127,8 @@ $c->allow_get_email_visibility = false;
$c->permission_scan_depth = 2;
$c->expand_pdo_parameters = true;
$c->home_calendar_name = 'calendar';
+$c->home_out_calendar_name = '.out';
+$c->home_in_calendar_name = '.in';
$c->home_addressbook_name = 'addresses';
$c->carddav_max_resource_size = 6550000;
$c->enable_row_linking = true;
diff --git a/inc/auth-functions.php b/inc/auth-functions.php
index 779cfd98..aa5eb832 100644
--- a/inc/auth-functions.php
+++ b/inc/auth-functions.php
@@ -86,9 +86,27 @@ function CreateHomeCollections( $username, $default_timezone = null ) {
$c->default_collections = array();
if( !empty($c->home_calendar_name) )
- $c->default_collections[] = array( 'type' => 'calendar', 'name' => $c->home_calendar_name );
+ $c->default_collections[] = array(
+ 'type' => 'calendar',
+ 'name' => $c->home_calendar_name
+ );
+ if( !empty($c->home_out_calendar_name) )
+ $c->default_collections[] = array(
+ 'type' => 'calendar',
+ 'name' => $c->home_out_calendar_name,
+ 'displayname_suffix' => ' Outbox'
+ );
+ if( !empty($c->home_in_calendar_name) )
+ $c->default_collections[] = array(
+ 'type' => 'calendar',
+ 'name' => $c->home_in_calendar_name,
+ 'displayname_suffix' => ' Inbox'
+ );
if( !empty($c->home_addressbook_name) )
- $c->default_collections[] = array( 'type' => 'addressbook', 'name' => $c->home_addressbook_name );
+ $c->default_collections[] = array(
+ 'type' => 'addressbook',
+ 'name' => $c->home_addressbook_name
+ );
}
if ( !is_array($c->default_collections) || !count($c->default_collections) ) return true;
@@ -118,7 +136,13 @@ function CreateHomeCollections( $username, $default_timezone = null ) {
$params[':parent_container'] = $principal->dav_name();
$params[':dav_etag'] = '-1';
$params[':collection_path'] = $principal->dav_name().$v['name'].'/';
- $params[':displayname'] = ( !isset($v['displayname']) || empty($v['displayname']) ? $user_fullname.( $v['type']=='calendar' ? ' calendar' : ' addressbook' ) : str_replace(array('%fn', '%rfn'), array($user_fullname, $user_rfullname), $v['displayname']) );
+ if ( isset($v['displayname']) && ! empty($v['displayname']) ) {
+ $params[':displayname'] = str_replace(array('%fn', '%rfn'), array($user_fullname, $user_rfullname), $v['displayname']);
+ } elseif ( isset($v['displayname_suffix']) && ! empty($v['displayname_suffix']) ) {
+ $params[':displayname'] = $user_fullname . $v['displayname_suffix'];
+ } else {
+ $params[':displayname'] = $user_fullname . ($v['type']=='calendar' ? ' calendar' : ' addressbook');
+ }
$params[':resourcetypes'] = ( $v['type']=='calendar' ? '' : '' );
$params[':is_calendar'] = ( $v['type']=='calendar' ? true : false );
$params[':is_addressbook'] = ( $v['type']=='addressbook' ? true : false );
@@ -126,7 +150,7 @@ function CreateHomeCollections( $username, $default_timezone = null ) {
$qry = new AwlQuery( $sql, $params );
if ( $qry->Exec() ) {
- $c->messages[] = i18n('Home '.( $v['type']=='calendar' ? 'calendar' : 'addressbook' ).' added.');
+ $c->messages[] = i18n('Home '.( $v['type']=='calendar' ? 'calendar' : 'addressbook' ).' added.') . " " . $v['name'];
dbg_error_log("User",":Write: Created user's home ".( $v['type']=='calendar' ? 'calendar' : 'addressbook' )." at '%s'", $params[':collection_path'] );
// create value for urn:ietf:params:xml:ns:caldav:supported-calendar-component-set property