[Pkg-owncloud-commits] [owncloud] 16/20: Imported Upstream version 7.0.8~dfsg
David Prévot
taffit at moszumanska.debian.org
Tue Aug 11 15:57:45 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository owncloud.
commit 6afea8d74fe143ae40515801c7e604f6f172c6ab
Merge: 6c1e844 ebe5c05
Author: David Prévot <taffit at debian.org>
Date: Tue Aug 11 17:15:46 2015 +0200
Imported Upstream version 7.0.8~dfsg
apps/calendar/lib/app.php | 4 +-
apps/contacts/lib/addressbookprovider.php | 3 +-
apps/files_trashbin/lib/trashbin.php | 16 +-
apps/user_ldap/lib/user/manager.php | 4 +-
apps/user_ldap/tests/user/manager.php | 316 +++++++++++----------
core/command/upgrade.php | 30 +-
.../external_storage_configuration.txt | 14 +-
.../external_storage_configuration_gui.txt | 10 +-
.../server_to_server_configuration.txt | 25 +-
.../configuration/user_auth_ftp_smb_imap.txt | 6 +
.../_sources/configuration/user_auth_ldap.txt | 5 +-
core/doc/admin/release/_sources/index.txt | 14 +-
.../_sources/installation/installation_wizard.txt | 23 +-
.../installation/selinux_configuration.txt | 27 +-
.../_sources/installation/source_installation.txt | 5 +-
core/doc/admin/release/_sources/issues/index.txt | 3 +
.../admin/release/_sources/maintenance/restore.txt | 5 +-
.../external_storage_configuration.html | 16 +-
.../external_storage_configuration_gui.html | 10 +-
.../server_to_server_configuration.html | 22 +-
.../configuration/user_auth_ftp_smb_imap.html | 8 +
.../release/configuration/user_auth_ldap.html | 5 +
core/doc/admin/release/contents.html | 5 +-
core/doc/admin/release/index.html | 14 +-
core/doc/admin/release/installation/index.html | 3 +
.../release/installation/installation_wizard.html | 20 +-
.../installation/selinux_configuration.html | 25 +-
.../release/installation/source_installation.html | 5 +-
core/doc/admin/release/issues/index.html | 3 +
core/doc/admin/release/maintenance/restore.html | 4 +-
core/doc/admin/release/objects.inv | Bin 342 -> 370 bytes
lib/private/files/filesystem.php | 2 +-
lib/private/share/hooks.php | 4 +-
lib/private/updater.php | 8 +-
settings/js/users/groups.js | 6 +-
version.php | 6 +-
36 files changed, 443 insertions(+), 233 deletions(-)
diff --cc apps/calendar/lib/app.php
index 8af0ff3,0000000..62e7e22
mode 100644,000000..100644
--- a/apps/calendar/lib/app.php
+++ b/apps/calendar/lib/app.php
@@@ -1,580 -1,0 +1,582 @@@
+<?php
+/**
+ * Copyright (c) 2011 Bart Visscher <bartv at thisnet.nl>
+ * Copyright (c) 2012 Georg Ehrke <georg at owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ *
+ * This class manages our app actions
+ */
+OC_Calendar_App::$l10n = OCP\Util::getL10N('calendar');
+OC_Calendar_App::$tz = OC_Calendar_App::getTimezone();
+class OC_Calendar_App{
+ const CALENDAR = 'calendar';
+ const EVENT = 'event';
+ /**
+ * @brief language object for calendar app
+ */
+ public static $l10n;
+
+ /**
+ * @brief categories of the user
+ */
+ protected static $categories = null;
+
+ /**
+ * @brief timezone of the user
+ */
+ public static $tz;
+
+ /**
+ * @brief returns informations about a calendar
+ * @param int $id - id of the calendar
+ * @param bool $security - check access rights or not
+ * @param bool $shared - check if the user got access via sharing
+ * @return mixed - bool / array
+ */
+ public static function getCalendar($id, $security = true, $shared = false) {
+ if(! is_numeric($id)) {
+ return false;
+ }
+
+ $calendar = OC_Calendar_Calendar::find($id);
+ // FIXME: Correct arguments to just check for permissions
+ if($security === true && $shared === false) {
+ if(OCP\User::getUser() === $calendar['userid']){
+ return $calendar;
+ }else{
+ return false;
+ }
+ }
+ if($security === true && $shared === true) {
- if(OCP\Share::getItemSharedWithBySource('calendar', $id)) {
++ if(OCP\User::getUser() === $calendar['userid'] || OCP\Share::getItemSharedWithBySource('calendar', $id)) {
+ return $calendar;
++ } else {
++ return false;
+ }
+ }
+ return $calendar;
+ }
+
+ /**
+ * @brief returns informations about an event
+ * @param int $id - id of the event
+ * @param bool $security - check access rights or not
+ * @param bool $shared - check if the user got access via sharing
+ * @return mixed - bool / array
+ */
+ public static function getEventObject($id, $security = true, $shared = false) {
+ $event = OC_Calendar_Object::find($id);
+ if($shared === true || $security === true) {
+ $permissions = self::getPermissions($id, self::EVENT);
+ OCP\Util::writeLog('contacts', __METHOD__.' id: '.$id.', permissions: '.$permissions, OCP\Util::DEBUG);
+ if(self::getPermissions($id, self::EVENT)) {
+ return $event;
+ }
+ } else {
+ return $event;
+ }
+
+ return false;
+ }
+
+ /**
+ * @brief returns the parsed calendar data
+ * @param int $id - id of the event
+ * @param bool $security - check access rights or not
+ * @return mixed - bool / object
+ */
+ public static function getVCalendar($id, $security = true, $shared = false) {
+ $event_object = self::getEventObject($id, $security, $shared);
+ if($event_object === false) {
+ return false;
+ }
+ $vobject = OC_VObject::parse($event_object['calendardata']);
+ if(is_null($vobject)) {
+ return false;
+ }
+ return $vobject;
+ }
+
+ /**
+ * @brief checks if an event was edited and dies if it was
+ * @param (object) $vevent - vevent object of the event
+ * @param (int) $lastmodified - time of last modification as unix timestamp
+ * @return (bool)
+ */
+ public static function isNotModified($vevent, $lastmodified) {
+ $last_modified = $vevent->__get('LAST-MODIFIED');
+ if($last_modified && $lastmodified != $last_modified->getDateTime()->format('U')) {
+ OCP\JSON::error(array('modified'=>true));
+ exit;
+ }
+ return true;
+ }
+
+ /**
+ * @brief returns the default categories of ownCloud
+ * @return (array) $categories
+ */
+ public static function getDefaultCategories() {
+ return array(
+ (string)self::$l10n->t('Birthday'),
+ (string)self::$l10n->t('Business'),
+ (string)self::$l10n->t('Call'),
+ (string)self::$l10n->t('Clients'),
+ (string)self::$l10n->t('Deliverer'),
+ (string)self::$l10n->t('Holidays'),
+ (string)self::$l10n->t('Ideas'),
+ (string)self::$l10n->t('Journey'),
+ (string)self::$l10n->t('Jubilee'),
+ (string)self::$l10n->t('Meeting'),
+ (string)self::$l10n->t('Other'),
+ (string)self::$l10n->t('Personal'),
+ (string)self::$l10n->t('Projects'),
+ (string)self::$l10n->t('Questions'),
+ (string)self::$l10n->t('Work'),
+ );
+ }
+
+ /**
+ * @brief returns the vcategories object of the user
+ * @return (object) $vcategories
+ */
+ public static function getVCategories() {
+ if (is_null(self::$categories)) {
+ $categories = \OC::$server->getTagManager()->load('event');
+ if($categories->isEmpty('event')) {
+ self::scanCategories();
+ }
+ self::$categories = \OC::$server->getTagManager()
+ ->load('event', self::getDefaultCategories());
+ }
+ return self::$categories;
+ }
+
+ /**
+ * @brief returns the categories of the vcategories object
+ * @return (array) $categories
+ */
+ public static function getCategoryOptions() {
+ $getNames = function($tag) {
+ return $tag['name'];
+ };
+ $categories = self::getVCategories()->getTags();
+ $categories = array_map($getNames, $categories);
+ return $categories;
+ }
+
+ /**
+ * scan events for categories.
+ * @param $events VEVENTs to scan. null to check all events for the current user.
+ */
+ public static function scanCategories($events = null) {
+ if (is_null($events)) {
+ $calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser());
+ if(count($calendars) > 0) {
+ $events = array();
+ foreach($calendars as $calendar) {
+ if($calendar['userid'] === OCP\User::getUser()) {
+ $calendar_events = OC_Calendar_Object::all($calendar['id']);
+ $events = $events + $calendar_events;
+ }
+ }
+ }
+ }
+ if(is_array($events) && count($events) > 0) {
+ $vcategories = \OC::$server->getTagManager()->load('event');
+ $getName = function($tag) {
+ return $tag['name'];
+ };
+ $tags = array_map($getName, $vcategories->getTags());
+ $vcategories->delete($tags);
+ foreach($events as $event) {
+ $vobject = OC_VObject::parse($event['calendardata']);
+ if(!is_null($vobject)) {
+ $object = null;
+ if (isset($calendar->VEVENT)) {
+ $object = $calendar->VEVENT;
+ } else
+ if (isset($calendar->VTODO)) {
+ $object = $calendar->VTODO;
+ } else
+ if (isset($calendar->VJOURNAL)) {
+ $object = $calendar->VJOURNAL;
+ }
+ if ($object && isset($object->CATEGORIES)) {
+ $vcategories->addMultiple($object->CATEGORIES->getParts(), true, $event['id']);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * check VEvent for new categories.
+ * @see \OCP\ITags::addMultiple()
+ */
+ public static function loadCategoriesFromVCalendar($id, OC_VObject $calendar) {
+ $object = null;
+ if (isset($calendar->VEVENT)) {
+ $object = $calendar->VEVENT;
+ } else
+ if (isset($calendar->VTODO)) {
+ $object = $calendar->VTODO;
+ } else
+ if (isset($calendar->VJOURNAL)) {
+ $object = $calendar->VJOURNAL;
+ }
+ if ($object && isset($object->CATEGORIES)) {
+ self::getVCategories()->addMultiple($object->CATEGORIES->getParts(), true, $id);
+ }
+ }
+
+ /**
+ * @brief returns the options for the access class of an event
+ * @return array - valid inputs for the access class of an event
+ */
+ public static function getAccessClassOptions() {
+ return OC_Calendar_Object::getAccessClassOptions(self::$l10n);
+ }
+
+ /**
+ * @brief returns the options for the repeat rule of an repeating event
+ * @return array - valid inputs for the repeat rule of an repeating event
+ */
+ public static function getRepeatOptions() {
+ return OC_Calendar_Object::getRepeatOptions(self::$l10n);
+ }
+
+ /**
+ * @brief returns the options for the end of an repeating event
+ * @return array - valid inputs for the end of an repeating events
+ */
+ public static function getEndOptions() {
+ return OC_Calendar_Object::getEndOptions(self::$l10n);
+ }
+
+ /**
+ * @brief returns the options for an monthly repeating event
+ * @return array - valid inputs for monthly repeating events
+ */
+ public static function getMonthOptions() {
+ return OC_Calendar_Object::getMonthOptions(self::$l10n);
+ }
+
+ /**
+ * @brief returns the options for an weekly repeating event
+ * @return array - valid inputs for weekly repeating events
+ */
+ public static function getWeeklyOptions() {
+ return OC_Calendar_Object::getWeeklyOptions(self::$l10n);
+ }
+
+ /**
+ * @brief returns the options for an yearly repeating event
+ * @return array - valid inputs for yearly repeating events
+ */
+ public static function getYearOptions() {
+ return OC_Calendar_Object::getYearOptions(self::$l10n);
+ }
+
+ /**
+ * @brief returns the options for an yearly repeating event which occurs on specific days of the year
+ * @return array - valid inputs for yearly repeating events
+ */
+ public static function getByYearDayOptions() {
+ return OC_Calendar_Object::getByYearDayOptions();
+ }
+
+ /**
+ * @brief returns the options for an yearly repeating event which occurs on specific month of the year
+ * @return array - valid inputs for yearly repeating events
+ */
+ public static function getByMonthOptions() {
+ return OC_Calendar_Object::getByMonthOptions(self::$l10n);
+ }
+
+ /**
+ * @brief returns the options for an yearly repeating event which occurs on specific week numbers of the year
+ * @return array - valid inputs for yearly repeating events
+ */
+ public static function getByWeekNoOptions() {
+ return OC_Calendar_Object::getByWeekNoOptions();
+ }
+
+ /**
+ * @brief returns the options for an yearly or monthly repeating event which occurs on specific days of the month
+ * @return array - valid inputs for yearly or monthly repeating events
+ */
+ public static function getByMonthDayOptions() {
+ return OC_Calendar_Object::getByMonthDayOptions();
+ }
+
+ /**
+ * @brief returns the options for an monthly repeating event which occurs on specific weeks of the month
+ * @return array - valid inputs for monthly repeating events
+ */
+ public static function getWeekofMonth() {
+ return OC_Calendar_Object::getWeekofMonth(self::$l10n);
+ }
+
+ /**
+ * @return (string) $timezone as set by user or the default timezone
+ */
+ public static function getTimezone() {
+ return OCP\Config::getUserValue(OCP\User::getUser(),
+ 'calendar',
+ 'timezone',
+ date_default_timezone_get());
+ }
+
+ /**
+ * @brief Get the permissions for a calendar / an event
+ * @param (int) $id - id of the calendar / event
+ * @param (string) $type - type of the id (calendar/event)
+ * @return (int) $permissions - CRUDS permissions
+ * @param (string) $accessclass - access class (rfc5545, section 3.8.1.3)
+ * @see OCP\Share
+ */
+ public static function getPermissions($id, $type, $accessclass = '') {
+ $permissions_all = OCP\PERMISSION_ALL;
+
+ if($type == self::CALENDAR) {
+ $calendar = self::getCalendar($id, false, false);
+ if($calendar['userid'] == OCP\USER::getUser()) {
+ return $permissions_all;
+ } else {
+ $sharedCalendar = OCP\Share::getItemSharedWithBySource('calendar', $id);
+ if ($sharedCalendar) {
+ return $sharedCalendar['permissions'];
+ }
+ }
+ }
+ elseif($type == self::EVENT) {
+ if(OC_Calendar_Object::getowner($id) == OCP\USER::getUser()) {
+ return $permissions_all;
+ } else {
+ $object = OC_Calendar_Object::find($id);
+ $sharedCalendar = OCP\Share::getItemSharedWithBySource('calendar', $object['calendarid']);
+ $sharedEvent = OCP\Share::getItemSharedWithBySource('event', $id);
+ $calendar_permissions = 0;
+ $event_permissions = 0;
+ if ($sharedCalendar) {
+ $calendar_permissions = $sharedCalendar['permissions'];
+ }
+ if ($sharedEvent) {
+ $event_permissions = $sharedEvent['permissions'];
+ }
+ if ($accessclass === 'PRIVATE') {
+ return 0;
+ } elseif ($accessclass === 'CONFIDENTIAL') {
+ return OCP\PERMISSION_READ;
+ } else {
+ return max($calendar_permissions, $event_permissions);
+ }
+ }
+ }
+ return 0;
+ }
+
+ /*
+ * @brief Get the permissions for an access class
+ * @param (string) $accessclass - access class (rfc5545, section 3.8.1.3)
+ * @return (int) $permissions - CRUDS permissions
+ * @see OCP\Share
+ */
+ public static function getAccessClassPermissions($accessclass = '') {
+
+ switch($accessclass) {
+ case 'CONFIDENTIAL':
+ return OCP\PERMISSION_READ;
+ case 'PUBLIC':
+ case '':
+ return (OCP\PERMISSION_READ | OCP\PERMISSION_UPDATE | OCP\PERMISSION_DELETE);
+ default:
+ return 0;
+ }
+ }
+
+ /**
+ * @brief analyses the parameter for calendar parameter and returns the objects
+ * @param (string) $calendarid - calendarid
+ * @param (int) $start - unixtimestamp of start
+ * @param (int) $end - unixtimestamp of end
+ * @return (array) $events
+ */
+ public static function getrequestedEvents($calendarid, $start, $end) {
+ $events = array();
+ if($calendarid == 'shared_events') {
+ $singleevents = OCP\Share::getItemsSharedWith('event', OC_Share_Backend_Event::FORMAT_EVENT);
+ $calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser());
+ foreach($singleevents as $singleevent) {
+ // Skip this single event if the whole calendar is already shared with the user.
+ $calendarShared = false;
+ foreach ($calendars as $calendar) {
+ if ($singleevent['calendarid'] === $calendar['id']) {
+ $calendarShared = true;
+ break;
+ }
+ }
+ if ($calendarShared === true) {
+ continue;
+ }
+ $singleevent['summary'] .= ' (' . self::$l10n->t('by') . ' ' . OC_Calendar_Object::getowner($singleevent['id']) . ')';
+ $events[] = $singleevent;
+ }
+ }else{
+ if (is_numeric($calendarid)) {
+ $calendar = self::getCalendar($calendarid);
+ OCP\Response::enableCaching(0);
+ OCP\Response::setETagHeader($calendar['ctag']);
+ $events = OC_Calendar_Object::allInPeriod($calendarid, $start, $end, $calendar['userid'] !== OCP\User::getUser());
+ } else {
+ OCP\Util::emitHook('OC_Calendar', 'getEvents', array('calendar_id' => $calendarid, 'events' => &$events));
+ }
+ }
+ return $events;
+ }
+
+ /**
+ * @brief generates the output for an event which will be readable for our js
+ * @param (mixed) $event - event object / array
+ * @param (int) $start - DateTime object of start
+ * @param (int) $end - DateTime object of end
+ * @return (array) $output - readable output
+ */
+ public static function generateEventOutput(array $event, $start, $end) {
+ if(!isset($event['calendardata']) && !isset($event['vevent'])) {
+ return false;
+ }
+ if(!isset($event['calendardata']) && isset($event['vevent'])) {
+ $event['calendardata'] = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:ownCloud's Internal iCal System\n"
+ . $event['vevent']->serialize() . "END:VCALENDAR";
+ }
+ try{
+ $object = OC_VObject::parse($event['calendardata']);
+ if(!$object) {
+ \OCP\Util::writeLog('calendar', __METHOD__.' Error parsing event: '.print_r($event, true), \OCP\Util::DEBUG);
+ return array();
+ }
+
+ $output = array();
+
+ if($object->name === 'VEVENT') {
+ $vevent = $object;
+ } elseif(isset($object->VEVENT)) {
+ $vevent = $object->VEVENT;
+ } else {
+ \OCP\Util::writeLog('calendar', __METHOD__.' Object contains not event: '.print_r($event, true), \OCP\Util::DEBUG);
+ return $output;
+ }
+ $id = $event['id'];
+ if(OC_Calendar_Object::getowner($id) !== OCP\USER::getUser()) {
+ // do not show events with private or unknown access class
+ if (isset($vevent->CLASS)
+ && ($vevent->CLASS->value === 'PRIVATE'
+ || $vevent->CLASS->value === ''))
+ {
+ return $output;
+ }
+ $object = OC_Calendar_Object::cleanByAccessClass($id, $object);
+ }
+ $allday = ($vevent->DTSTART->getDateType() == Sabre\VObject\Property\DateTime::DATE)?true:false;
+ $last_modified = @$vevent->__get('LAST-MODIFIED');
+ $lastmodified = ($last_modified)?$last_modified->getDateTime()->format('U'):0;
+ $staticoutput = array('id'=>(int)$event['id'],
+ 'title' => (!is_null($vevent->SUMMARY) && $vevent->SUMMARY->value != '')? strtr($vevent->SUMMARY->value, array('\,' => ',', '\;' => ';')) : self::$l10n->t('unnamed'),
+ 'description' => isset($vevent->DESCRIPTION)?strtr($vevent->DESCRIPTION->value, array('\,' => ',', '\;' => ';')):'',
+ 'lastmodified'=>$lastmodified,
+ 'allDay'=>$allday);
+ if(OC_Calendar_Object::isrepeating($id) && OC_Calendar_Repeat::is_cached_inperiod($event['id'], $start, $end)) {
+ $cachedinperiod = OC_Calendar_Repeat::get_inperiod($id, $start, $end);
+ foreach($cachedinperiod as $cachedevent) {
+ $dynamicoutput = array();
+ if($allday) {
+ $start_dt = new DateTime($cachedevent['startdate'], new DateTimeZone('UTC'));
+ $end_dt = new DateTime($cachedevent['enddate'], new DateTimeZone('UTC'));
+ $dynamicoutput['start'] = $start_dt->format('Y-m-d');
+ $dynamicoutput['end'] = $end_dt->format('Y-m-d');
+ }else{
+ $start_dt = new DateTime($cachedevent['startdate'], new DateTimeZone('UTC'));
+ $end_dt = new DateTime($cachedevent['enddate'], new DateTimeZone('UTC'));
+ $start_dt->setTimezone(new DateTimeZone(self::$tz));
+ $end_dt->setTimezone(new DateTimeZone(self::$tz));
+ $dynamicoutput['start'] = $start_dt->format('Y-m-d H:i:s');
+ $dynamicoutput['end'] = $end_dt->format('Y-m-d H:i:s');
+ }
+ $output[] = array_merge($staticoutput, $dynamicoutput);
+ }
+ }else{
+ if(OC_Calendar_Object::isrepeating($id) || $event['repeating'] == 1) {
+ $object->expand($start, $end);
+ }
+ foreach($object->getComponents() as $singleevent) {
+ if(!($singleevent instanceof Sabre\VObject\Component\VEvent)) {
+ continue;
+ }
+ $dynamicoutput = OC_Calendar_Object::generateStartEndDate($singleevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($singleevent), $allday, self::$tz);
+ $output[] = array_merge($staticoutput, $dynamicoutput);
+ }
+ }
+ return $output;
+ }catch(Exception $e) {
+ $uid = 'unknown';
+ if(isset($event['uri'])){
+ $uid = $event['uri'];
+ }
+ \OCP\Util::writeLog('calendar', 'Event (' . $uid . ') contains invalid data: ' . $e->getMessage(),\OCP\Util::WARN);
+ }
+ }
+
+ /**
+ * @brief use to create HTML emails and send them
+ * @param $eventid The event id
+ * @param $location The location
+ * @param $description The description
+ * @param $dtstart The start date
+ * @param $dtend The end date
+ *
+ */
+ public static function sendEmails($eventid, $summary, $location, $description, $dtstart, $dtend) {
+ $user = \OCP\User::getUser();
+ $eventsharees = array();
+ $eventShareesNames = array();
+ $emails = array();
+ $sharedwithByEvent = \OCP\Share::getItemShared('event', $eventid);
+ if (is_array($sharedwithByEvent)) {
+ foreach ($sharedwithByEvent as $share) {
+ if ($share['share_type'] === \OCP\Share::SHARE_TYPE_USER || $share['share_type'] === \OCP\Share::SHARE_TYPE_GROUP) {
+ $eventsharees[] = $share;
+ }
+ }
+ foreach ($eventsharees as $sharee) {
+ $eventShareesNames[] = $sharee['share_with'];
+ }
+ }
+ foreach ($eventShareesNames as $name) {
+ $result = OC_Calendar_Calendar::getUsersEmails($name);
+ $emails[] = $result;
+ }
+ $adminmail = \OCP\Util::getDefaultEmailAddress('no-reply');
+ foreach ($emails as $email) {
+ if($email === null) {
+ continue;
+ }
+
+ $subject = 'Calendar Event Shared';
+
+ $message = '<html><body>';
+ $message .= '<table style="border:1px solid black;" cellpadding="10">';
+ $message .= "<tr style='background: #eee;'><td colspan='2'><strong>" . $user . '</strong><strong> has shared with you an event</strong></td></tr>';
+ $message .= '<tr><td><strong>Summary:</strong> </td><td>' . \OCP\Util::sanitizeHTML($summary) . '</td></tr>';
+ $message .= '<tr><td><strong>Location:</strong> </td><td>' . \OCP\Util::sanitizeHTML($location) . '</td></tr>';
+ $message .= '<tr><td><strong>Description:</strong> </td><td>' . \OCP\Util::sanitizeHTML($description) . '</td></tr>';
+ $message .= '</table>';
+ $message .= '</body></html>';
+
+ OCP\Util::sendMail($email, \OCP\User::getDisplayName(), $subject, $message, $adminmail, $user, $html=1);
+ }
+ }
+}
diff --cc apps/contacts/lib/addressbookprovider.php
index 9e44710,0000000..c94b91d
mode 100644,000000..100644
--- a/apps/contacts/lib/addressbookprovider.php
+++ b/apps/contacts/lib/addressbookprovider.php
@@@ -1,311 -1,0 +1,312 @@@
+<?php
+/**
+ * ownCloud - AddressbookProvider
+ *
+ * @author Thomas Tanghus
+ * @copyright 2012-2014 Thomas Tanghus (thomas at tanghus.net)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Contacts;
+use OCA\Contacts\Utils\JSONSerializer;
+use OCA\Contacts\Utils\Properties;
+use OCA\Contacts\Utils\TemporaryPhoto;
+use OCA\Contacts\VObject\VCard;
+
+/**
+ * This class manages our addressbooks.
+ * TODO: Port this to use the new backend
+ */
+class AddressbookProvider implements \OCP\IAddressBook {
+
+ const CONTACT_TABLE = '*PREFIX*contacts_cards';
+ const PROPERTY_TABLE = '*PREFIX*contacts_cards_properties';
+ const ADDRESSBOOK_TABLE = '*PREFIX*contacts_addressbooks';
+
+ /**
+ * Addressbook id
+ * @var integer
+ */
+ public $id;
+
+ /**
+ * Addressbook info array
+ * @var AddressBook
+ */
+ public $addressBook;
+
+ /**
+ * Constructor
+ * @param AddressBook $addressBook
+ */
+ public function __construct($addressBook) {
+ $this->addressBook = $addressBook;
+ $this->app = new App();
+ }
+
+ public function getAddressbook() {
+ return $this->addressBook;
+ }
+
+ /**
+ * @return string defining the technical unique key
+ */
+ public function getKey() {
+ $metaData = $this->addressBook->getMetaData();
+ return $metaData['backend'].':'.$metaData['id'];
+ }
+
+ /**
+ * In comparison to getKey() this function returns a human readable (maybe translated) name
+ * @return mixed
+ */
+ public function getDisplayName() {
+ return $this->addressBook->getDisplayName();
+ }
+
+ /**
+ * @return mixed
+ */
+ public function getPermissions() {
+ return $this->addressBook->getPermissions();
+ }
+
+ /**
+ * @param $pattern
+ * @param $searchProperties
+ * @param $options
+ * @return array|false
+ */
+ public function search($pattern, $searchProperties, $options) {
+ $propTable = self::PROPERTY_TABLE;
+ $contTable = self::CONTACT_TABLE;
+ $addrTable = self::ADDRESSBOOK_TABLE;
+ $results = array();
+
+ /**
+ * This query will fetch all contacts which match the $searchProperties
+ * It will look up the addressbookid of the contact and the user id of the owner of the contact app
+ */
+ $query = <<<SQL
+ SELECT
+ DISTINCT
+ `$propTable`.`contactid`,
+ `$contTable`.`addressbookid`,
+ `$addrTable`.`userid`
+
+ FROM
+ `$propTable`
+ INNER JOIN
+ `$contTable`
+ ON `$contTable`.`id` = `$propTable`.`contactid`
+ INNER JOIN `$addrTable`
+ ON `$addrTable`.id = `$contTable`.addressbookid
+ WHERE
+ `$contTable`.addressbookid = ? AND
+ (
+SQL;
+
+ $params = array();
- $params[] = $this->addressBook->getMetaData()['id'];
++ $meta = $this->addressBook->getMetaData();
++ $params[] = $meta['id'];
+ foreach ($searchProperties as $property) {
+ $params[] = $property;
+ $params[] = '%' . $pattern . '%';
+ $query .= '(`name` = ? AND `value` LIKE ?) OR ';
+ }
+ $query = substr($query, 0, strlen($query) - 4);
+ $query .= ')';
+
+ $stmt = \OCP\DB::prepare($query);
+ $result = $stmt->execute($params);
+ if (\OCP\DB::isError($result)) {
+ \OCP\Util::writeLog('contacts', __METHOD__ . 'DB error: ' . \OC_DB::getErrorMessage($result),
+ \OCP\Util::ERROR);
+ return false;
+ }
+ while ($row = $result->fetchRow()) {
+ $id = $row['contactid'];
+ $addressbookKey = $row['addressbookid'];
+ // Check if we are the owner of the contact
+ if ($row['userid'] !== \OCP\User::getUser()) {
+ // we aren't the owner of the contact
+ try {
+ // it is possible that the contact is shared with us
+ // if so, $contact will be an object
+ // if not getContact will throw an Exception
+ $contact = $this->app->getContact('shared', $addressbookKey, $id);
+ } catch (\Exception $e){
+ // the contact isn't shared with us
+ $contact = null;
+ }
+ } else {
+ // We are the owner of the contact
+ // thus we can easily fetch it
+ $contact = $this->app->getContact('local', $addressbookKey, $id);
+ }
+ if ($contact !== null) {
+ $j = JSONSerializer::serializeContact($contact);
+ $j['data']['id'] = $id;
+ if (isset($contact->PHOTO)) {
+ $url = \OCP\Util::linkToRoute('contacts_contact_photo',
+ array(
+ 'backend' => $contact->getBackend()->name,
+ 'addressBookId' => $addressbookKey,
+ 'contactId' => $contact->getId()
+ ));
+ $url = \OC_Helper::makeURLAbsolute($url);
+ $j['data']['PHOTO'] = "VALUE=uri:$url";
+ }
+ $results[] = $this->convertToSearchResult($j);
+ }
+ }
+ return $results;
+ }
+
+ /**
+ * @param $properties
+ * @return mixed
+ */
+ public function createOrUpdate($properties) {
+ $id = null;
+
+ /**
+ * @var \OCA\Contacts\VObject\VCard
+ */
+ $vcard = null;
+ if(array_key_exists('id', $properties)) {
+ // TODO: test if $id belongs to this addressbook
+ $id = $properties['id'];
+ // TODO: Test $vcard
+ $vcard = $this->addressBook->getChild($properties['id']);
+ foreach(array_keys($properties) as $name) {
+ if(isset($vcard->{$name})) {
+ unset($vcard->{$name});
+ }
+ }
+ } else {
+ $vcard = \Sabre\VObject\Component::create('VCARD');
+ $uid = substr(md5(rand().time()), 0, 10);
+ $vcard->add('UID', $uid);
+ try {
+ $id = $this->addressBook->addChild($vcard);
+ } catch(\Exception $e) {
+ \OCP\Util::writeLog('contacts', __METHOD__ . ' ' . $e->getMessage(), \OCP\Util::ERROR);
+ return false;
+ }
+ }
+
+ foreach($properties as $name => $value) {
+ switch($name) {
+ case 'ADR':
+ case 'N':
+ if(is_array($value)) {
+ $property = \Sabre\VObject\Property::create($name);
+ $property->setParts($value);
+ $vcard->add($property);
+ } else {
+ $vcard->{$name} = $value;
+ }
+ break;
+ case 'BDAY':
+ // TODO: try/catch
+ $date = New \DateTime($value);
+ $vcard->BDAY = $date->format('Y-m-d');
+ $vcard->BDAY->VALUE = 'DATE';
+ break;
+ case 'EMAIL':
+ case 'TEL':
+ case 'IMPP': // NOTE: We don't know if it's GTalk, Jabber etc. only the protocol
+ case 'URL':
+ if(is_array($value)) {
+ foreach($value as $val) {
+ $vcard->add($name, strip_tags($val));
+ }
+ } else {
+ $vcard->add($name, strip_tags($value));
+ }
+ default:
+ $vcard->{$name} = $value;
+ break;
+ }
+ }
+
+ try {
+ VCard::edit($id, $vcard);
+ } catch(\Exception $e) {
+ \OCP\Util::writeLog('contacts', __METHOD__ . ' ' . $e->getMessage(), \OCP\Util::ERROR);
+ return false;
+ }
+
+ $asarray = VCard::structureContact($vcard);
+ $asarray['id'] = $id;
+ return $asarray;
+ }
+
+ /**
+ * @param $id
+ * @return mixed
+ */
+ public function delete($id) {
+ try {
+ $query = 'SELECT COUNT(*) as `count` FROM `*PREFIX*contacts_cards` WHERE `id` = ? AND `addressbookid` = ?';
+ $stmt = \OCP\DB::prepare($query);
+ $result = $stmt->execute(array($id, $this->id));
+ if (\OCP\DB::isError($result)) {
+ \OCP\Util::writeLog('contacts', __METHOD__ . 'DB error: ' . \OC_DB::getErrorMessage($result),
+ \OCP\Util::ERROR);
+ return false;
+ }
+ if((int)$result['count'] === 0) {
+ \OCP\Util::writeLog('contacts', __METHOD__
+ . 'Contact with id ' . $id . 'doesn\'t belong to addressbook with id ' . $this->id,
+ \OCP\Util::ERROR);
+ return false;
+ }
+ } catch(\Exception $e) {
+ \OCP\Util::writeLog('contacts', __METHOD__ . ', exception: ' . $e->getMessage(),
+ \OCP\Util::ERROR);
+ return false;
+ }
+ return VCard::delete($id);
+ }
+
+ /**
+ * @param $j
+ * @return array
+ */
+ private function convertToSearchResult($j) {
+ $data = $j['data'];
+ $result = array();
+ foreach( $data as $key => $d) {
+ $d = $data[$key];
+ if (in_array($key, Properties::$multiProperties)) {
+ $result[$key] = array_map(function($v){
+ return $v['value'];
+ }, $d);
+ } else {
+ if (is_array($d)) {
+ $result[$key] = $d[0]['value'];
+ } else {
+ $result[$key] = $d;
+ }
+ }
+ }
+
+ return $result;
+ }
+
+}
diff --cc core/doc/admin/release/_sources/configuration/external_storage_configuration.txt
index 376a8c3,0000000..c8afd09
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/configuration/external_storage_configuration.txt
+++ b/core/doc/admin/release/_sources/configuration/external_storage_configuration.txt
@@@ -1,478 -1,0 +1,486 @@@
+=================================================
+Configuring External Storage (Configuration File)
+=================================================
+
+Since ownCloud 4.0 it is possible to configure the filesystem to mount external
+storage providers into ownCloud's virtual file system. You can configure these
+file systems by creating and editing :file:`data/mount.json`. This file contains
+all settings in JSON (JavaScript Object Notation) format. At the moment two
+different types of entries exist:
+
+- **Group mounts:** each entry configures a mount for each user in group.
+- **User mounts:** each entry configures a mount for a single user or for all
+ users.
+
+For each type, there is a JSON array with the user/group name as key, and an
+array of configuration entries as value. Each entry consist of the class name
+of the storage backend and an array of backend specific options and will be
+replaced by the user login. The template **$user** can be used in the mount
+point or backend options. As of writing the following storage backends are
+available for use:
+
+- Local file system
+- FTP (or FTPS)
+- SFTP
+- SMB
+- WebDAV
+- `Amazon S3`_
+- `Dropbox`_
+- `Google Drive`_
+- `OpenStack Swift`_
+
+.. note:: You need to enable the `External storage support` app first before you
+ can use the examples below. See the section :doc:`external_storage_configuration_gui`
+ how to do this.
+
++.. note:: A non-blocking or correctly configured SELinux setup is needed
++ for these backends to work. Please refer to the :ref:`selinux-config-label`.
++
+Please keep in mind that some formatting has been applied and carriage returns
+have been added for better readability. In the :file:`data/mount.json` all
+values need to be concatenated and written in a row without these modifications!
+
+It is recommended to use the :doc:`Web-GUI <external_storage_configuration_gui>` in the
+administrator panel to add, remove or modify mount options to prevent any problems!
+
+Using self-signed certificates
+------------------------------
+
+When using self-signed certificates for external storage mounts the certificate
+needs to be imported in the personal settings of the user. Please refer to `this <http://ownclouden.blogspot.de/2014/11/owncloud-https-external-mount.html>`_
+blogpost for more informations.
+
+Adding files to external storages
+---------------------------------
+
+In general it is recommended to configure the background job ``Webcron`` or
+``Cron`` as described in :doc:`background_jobs_configuration`
+so ownCloud is able to detect files added to your external storages without the need
+that a users is browsing your ownCloud installation.
+
+Please also be aware that ownCloud might not always be able to find out what has been
+changed remotely (files changes without going through ownCloud), especially
+when it's very deep in the folder hierarchy of the external storage.
+
+You might need to setup a cron job that runs ``sudo -u www-data php occ files:scan --all``
+(or replace "--all" with the user name, see also :doc:`occ_command`)
+to trigger a rescan of the user's files periodically (for example every 15 minutes), which includes
+the mounted external storage.
+
+Example
+-------
+
+.. code-block:: json
+
+ {"group":{
+ "admin":{
+ "\/$user\/files\/Admin_Stuff":{
+ "class":"\\OC\\Files\\Storage\\Local",
+ "options":{ ... },
+ "priority":150
+ }
+ }
+ }
+ "user":{
+ "all":{
+ "\/$user\/files\/Pictures":{
+ "class":"\\OC\\Files\\Storage\\DAV",
+ "options":{ ... },
+ "priority":100
+ }
+ }
+ "someuser":{
+ "\/someuser\/files\/Music":{
+ "class":"\\OC\\Files\\Storage\\FTP",
+ "options":{ ... },
+ "priority":100
+ }
+ }
+ }
+ }
+
+Priorities
+----------
+
+An advanced feature is available, only configurable directly in
+:file:`data/mount.json`, which allows mount configurations to have an associated
+priority. When two or more valid mount configurations exist for the same mount point,
+the one with the highest priority (defined by the largest number) will take precedence
+and become the active mount for the user.
+
+Each backend has a default priority, assigned when a mount configuration with that
+backend is created. The default priority will be shown in the example section for
+each backend below. Should a backend not provide a default priority, a value of 100
+will be used.
+
+There is also a concept of priority types, to preserve compatibility with
+previous mount configuration parsing. Mount configurations are evaluated in the
+following order, with later mount types always overriding a previous mount type:
+
+- user -> all : global mount configurations
+- group : group mount configurations
+- user (not all) : per-user mount configurations
+- :file:`data/$user/mount.json` : personal mount configurations
+
+Backends
+--------
+
+Local Filesystem
+~~~~~~~~~~~~~~~~
+
+The local filesystem backend mounts a folder on the server into the virtual
+filesystem, the class to be used is **\\OC\\Files\\Storage\\Local**\ and
+takes the following options:
+
+- **datadir** : the path to the local directory to be mounted
+
+
+Example
+^^^^^^^
+
+.. code-block:: json
+
+ { "class":"\\OC\\Files\\Storage\\Local",
+ "options":{ "datadir":"\/mnt\/additional_storage" },
+ "priority":150
+ }
+
+.. note:: You must ensure that the web server has sufficient permissions on the folder.
+
+FTP (or FTPS)
+~~~~~~~~~~~~~
+
+The FTP backend mounts a folder on a remote FTP server into the virtual
+filesystem and is part of the ‘External storage support’ app, the class
+to be used is **\\OC\\Files\\Storage\\FTP**\ and takes the following
+options:
+
+- **host**: the hostname of the ftp server, and optionally the port number
+- **user**: the username used to login on the ftp server
+- **password**: the password to login on the ftp server
+- **secure**: whether to use ftps:// (FTP over TLS) to connect to the ftp
+ server instead of ftp:// (optional, defaults to false)
+- **root**: the folder inside the ftp server to mount (optional, defaults
+ to ‘/’)
+
+
+Example
+^^^^^^^
+
+.. code-block:: json
+
+ { "class":"\\OC\\Files\\Storage\\FTP",
+ "options":{
+ "host":"ftp.myhost.com:21",
+ "user":"johndoe",
+ "password":"secret",
+ "root":"\/Videos",
+ "secure":"false"
+ },
+ "priority":100
+ }
+
+.. note:: PHP needs to be build with FTP support for this backend to work.
+
- .. note:: A non-blocking or correctly configured SELinux setup is needed
- for this backend to work.
++.. note:: The external storage ``FTP/FTPS/SFTP`` needs the ``allow_url_fopen`` PHP
++ setting to be set to ``1``. When having connection problems make sure that it is
++ not set to ``0`` in your ``php.ini``.
+
+SFTP
+~~~~
+
+The SFTP backend mounts a folder on a remote SSH server into the virtual
+filesystem and is part of the ‘External storage support’ app. The class
+to be used is **\\OC\\Files\\Storage\\SFTP**\ and takes the following
+options:
+
+- **host**: the hostname of the SSH server
+- **user**: the username used to login to the SSH server
+- **password**: the password to login on the SSH server
+- **root**: the folder inside the SSH server to mount (optional, defaults
+ to ‘/’)
+
+
+Example
+^^^^^^^
+
+.. code-block:: json
+
+ { "class":"\\OC\\Files\\Storage\\SFTP",
+ "options":{
+ "host":"ssh.myhost.com",
+ "user":"johndoe",
+ "password":"secret",
+ "root":"\/Books"
+ },
+ "priority":100
+ }
+
+.. note:: PHP needs to be build with SFTP support for this backend to work.
+
++.. note:: The external storage ``FTP/FTPS/SFTP`` needs the ``allow_url_fopen`` PHP
++ setting to be set to ``1``. When having connection problems make sure that it is
++ not set to ``0`` in your ``php.ini``.
++
+SMB
+~~~
+The SMB backend mounts a folder on a remote Samba server, a NAS appliance or
+a Windows machine into the virtual file system. It is part of the ‘External
+storage support’ app, the class to be used is **\\OC\\Files\\Storage\\SMB**\ and
+takes the following options:
+
+- **host**: the host name of the samba server
+- **user**: the username or domain/username to login on the samba server
+- **password**: the password to login on the samba server
+- **share**: the share on the samba server to mount
+- **root**: the folder inside the samba share to mount (optional, defaults
+ to ‘/’) To assign the ownCloud logon username automatically to the subfolder, use ``$user`` instead of a particular subfolder name.
+
+
+.. note:: The SMB backend requires **smbclient** to be installed on the server.
+
+Example
+^^^^^^^
+With username only:
+
+.. code-block:: json
+
+ { "class":"\\OC\\Files\\Storage\\SMB",
+ "options":{
+ "host":"myhost.com",
+ "user":"johndoe",
+ "password":"secret",
+ "share":"\/test",
+ "root":"\/Pictures"
+ },
+ "priority":100
+ }
+
+With domainname and username:
+
+.. code-block:: json
+
+ { "class":"\\OC\\Files\\Storage\\SMB",
+ "options":{
+ "host":"myhost.com",
+ "user":"domain\/johndoe",
+ "password":"secret",
+ "share":"\/test",
+ "root":"\/Pictures"
+ },
+ "priority":100
+ }
+
+WebDAV
+~~~~~~
+
+The WebDAV backend mounts a folder on a remote WebDAV server into the
+virtual filesystem and is part of the ‘External storage support’ app,
+the class to be used is **\\OC\\Files\\Storage\\DAV**\ and takes the
+following options:
+
+- **host**: the hostname of the webdav server.
+- **user**: the username used to login on the webdav server
+- **password**: the password to login on the webdav server
+- **secure**: whether to use https:// to connect to the webdav server
+ instead of http:// (optional, defaults to false)
+- **root**: the folder inside the webdav server to mount (optional,
+ defaults to ‘/’)
+
+
+Example
+^^^^^^^
+
+.. code-block:: json
+
+ { "class":"\\OC\\Files\\Storage\\DAV",
+ "options":{
+ "host":"myhost.com\/webdav.php",
+ "user":"johndoe",
+ "password":"secret",
+ "secure":"true"
+ },
+ "priority":100
+ }
+
+Amazon S3
+~~~~~~~~~
+
+The Amazon S3 backend mounts a bucket in the Amazon cloud into the virtual
+filesystem and is part of the ‘External storage support’ app, the class to
+be used is **\\OC\\Files\\Storage\\AmazonS3**\ and takes the following
+options:
+
+- **key**: the key to login to the Amazon cloud
+- **secret**: the secret to login to the Amazon cloud
+- **bucket**: the bucket in the Amazon cloud to mount
+
+
+Example
+^^^^^^^
+
+.. code-block:: json
+
+ { "class":"\\OC\\Files\\Storage\\AmazonS3",
+ "options":{
+ "key":"key",
+ "secret":"secret",
+ "bucket":"bucket"
+ },
+ "priority":100
+ }
+
+Dropbox
+~~~~~~~
+
+The Dropbox backend mounts a dropbox in the Dropbox cloud into the virtual
+filesystem and is part of the ‘External storage support’ app, the class to
+be used is **\\OC\\Files\\Storage\\Dropbox**\ and takes the following options:
+
+- **configured**: whether the drive has been configured or not (true or false)
+- **app_key**: the app key to login to your Dropbox
+- **app_secret**: the app secret to login to your Dropbox
+- **token**: the OAuth token to login to your Dropbox
+- **token_secret**: the OAuth secret to login to your Dropbox
+
+
+Example
+^^^^^^^
+
+.. code-block:: json
+
+ { "class":"\\OC\\Files\\Storage\\Dropbox",
+ "options":{
+ "configured":"#configured",
+ "app_key":"key",
+ "app_secret":"secret",
+ "token":"#token",
+ "token_secret":"#token_secret"
+ },
+ "priority":100
+ }
+
+Google Drive
+~~~~~~~~~~~~
+
+The Google Drive backend mounts a share in the Google cloud into the virtual
+filesystem and is part of the ‘External storage support’ app, the class to
+be used is **\\OC\\Files\\Storage\\Google**\ and is done via an OAuth2.0 request.
+That means that the App must be registered through the Google APIs Console.
+The result of the registration process is a set of values (incl. client_id, client_secret).
+It takes the following options:
+
+- **configured**: whether the drive has been configured or not (true or false)
+- **client_id**: the client id to login to the Google drive
+- **client_secret**: the client secret to login to the Google drive
+- **token**: a compound value including access and refresh tokens
+
+Example
+^^^^^^^
+
+.. code-block:: json
+
+ { "class":"\\OC\\Files\\Storage\\Google",
+ "options":{
+ "configured":"#configured",
+ "client_id":"#client_id",
+ "client_secret":"#client_secret",
+ "token":"#token"
+ },
+ "priority":100
+ }
+
+OpenStack Swift
+~~~~~~~~~~~~~~~
+
+The Swift backend mounts a container on an OpenStack Object Storage server
+into the virtual filesystem and is part of the ‘External storage support’
+app, the class to be used is **\\OC\\Files\\Storage\\SWIFT**\ and takes
+the following options:
+
+- **host**: the hostname of the authentication server for the swift
+ storage.
+- **user**: the username used to login on the swift server
+- **token**: the authentication token to login on the swift server
+- **secure**: whether to use ftps:// to connect to the swift server instead
+ of ftp:// (optional, defaults to false)
+- **root**: the container inside the swift server to mount (optional,
+ defaults to ‘/’)
+
+Example
+^^^^^^^
+
+.. code-block:: json
+
+ { "class":"\\OC\\Files\\Storage\\SWIFT",
+ "options":{
+ "host":"swift.myhost.com\/auth",
+ "user":"johndoe",
+ "token":"secret",
+ "root":"\/Videos",
+ "secure":"true"
+ },
+ "priority":100
+ }
+
+External Storage Password Management
+------------------------------------
+
+ownCloud handles passwords for external mounts differently than regular
+ownCloud user passwords.
+
+The regular user and file share passwords (when you use the default ownCloud
+user backend) are stored using a strong cryptographically secure hashing
+mechanism in the database. On a new user account with a new password, the
+password is hashed and stored in the ownCloud database. The plain-text password
+is never stored. When the user logs in, the hash of the password they enter is
+compared with the hash in the database. When the hashes match the user is
+allowed access. These are not recoverable, so when a user loses a password the
+only option is to create a new password.
+
+Passwords which are used to connect against external storage (e.g.
+SMB or FTP), there we have to differentiate again between different
+implementations:
+
+1. **Login with ownCloud credentials**
+
+When a mountpoint has this option, for example ``SMB / CIFS using OC login``,
+the password will be intercepted when a user logs in and written to the PHP
+session (which is a file on the filesystem), and written encrypted into the
+session with a key from the configuration file. Every time that password is
+required ownCloud reads it from the PHP session file.
+
+When you use this option, features such as sharing will not work properly from
+that mountpoint when the user is not logged-in.
+
+Depending on the implementation of the application, this means that the password
+could get leaked in the ``ps`` output, as we use ``smbclient`` for SMB storage
+access in the community version. There is a `bug report on this
+<https://github.com/owncloud/core/issues/6092>`_. Consequently, we're currently
+evaluating an alternative approach accessing the library directly, and thus not
+leaking the password anymore. This is already implemented in the Enterprise
+Edition in our Windows Network Drive application, and it will get into the
+community version once we have streamlined the code of the ``files_external``
+application a little bit more.
+
+2. **Stored credentials**
+
+When you enter credentials into the ``files_external`` dialog those are stored
+on the filesystem and encrypted with a key stored in ``config.php``. This is
+required since ownCloud needs access to those files and shares even when the
+user is not logged-in to have sharing and other key features properly working.
+
+To sum up:
+
+The "login with ownCloud credentials" SMB function in the community edition
+exposes the password in the server system's process list. If you want to get
+around this limitation without waiting for it to be addressed in CE you can get
+the Enterprise Edition. However, even then the password is stored in the PHP
+session and a malicious admin could access it. You can protect your PHP session
+files using protections available in your filesystem. Stored credentials are
+always accessible to the ownCloud instance.
+
+.. _Amazon S3: http://aws.amazon.com/de/s3/
+.. _Dropbox: https://www.dropbox.com/
+.. _Google Drive: https://drive.google.com/start
- .. _OpenStack Swift: http://openstack.org/projects/storage/
++.. _OpenStack Swift: http://openstack.org/projects/storage/
diff --cc core/doc/admin/release/_sources/configuration/external_storage_configuration_gui.txt
index c7dff8c,0000000..94a6df8
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/configuration/external_storage_configuration_gui.txt
+++ b/core/doc/admin/release/_sources/configuration/external_storage_configuration_gui.txt
@@@ -1,372 -1,0 +1,376 @@@
+==================================
+Configuring External Storage (GUI)
+==================================
+
+The External Storage Support application enables you to mount external storage services
+and devices as secondary ownCloud storage devices. You may also allow users to
+mount their own external storage services.
+
+All of these connect to a LAN ownCloud server that is not publicly accessible,
+with one exception: Google Drive requires an ownCloud server with a registered
+domain name that is accessible over the Internet.
+
+Supported mounts
+----------------
+
+ownCloud admins may mount these external storage services and devices:
+
+* Local
+* Amazon S3 and S3 compliant
+* Dropbox
+* FTP/SFTP
+* Google Drive
+* OpenStack Object Storage
+* SMB/CIFS
+* SMB/CIFS using OC login
+* ownCloud
+* WebDAV
+
+ownCloud users can be given permission to mount any of these, except local
+storage.
+
+To understand how ownCloud manages passwords for external mounts, and the
+security implications, see the **External Storage Password Management** section
+of :doc:`external_storage_configuration`.
+
++.. note:: A non-blocking or correctly configured SELinux setup is needed
++ for these backends to work. Please refer to the :ref:`selinux-config-label`.
++
+Enabling External Storage Support
+---------------------------------
+
+The ``External storage support`` application is enabled on the ``Apps`` page.
+
+.. figure:: ../images/external-storage-app-enable.png
+
+After enabling it, go to your ``Admin`` page to set up your external
+storage mounts.
+
+.. figure:: ../images/external-storage-app-add.png
+
+When your configuration is correct you'll see a green light at the left, and if
+it isn't you'll see a red light.
+
+Check ``Enable User External Storage`` to allow your users to mount their own
+external storage services, and check the services you want to allow.
+
+.. figure:: ../images/external-storage-app-usermounts.png
+
+After creating your external storage mounts, you can share them and control
+permissions just like any other ownCloud share.
+
+Using self-signed certificates
+------------------------------
+
+When using self-signed certificates for external storage mounts the certificate
+needs to be imported in the personal settings of the user. Please refer to `this <http://ownclouden.blogspot.de/2014/11/owncloud-https-external-mount.html>`_
+blogpost for more informations.
+
+Adding files to external storages
+---------------------------------
+
+In general it is recommended to configure the background job ``Webcron`` or
+``Cron`` as described in :doc:`background_jobs_configuration`
+so ownCloud is able to detect files added to your external storages without the need
+that a users is browsing your ownCloud installation.
+
+Please also be aware that ownCloud might not always be able to find out what has been
+changed remotely (files changes without going through ownCloud), especially
+when it's very deep in the folder hierarchy of the external storage.
+
+You might need to setup a cron job that runs ``sudo -u www-data php occ files:scan --all``
+(or replace "--all" with the user name, see also :doc:`occ_command`)
+to trigger a rescan of the user's files periodically (for example every 15 minutes), which includes
+the mounted external storage.
+
+Local Storage
+-------------
+
+Use this to mount any directory on your ownCloud server that is outside of your
+ownCloud ``data/`` directory. This directory must be readable and writable by
+your HTTP server user.
+
+In the ``Folder name`` field enter the folder name that you want to appear on
+your ownCloud ``Files`` page.
+
+In the ``Configuration`` field enter the full filepath of the directory you
+want to mount.
+
+In the ``Available for`` field enter the users or groups who have permission to
+access the mount.
+
+.. figure:: ../images/external-storage-app-local.png
+
+Amazon S3
+---------
+
+All you need to connect your Amazon S3 buckets to ownCloud is your S3 Access
+Key, Secret Key, and your bucket name.
+
+In the ``Folder name`` field enter the folder name that you want to appear on
+your ownCloud ``Files`` page.
+
+In the ``Access Key`` field enter your S3 Access Key.
+
+In the ``Secret Key`` field enter your S3 Secret Key.
+
+In the ``Bucket`` field enter the name of your S3 bucket you want to share.
+
+In the ``Available for`` field enter the users or groups who have permission to
+access your S3 mount.
+
+The hostname, port, and region of your S3 server are optional; you will need
+to use these for non-Amazon S3-compatible servers.
+
+.. figure:: ../images/external-storage-amazons3.png
+
+Dropbox
+-------
+
+Connecting Dropbox is a little more work because you have to create a Dropbox
+app. Log into the `Dropbox Developers page <http://www.dropbox.com/developers>`_
+and click ``App Console``:
+
+.. figure:: ../images/external-storage-dropbox.png
+
+If you have not already created any Dropbox apps it will ask you to accept
+their terms and conditions. Then you are presented with the choice to create
+either a Drop-ins App or a Dropbox API App. Click ``Dropbox API App``, and then
+check:
+
+* Files and datastores.
+* No -- My app needs access to files already on Dropbox.
+* All file types -- My app needs access to a user's full Dropbox. Only
+ supported via the CoreAPI.
+
+Then enter whatever name you want for your app.
+
+.. figure:: ../images/external-storage-dropbox-app.png
+
+Now click the ``Create App`` button. Under ``Status``, do not click
+``Development (Apply for production status)`` because that is for apps that you
+want to release publicly.
+
+Click ``Enable additional users`` to allow multiple oC users to use your new
+Dropbox share.
+
+Note your App key and App secret, which you will enter in the External Storage
+form on your ownCloud Admin page.
+
+.. figure:: ../images/external-storage-dropbox-configapp.png
+
+You need two ``Redirect URIs``. You may use ``localhost`` as the hostname for
+testing because you don't need to use HTTPS, but this is not recommended for
+production use because it sends all traffic in the clear::
+
+ http://localhost/owncloud/index.php/settings/personal
+ http://localhost/owncloud/index.php/settings/admin
+
+HTTPS is recommended for production use to encrypt your sessions::
+
+ https://localhost/owncloud/index.php/settings/personal
+ https://localhost/owncloud/index.php/settings/admin
+
+ https://example.com/owncloud/index.php/settings/personal
+ https://example.com/owncloud/index.php/settings/admin
+
+Your ownCloud configuration requires only the local mount name, the App Key and
+the App Secret, and which users or groups have access to the share.
+
+.. figure:: ../images/external-storage-dropbox-oc.png
+
+You must be logged into Dropbox, and when ownCloud successfully verifies your
+connection Dropbox will ask for verification to connect to your Dropbox
+account. Click ``Allow``, and you're done.
+
+.. figure:: ../images/external-storage-dropbox-allowshare.png
+
+FTP/FTPS/SFTP
+-------------
+
+Connecting to an FTP server requires:
+
+* Whatever name you want for your local mountpoint.
+* The URL of your FTP server, and optionally the port number.
+* FTP server username and password.
+* The FTP directory to mount in ownCloud. ownCloud defaults to the root
+ directory. When you specify a different directory you must leave off the
+ leading slash. For example, if you want to connect your
+ ``public_html/images`` directory, then type it exactly like that.
+* Choose whether to connect in the clear with ``ftp://``, or to encrypt your
+ FTP session with SSL/TLS over ``ftps://`` (Your FTP server must be
+ configured to support ``ftps://``)
+* Enter the ownCloud users or groups who are allowed to access the share.
+
+.. figure:: ../images/external-storage-ftp.png
+
- .. note:: A non-blocking or correctly configured SELinux setup is needed
- for this backend to work.
++.. note:: The external storage ``FTP/FTPS/SFTP`` needs the ``allow_url_fopen`` PHP
++ setting to be set to ``1``. When having connection problems make sure that it is
++ not set to ``0`` in your ``php.ini``.
+
+SFTP uses SSH rather than SSL, as FTPS does, so your SFTP sessions are always
+safely tucked inside an SSH tunnel. To connect an SFTP server you need:
+
+* Whatever name you want for your local mountpoint.
+* The URL of your SFTP server.
+* SFTP server username and password.
+* The SFTP directory to mount in ownCloud.
+* The ownCloud users or groups who are allowed to access the share.
+
+Google Drive
+------------
+
+All applications that access a Google API must be registered through the
+`Google Cloud Console <https://console.developers.google.com/>`_. Follow along carefully
+because the Google is a bit of a maze and it's easy to get lost.
+
+.. note:: Your ownCloud server must have a registered domain name and be
+ accessible over the Internet; Google Drive will not connect to a LAN-only
+ server.
+
+If you already have a Google account, such as Groups, Drive, or Mail, you can
+use your existing login to log into the Google Cloud Console. After logging in
+click ``Go to my console``, and then click the ``Create Project`` button. It
+takes a minute or two to create your new project.
+
+.. figure:: ../images/external-storage-google-drive.png
+
+In the next screen give your project a name, accept the default ``Project ID``
+or create your own, click the Terms of Service box, and click the ``Create``
+button.
+
+.. figure:: ../images/external-storage-google-drive1.png
+
+The next screen is your ``Project Dashboard``. In the left sidebar click ``APIs
+& Auth > APIs``, and then enable the ``Drive API`` and ``Drive SDK`` by
+toggling the boxes in the far-right ``Status`` column to the green On buttons.
+
+.. figure:: ../images/external-storage-google-drive2.png
+
+This brings you to the ``Google Drive SDK`` screen. Click ``API Access``.
+
+.. figure:: ../images/external-storage-google-drive-sdk.png
+
+This opens the ``API Access`` screen. Click the ``Create a 0Auth 2.0 Client
+ID`` button.
+
+.. figure:: ../images/external-storage-google-drive-0auth.png
+
+The next screen that opens is ``Create Client ID: Branding Information``. Google
+requires to you to fill this out. When you're finished move on to the ``Create
+Client ID: Client ID Settings`` screen.
+
+.. figure:: ../images/external-storage-google-drive5.png
+
+The ``Application Type`` is Web application.
+
+Click ``Your site or hostname (more options)`` to expose ``Authorized
+Redirect URIs``. Enter two Redirect URIs like these examples, replacing
+``https://example.com/owncloud/`` with your own ownCloud server
+URL. You must use a registered domain name, and you cannot use the server's
+IP address.
+
+ https://example.com/owncloud/index.php/settings/personal
+ https://example.com/owncloud/index.php/settings/admin
+
+Click ``Create client ID`` and you'll see a screen like this:
+
+.. figure:: ../images/external-storage-google-drive-9.png
+
+This contains your ``Client ID`` and ``Client Secret``, which you need to set up
+your ownCloud connection. Go to your ``Admin`` page in ownCloud, create your new
+folder name, enter the Client ID and Client Secret, select your users and
+groups, and click ``Grant Access``.
+
+.. figure:: ../images/external-storage-google-drive8.png
+
+Google will open a dialogue asking for permission to connect to ownCloud. Click
+``Accept`` and you're finished.
+
+.. figure:: ../images/external-storage-google-drive7.png
+
+SMB/CIFS
+--------
+
+You can mount SMB/CIFS file shares on ownCloud servers that run on Linux. This
+only works on Linux ownCloud servers because you must have ``smbclient``
+installed. SMB/CIFS file servers include any Windows file share, Samba servers
+on Linux and other Unix-type operating systems, and NAS appliances.
+
+You need the following information:
+
+* Folder name -- Whatever name you want for your local mountpoint.
+* Host -- The URL of the Samba server.
+* Username -- The username or domain/username used to login to the Samba server.
+* Password -- The password to login to the Samba server.
+* Share -- The share on the Samba server to mount.
+* Root -- The folder inside the Samba share to mount (optional, defaults to ‘/’). To assign the ownCloud logon username automatically to the subfolder, use ``$user`` instead of a particular subfolder name.
+
+And finally, the ownCloud users and groups who get access to the share.
+
+.. figure:: ../images/external-storage-smb.png
+
+SMB/CIFS using OC login
+-------------------------
+
+This works the same way as setting up a SMB/CIFS mount, except you can use your
+ownCloud logins intead of the SMB/CIFS server logins. To make this work, your
+ownCloud users need the same login and password as on the SMB/CIFS server.
+
+.. note:: Shares set up with ``SMB/CIFS using OC login`` cannot be shared in
+ ownCloud. If you need to share your SMB/CIFS mount, then use the SMB/CIFS
+ mount without oC login.
+
+ownCloud and WebDAV
+-------------------
+
+Use these to mount a directory from any WebDAV server, or another
+ownCloud server.
+
+* Folder name -- Whatever name you want for your local mountpoint.
+* URL -- The URL of the WebDAV or ownCloud server.
+* Username and password for the remote server
+* Root -- The remote folder you want to mount (optional, defaults
+ to ``/``)
+* Secure ``https://`` - Whether to use ``https://`` to connect to the WebDav
+ server instead of ``http://`` (We always recommend ``https://`` for
+ security)
+
+.. figure:: ../images/external-storage-webdav.png
+
+OpenStack Object Storage
+------------------------
+
+Use this to mount a container on an OpenStack Object Storage server. You need
+the following information:
+
+* Username
+* Bucket
+* Region
+* API Key
+* Tenantname
+* Password
+* Service Name
+* URL of identity Endpoint
+* Timeout of HTTP request
+
+Configuration File
+------------------
+
+The configuration of mounts created within the External Storage App are stored
+in the ``data/mount.json`` file. This file contains all settings in JSON
+(JavaScript Object Notation) format. Two different types of entries exist:
+
+* Group mounts: Each entry configures a mount for each user in group.
+* User mount: Each entry configures a mount for a single user or all users.
+
+For each type, there is a JSON array with the user/group name as key and an
+array of configuration values as the value. Each entry consist of the class name
+of the storage backend and an array of backend specific options (described
+above) and will be replaced by the user login.
+
+Although configuration may be done by making modifications to the
+``mount.json`` file, it is recommended to use the Web-GUI in the administrator
+panel (as described in the above section) to add, remove, or modify mount
+options to prevent any problems. See :doc:`external_storage_configuration` for
- configuration examples.
++configuration examples.
diff --cc core/doc/admin/release/_sources/configuration/server_to_server_configuration.txt
index 935a8e1,0000000..51b166e
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/configuration/server_to_server_configuration.txt
+++ b/core/doc/admin/release/_sources/configuration/server_to_server_configuration.txt
@@@ -1,61 -1,0 +1,68 @@@
++====================================
+Configuring Server-to-Server Sharing
- ========================================
++====================================
+
+ownCloud 7 introduces a powerful new feature, server-to-server sharing. With
+just a few clicks you can easily and securely create public shares for sharing
- files and directories with other ownCloud 7 servers. (Currently, this works only
- with OC7 and not older versions.) You can automatically send an email
- notification when you create the share, add password protection, allow users to
- upload files, and set an expiration date.
++files and directories with other ownCloud 7 (and newer versions) servers. You
++can automatically send an email notification when you create the share, add
++password protection, allow users to upload files, and set an expiration date.
++
++.. note:: This is called Federated Cloud Sharing in ownCloud 8. You may create
++ shares with oC8 servers, following the steps below using public link
++ shares. oC8 also supports creating the share using the ``Share with user or
++ group`` form field. This is not supported in oC7 and you must use public
++ link shares on both servers.
+
+Follow these steps to create a new public share:
+
+1. Go to the Admin page and scroll to the Remote Shares section.
+
+.. figure:: ../images/remote_shares.png
+
+2. To enable server-to-server sharing, and to allow remote users to mount your
+shares in their ownCloud 7 accounts, check ``Allow other instances to mount
+public links shared from this server.`` Leaving the checkbox blank disables
+server-to-server sharing.
+
+3. You can enable the users on your local ownCloud server to mount
+public link shares by checking ``Allow users to mount public link shares.``
+When this is not checked your users cannot mount public link shares, though
+they can view and download them.
+
+4. Now go to your Files page and hover your cursor over the file or directory
+you want to share to expose the administration options. Check the ``Share
+Link`` checkbox to create the share, and to expose all of your sharing options.
+
+.. figure:: ../images/create_public_share.png
+
+Your new public share is labeled with a chain link. If you do not protect it
+with a password, it is visible to anyone who has the URL. Users on other
+ownCloud 7 servers can mount it and use it just like any ownCloud share.
+
+Un-check the ``Share Link`` checkbox to disable the share.
+
+See "Using Server-to-Server Sharing" in the Users Manual to learn how to
+connect to a remote public share.
+
+Notes
- --------
++-----
+
+Your Apache Web server must have ``mod_rewrite`` enabled, and you must have
+``trusted_domains`` configured in ``config.php``. Consider also enabling SSL to
- encrypt all traffic between your servers. (See :doc:`../installation/source_installation`
- to learn more about mod_rewrite, SSL, and alternative HTTP servers. See
- :doc:`../installation/installation_wizard` to learn more about configuring trusted domains.)
++encrypt all traffic between your servers. (See
++:doc:`../installation/source_installation` to learn more about mod_rewrite, SSL,
++and alternative HTTP servers. See :doc:`../installation/installation_wizard` to
++learn more about configuring trusted domains.)
+
+Self-signed certificates for Server-to-Server Sharing are currently not supported.
+
+Your ownCloud server creates the share link from the URL that you used to log
+into the server, so make sure that you log into your server using a URL that is
+accessible to your users. For example, if you log in via its LAN IP address,
+such as ``http://192.168.10.50``, then your share URL will be something like
+``http://192.168.10.50/owncloud/public.php?service=files&t=
+6b6fa9a714a32ef0af8a83dde358deec``, which is not accessible outside of your
+LAN. This also applies to using the server name; for access outside of your LAN
+you need to use a fully-qualified domain name such as
+``http://myserver.example.com``, rather than ``http://myserver``.
diff --cc core/doc/admin/release/_sources/configuration/user_auth_ftp_smb_imap.txt
index cc8b738,0000000..8782361
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/configuration/user_auth_ftp_smb_imap.txt
+++ b/core/doc/admin/release/_sources/configuration/user_auth_ftp_smb_imap.txt
@@@ -1,87 -1,0 +1,93 @@@
+User Authentication with IMAP, SMB, and FTP
+===========================================
+
+You may configure additional user backends
+in ownCloud's configuration :file:`config/config.php` using the following
+syntax:
+
+.. code-block:: php
+
+ <?php
+
+ "user_backends" => array (
+ 0 => array (
+ "class" => ...,
+ "arguments" => array (
+ 0 => ...
+ ),
+ ),
+ ),
+
++.. note:: A non-blocking or correctly configured SELinux setup is needed
++ for these backends to work. Please refer to the :ref:`selinux-config-label`.
++
+Currently the “External user support” (user_external) app, which you need to
+enable first (See :doc:`../installation/apps_management_installation`)
+provides the following user backends:
+
+IMAP
+----
+Provides authentication against IMAP servers
+
+- **Class:** OC_User_IMAP
+- **Arguments:** a mailbox string as defined `in the PHP documentation <http://www.php.net/manual/en/function.imap-open.php>`_
++- **Dependency:** php-imap (See :doc:`../installation/source_installation`)
+- **Example:**
+
+.. code-block:: php
+
+ <?php
+
+ "user_backends" => array (
+ 0 => array (
+ "class" => "OC_User_IMAP",
+ "arguments" => array (
+ 0 => '{imap.gmail.com:993/imap/ssl}'
+ ),
+ ),
+ ),
+
+SMB
+---
+Provides authentication against Samba servers
+
+- **Class:** OC_User_SMB
+- **Arguments:** the samba server to authenticate against
++- **Dependency:** smbclient (See :doc:`../installation/source_installation`)
+- **Example:**
+
+.. code-block:: php
+
+ <?php
+
+ "user_backends" => array (
+ 0 => array (
+ "class" => "OC_User_SMB",
+ "arguments" => array (
+ 0 => 'localhost'
+ ),
+ ),
+ ),
+
+FTP
+---
+
+Provides authentication against FTP servers
+
+- **Class:** OC_User_FTP
+- **Arguments:** the FTP server to authenticate against
++- **Dependency:** php-ftp (See :doc:`../installation/source_installation`)
+- **Example:**
+
+.. code-block:: php
+
+ <?php
+
+ "user_backends" => array (
+ 0 => array (
+ "class" => "OC_User_FTP",
+ "arguments" => array (
+ 0 => 'localhost'
+ ),
+ ),
+ ),
diff --cc core/doc/admin/release/_sources/configuration/user_auth_ldap.txt
index c30ff9a,0000000..2438273
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/configuration/user_auth_ldap.txt
+++ b/core/doc/admin/release/_sources/configuration/user_auth_ldap.txt
@@@ -1,614 -1,0 +1,617 @@@
+User Authentication with LDAP
+=============================
+
+ownCloud ships with an LDAP application so that your existing LDAP users may
+have access to your ownCloud server without creating separate ownCloud user
+accounts.
+
+.. Note:: For performance reasons, we recommend using PHP 5.4 or greater to use
+ the LDAP application with more than 500 users. The PHP LDAP module is
+ required; this is supplied by ``php5-ldap`` on Debian/Ubuntu, and
+ ``php-ldap`` on CentOS/Red Hat/Fedora.
+
+The LDAP application supports:
+
+* LDAP group support
+* File sharing with ownCloud users and groups
+* Access via WebDAV and ownCloud Desktop Client
+* Versioning, external Storage and all other ownCloud features
+* Seamless connectivity to Active Directory, with no extra configuration
+ required
+* Support for primary groups in Active Directory
+* Auto-detection of LDAP attributes such as base DN, email, and the LDAP server
+ port number
+* Read-only access to your LDAP (no edit or delete of users on your LDAP)
+
+.. Note:: The LDAP app is not compatible with the ``WebDAV user backend`` app.
- You cannot use both of them at the same time.
++ You cannot use both of them at the same time.
++
++.. note:: A non-blocking or correctly configured SELinux setup is needed
++ for the LDAP backend to work. Please refer to the :ref:`selinux-config-label`.
+
+Configuration
+-------------
+
+First enable the ``LDAP user and group backend`` app on the Apps page in
+ownCloud. Then go to your Admin page to configure it.
+
+The LDAP configuration panel has four tabs. A correctly completed first tab
+("Server") is mandatory to access the other tabs. A green indicator lights when
+the configuration is correct. Hover your cursor over the fields to see some
+pop-up tooltips.
+
+Server Tab
+~~~~~~~~~~
+
+Start with the Server tab. You may configure multiple servers if you have them.
+At a minimum you must supply the LDAP server's hostname. If your server requires
+authentication, enter your credentials on this tab. ownCloud will then attempt
+to auto-detect the server's port and base DN. The base DN and port are
+mandatory, so if ownCloud cannot detect them you must enter them manually.
+
+.. figure:: ../images/ldap-wizard-1-server.png
+
+Server configuration:
+ Configure one or more LDAP servers. Click the **Delete Configuration**
+ button to remove the active configuration.
+
+Host:
+ The host name or IP address of the LDAP server. It can also be a **ldaps://**
+ URI. If you enter the port number, it speeds up server detection.
+
+ Examples:
+
+ * *directory.my-company.com*
+ * *ldaps://directory.my-company.com*
+ * *directory.my-company.com:9876*
+
+Port:
+ The port on which to connect to the LDAP server. The field is disabled in the
+ beginning of a new configuration. If the LDAP server is running on a standard
+ port, the port will be detected automatically. If you are using a
+ non-standard port, ownCloud will attempt to detect it. If this fails you must
+ enter the port number manually.
+
+ Example:
+
+ * *389*
+
+User DN:
+ The name as DN of a user who has permissions to do searches in the LDAP
+ directory. Leave it empty for anonymous access. We recommend that you have a
+ special LDAP system user for this.
+
+ Example:
+
+ * *uid=owncloudsystemuser,cn=sysusers,dc=my-company,dc=com*
+
+Password:
+ The password for the user given above. Empty for anonymous access.
+
+Base DN:
+ The base DN of LDAP, from where all users and groups can be reached. You may
+ enter multiple base DNs, one per line. (Base DNs for users and groups can be
+ set in the Advanced tab.) This field is mandatory. ownCloud attempts to
+ determine the Base DN according to the provided User DN or the provided
+ Host, and you must enter it manually if ownCloud does not detect it.
+
+ Example:
+
+ * *dc=my-company,dc=com*
+
+User Filter
+~~~~~~~~~~~
+
+Use this to control which LDAP users are listed as ownCloud users on your ownCloud server.
+In order to control which LDAP users can login to your ownCloud server use the Login filter.
+Those LDAP users who have access but are not listed as users (if there are any) will be hidden users.
+You may bypass the form fields and enter a raw LDAP filter if you prefer.
+
+.. figure:: ../images/ldap-wizard-2-user.png
+
+only those object classes:
+ ownCloud will determine the object classes that are typically available for
+ user objects in your LDAP. ownCloud will automatically select the object
+ class that returns the highest amount of users. You may select multiple
+ object classes.
+
+only from those groups:
+ If your LDAP server supports the ``member-of-overlay`` in LDAP filters, you
+ can define that only users from one or more certain groups are allowed to
+ appear in user listings in ownCloud. By default, no value will be selected. You
+ may select multiple groups.
+
+ If your LDAP server does not support the member-of-overlay in LDAP filters,
+ the input field is disabled. Please contact your LDAP administrator.
+
+Edit raw filter instead:
+ Clicking on this text toggles the filter mode and you can enter the raw LDAP
+ filter directly.
+
+ Example:
+
+ * *(&(objectClass=inetOrgPerson)(memberOf=cn=owncloudusers,ou=groups,dc=example,dc=com))*
+
+x users found:
+ This is an indicator that tells you approximately how many users will be
+ listed in ownCloud. The number updates automatically after any changes.
+
+Login Filter
+~~~~~~~~~~~~
+
+The settings in the Login Filter tab determine which LDAP users can log in to your
+ownCloud system and which attribute or attributes the provided login name is matched
+against (e.g. LDAP/AD username, email address). You may select multiple user details.
+(You may bypass the form fields and enter a raw LDAP filter if you prefer.)
+
+You may override your User Filter settings on the User Filter tab by using a raw
+LDAP filter.
+
+.. figure:: ../images/ldap-wizard-3-login.png
+
+LDAP Username:
+ If this value is checked, the login value will be compared to the username in
+ the LDAP directory. The corresponding attribute, usually *uid* or
+ *samaccountname* will be detected automatically by ownCloud.
+
+LDAP Email Address:
+ If this value is checked, the login value will be compared to an email address
+ in the LDAP directory; specifically, the *mailPrimaryAddress* and *mail*
+ attributes.
+
+Other Attributes:
+ This multi-select box allows you to select other attributes for the
+ comparison. The list is generated automatically from the user object
+ attributes in your LDAP server.
+
+Edit raw filter instead:
+ Clicking on this text toggles the filter mode and you can enter the raw LDAP
+ filter directly.
+
+ The **%uid** placeholder is replaced with the login name entered by the
+ user upon login.
+
+ Examples:
+
+ * only username: (&(objectClass=inetOrgPerson)(memberOf=cn=owncloudusers,ou=groups,dc=example,dc=com)(uid=%uid)*
+ * username or email address: *((&(objectClass=inetOrgPerson)(memberOf=cn=owncloudusers,ou=groups,dc=example,dc=com)(|(uid=%uid)(mail=%uid)))*
+
+Group Filter
+~~~~~~~~~~~~
+
+By default, no LDAP groups will be available in ownCloud. The settings in the
+group filter tab determine which groups will be available in ownCloud. You may
+also elect to enter a raw LDAP filter instead.
+
+.. figure:: ../images/ldap-wizard-4-group.png
+
+only those object classes:
+ ownCloud will determine the object classes that are typically available for
+ group objects in your LDAP server. ownCloud will only list object
+ classes that return at least one group object. You can select multiple
+ object classes. A typical object class is "group", or "posixGroup".
+
+only from those groups:
+ ownCloud will generate a list of available groups found in your LDAP server.
+ and then you select the group or groups that get access to your ownCloud
+ server.
+
+Edit raw filter instead:
+ Clicking on this text toggles the filter mode and you can enter the raw LDAP
+ filter directly.
+
+ Example:
+
+ * *objectClass=group*
+ * *objectClass=posixGroup*
+
+y groups found:
+ This tells you approximately how many groups will be available in ownCloud.
+ The number updates automatically after any change.
+
+
+Advanced Settings
+-----------------
+
+The LDAP Advanced Setting section contains options that are not needed for a
+working connection. This provides controls to disable the current configuration,
+configure replica hosts, and various performance-enhancing options.
+
+The Advanced Settings are structured into three parts:
+
+* Connection Settings
+* Directory Settings
+* Special Attributes
+
+Connection Settings
+~~~~~~~~~~~~~~~~~~~
+
+.. figure:: ../images/ldap-advanced-1-connection.png
+
+ LDAP Advanced Settings, section Connection Settings
+
+Configuration Active:
+ Enables or Disables the current configuration. By default, it is turned off.
+ When ownCloud makes a successful test connection it is automatically turned
+ on.
+
+Backup (Replica) Host:
+ If you have a backup LDAP server, enter the connection settings here.
+ ownCloud will then automatically connect to the backup when the main server
+ cannot be reached. The backup server must be a replica of the main server so
+ that the object UUIDs match.
+
+ Example:
+
+ * *directory2.my-company.com*
+
+Backup (Replica) Port:
+ The connection port of the backup LDAP server. If no port is given,
+ but only a host, then the main port (as specified above) will be used.
+
+ Example:
+
+ * *389*
+
+Disable Main Server:
+ You can manually override the main server and make ownCloud only connect to
+ the backup server. This is useful for planned downtimes.
+
+Case insensitive LDAP server (Windows):
+ When the LDAP server is running on a Windows Host.
+
+Turn off SSL certificate validation:
+ Turns off SSL certificate checking. Use it for testing only!
+
+Cache Time-To-Live:
+ A cache is introduced to avoid unnecessary LDAP traffic, for example caching
+ usernames so they don't have to be looked up for every page, and speeding up
+ loading of the Users page. Saving the configuration empties the cache. The
+ time is given in seconds.
+
+ Note that almost every PHP request requires a new connection to the LDAP
+ server. If you require fresh PHP requests we recommend defining a minimum
+ lifetime of 15s or so, rather than completely eliminating the cache.
+
+ Examples:
+
+ * ten minutes: *600*
+ * one hour: *3600*
+
+See the Caching section below for detailed information on how the cache
+operates.
+
+Directory Settings
+~~~~~~~~~~~~~~~~~~~
+
+.. figure:: ../images/ldap-advanced-2-directory.png
+
+ LDAP Advanced Settings, section Directory Settings
+
+User Display Name Field:
+ The attribute that should be used as display name in ownCloud.
+
+ * Example: *displayName*
+
+Base User Tree:
+ The base DN of LDAP, from where all users can be reached. This must be a
+ complete DN, regardless of what you have entered for your Base DN in the
+ Basic setting. You can specify multiple base trees, one on each line.
+
+ * Example:
+
+ | *cn=programmers,dc=my-company,dc=com*
+ | *cn=designers,dc=my-company,dc=com*
+
+User Search Attributes:
+ These attributes are used when searches for users are performed, for example
+ in the in the share dialogue. The user display name attribute is the
+ default. You may list multiple attributes, one per line.
+
+ If an attribute is not available on a user object, the user will not be
+ listed, and will be unable to login. This also affects the display name
+ attribute. If you override the default you must specify the display name
+ attribute here.
+
+ * Example:
+
+ | *displayName*
+ | *mail*
+
+Group Display Name Field:
+ The attribute that should be used as ownCloud group name. ownCloud allows a
+ limited set of characters (a-zA-Z0-9.-_@). Once a group name is assigned it
+ cannot be changed.
+
+ * Example: *cn*
+
+Base Group Tree:
+ The base DN of LDAP, from where all groups can be reached. This must be a
+ complete DN, regardless of what you have entered for your Base DN in the
+ Basic setting. You can specify multiple base trees, one in each line.
+
+ * Example:
+
+ | *cn=barcelona,dc=my-company,dc=com*
+ | *cn=madrid,dc=my-company,dc=com*
+
+Group Search Attributes:
+ These attributes are used when a search for groups is done, for example in
+ the share dialogue. By default the group display name attribute as specified
+ above is being used. Multiple attributes can be given, one in each line.
+
+ If you override the default, the group display name attribute will not be
+ taken into account, unless you specify it as well.
+
+ * Example:
+
+ | *cn*
+ | *description*
+
+Group Member association:
+ The attribute that is used to indicate group memberships, i.e. the attribute
+ used by LDAP groups to refer to their users.
+
+ ownCloud detects the value automatically. You should only change it if you
+ have a very valid reason and know what you are doing.
+
+ * Example: *uniquemember*
+
+Special Attributes
+~~~~~~~~~~~~~~~~~~
+
+.. figure:: ../images/ldap-advanced-3-attributes.png
+
+ LDAP Advanced Settings, section Special Attributes
+
+Quota Field:
+ ownCloud can read an LDAP attribute and set the user quota according to its
+ value. Specify the attribute here, and it will return human-readable values,
+ e.g. "2 GB".
+
+ * Example: *ownCloudQuota*
+
+Quota Default:
+ Override ownCloud default quota for LDAP users who do not have a quota set in
+ the Quota Field.
+
+ * Example: *15 GB*
+
+Email Field:
+ Set the user's email from their LDAP attribute. Leave it empty for default
+ behavior.
+
+ * Example: *mail*
+
+User Home Folder Naming Rule:
+ By default, the ownCloud server creates the user directory in your ownCloud
+ data directory. You may want to override this setting and name it after an
+ attribute value. The attribute given can also return an absolute path, e.g.
+ ``/mnt/storage43/alice``. Leave it empty for default behavior.
+
+ * Example: *cn*
+
+Expert Settings
+---------------
+
+.. figure:: ../images/ldap-expert.png
+
+In the Expert Settings fundamental behavior can be adjusted to your needs. The
+configuration should be well-tested before starting production use.
+
+Internal Username:
+ The internal username is the identifier in ownCloud for LDAP users. By default
+ it will be created from the UUID attribute. The UUID attribute ensures that
+ the username is unique, and that characters do not need to be converted. Only
+ these characters are allowed: [\a-\zA-\Z0-\9_. at -]. Other characters are
+ replaced with their ASCII equivalents, or are simply omitted.
+
+ The LDAP backend ensures that there are no duplicate internal usernames in
+ ownCloud, i.e. that it is checking all other activated user backends
+ (including local ownCloud users). On collisions a random number (between 1000
+ and 9999) will be attached to the retrieved value. For example, if "alice"
+ exists, the next username may be "alice_1337".
+
+ The internal username is the default name for the user home folder in
+ ownCloud. It is also a part of remote URLs, for instance for all \*DAV
+ services.
+
+ You can override all of this with the Internal Username setting. Leave it
+ empty for default behaviour. Changes will affect only newly mapped LDAP users.
+
+ * Example: *uid*
+
+Override UUID detection
+ By default, ownCloud auto-detects the UUID attribute. The UUID attribute is
+ used to uniquely identify LDAP users and groups. The internal username will
+ be created based on the UUID, if not specified otherwise.
+
+ You can override the setting and pass an attribute of your choice. You must
+ make sure that the attribute of your choice can be fetched for both users and
+ groups and it is unique. Leave it empty for default behaviour. Changes will
+ have effect only on newly mapped LDAP users and groups. It also will
+ have effect when a user's or group's DN changes and an old UUID was cached,
+ which will result in a new user. Because of this, the setting should be
+ applied before putting ownCloud in production use and clearing the bindings
+ (see the ``User and Group Mapping`` section below).
+
+ * Example: *cn*
+
+Username-LDAP User Mapping
+ ownCloud uses usernames as keys to store and assign data. In order to
+ precisely identify and recognize users, each LDAP user will have a internal
+ username in ownCloud. This requires a mapping from ownCloud username to LDAP
+ user. The created username is mapped to the UUID of the LDAP user.
+ Additionally the DN is cached as well to reduce LDAP interaction, but it is
+ not used for identification. If the DN changes, the change will be detected by
+ ownCloud by checking the UUID value.
+
+ The same is valid for groups.
+
+ The internal ownCloud name is used all over in ownCloud. Clearing the Mappings
+ will have leftovers everywhere. Never clear the mappings in a production
+ environment, but only in a testing or experimental server.
+
+ **Clearing the Mappings is not configuration sensitive, it affects all LDAP
+ configurations!**
+
+Testing the configuration
+-------------------------
+
+The **Test Configuration** button checks the values as currently given in the
+input fields. You do not need to save before testing. By clicking on the
+button, ownCloud will try to bind to the ownCloud server using the
+settings currently given in the input fields. The response will look like this:
+
+.. figure:: ../images/ldap-settings-invalid-oc45.png
+
+ Failure
+
+In case the configuration fails, you can see details in ownCloud's log, which
+is in the data directory and called **owncloud.log** or on the bottom the
+**Settings -- Admin page**. You must refresh the Admin page to see the new log
+entries.
+
+.. figure:: ../images/ldap-settings-valid-oc45.png
+
+ Success
+
+In this case, Save the settings. You can check if the users and groups are
+fetched correctly on the Users page.
+
+ownCloud Avatar integration
+---------------------------
+
+ownCloud support user profile pictures, which are also called avatars. If a user
+has a photo stored in the *jpegPhoto* or *thumbnailPhoto* attribute on your LDAP
+server, it will be used as their avatar. In this case the user cannot alter their
+avatar (on their Personal page) as it must be changed in LDAP. *jpegPhoto* is
+preferred over *thumbnailPhoto*.
+
+.. figure:: ../images/ldap-fetched-avatar.png
+
+ Profile picture fetched from LDAP
+
+If the *jpegPhoto* or *thumbnailPhoto* attribute is not set or empty, then
+users can upload and manage their avatars on their ownCloud Personal pages.
+Avatars managed in ownCloud are not stored in LDAP.
+
+The *jpegPhoto* or *thumbnailPhoto* attribute is fetched once a day to make
+sure the current photo from LDAP is used in ownCloud. LDAP avatars override
+ownCloud avatars, and when an LDAP avatar is deleted it the most recent
+ownCloud avatar replaces it.
+
+Photos served from LDAP are automatically cropped and resized in ownCloud. This
+affects only the presentation, and the original image is not changed.
+
+Troubleshooting, Tips and Tricks
+--------------------------------
+
+SSL Certificate Verification (LDAPS, TLS)
+-----------------------------------------
+
+A common mistake with SSL certificates is that they may not be known to PHP.
+If you have trouble with certificate validation make sure that
+
+* You have the certificate of the server installed on the ownCloud server
+* The certificate is announced in the system's LDAP configuration file (usually
+ */etc/ldap/ldap.conf* on Linux, *C:\\openldap\\sysconf\\ldap.conf* or
+ *C:\\ldap.conf* on Windows) using a **TLS_CACERT /path/to/cert** line.
+* Using LDAPS, also make sure that the port is correctly configured (by default
+ 636)
+
+Microsoft Active Directory
+--------------------------
+
+Compared to earlier ownCloud versions, no further tweaks need to be done to
+make ownCloud work with Active Directory. ownCloud will automatically find the
+correct configuration in the set-up process.
+
+Duplicating Server Configurations
+---------------------------------
+
+In case you have a working configuration and want to create a similar one or
+"snapshot" configurations before modifying them you can do the following:
+
+#. Go to the **Server** tab
+#. On **Server Configuration** choose *Add Server Configuration*
+#. Answer the question *Take over settings from recent server configuration?*
+ with *yes*.
+#. (optional) Switch to **Advanced** tab and uncheck **Configuration Active**
+ in the *Connection Settings*, so the new configuration is not used on Save
+#. Click on **Save**
+
+Now you can modify and enable the configuration.
+
+ownCloud LDAP Internals
+-----------------------
+
+Some parts of how the LDAP backend works are described here.
+
+User and Group Mapping
+----------------------
+
+In ownCloud the user or group name is used to have all relevant information in
+the database assigned. To work reliably a permanent internal user name and
+group name is created and mapped to the LDAP DN and UUID. If the DN changes in
+LDAP it will be detected, and there will be no conflicts.
+
+Those mappings are done in the database table ``ldap_user_mapping`` and
+``ldap_group_mapping``. The user name is also used for the user's folder (except
+something else is specified in *User Home Folder Naming Rule*), which
+contains files and meta data.
+
+As of ownCloud 5 internal user name and a visible display name are separated.
+This is not the case for group names, yet, i.e. a group name cannot be altered.
+
+That means that your LDAP configuration should be good and ready before putting
+it into production. The mapping tables are filled early, but as long as you are
+testing, you can empty the tables any time. Do not do this in production.
+
+Caching
+-------
+
+The ownCloud **Cache** helps to speed up user interactions and sharing. It is
+populated on demand, and remains populated until the **Cache Time-To-Live** for
+each unique request expires. User logins are not cached, so if you need to
+improve login times set up a slave LDAP server to share the load.
+
+Another significant performance enhancement is to install the Alternative PHP
+Cache (APC). APC is an OPcache, which is several times faster than a file
+cache. APC improves PHP performance by storing precompiled script bytecode in
+shared memory, which reduces the overhead of loading and parsing scripts on
+each request. (See http://php.net/manual/en/book.apc.php for more information.)
+
+You can adjust the **Cache Time-To-Live** value to balance performance and
+freshness of LDAP data. All LDAP requests will be cached for 10 minutes by
+default, and you can alter this with the **Cache Time-To-Live** setting. The
+cache answers each request that is identical to a previous request, within the
+time-to-live of the original request, rather than hitting the LDAP server.
+
+The **Cache Time-To-Live** is related to each single request. After a cache
+entry expires there is no automatic trigger for re-populating the information,
+as the cache is populated only by new requests, for example by opening the
+User administration page, or searching in a sharing dialog.
+
+There is one trigger which is automatically triggered by a certain background
+job which keeps the ``user-group-mappings`` up-to-date, and always in cache.
+
+Under normal circumstances, all users are never loaded at the same time.
+Typically the loading of users happens while page results are generated, in
+steps of 30 until the limit is reached or no results are left. For this to
+work on an oC-Server and LDAP-Server, **Paged Results** must be supported,
+which presumes PHP >= 5.4.
+
+ownCloud remembers which user belongs to which LDAP-configuration. That means
+each request will always be directed to the right server unless a user is
+defunct, for example due to a server migration or unreachable server. In this
+case the other servers will also receive the request.
+
+Handling with Backup Server
+---------------------------
+
+When ownCloud is not able to contact the main LDAP server, ownCloud assumes it
+is offline and will not try to connect again for the time specified in **Cache
+Time-To-Live**. If you have a backup server configured ownCloud will connect to
+instead. When you have a scheduled downtime, check **Disable Main Server** to
+avoid unnecessary connection attempts.
diff --cc core/doc/admin/release/_sources/index.txt
index 4f5822b,0000000..9289aa4
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/index.txt
+++ b/core/doc/admin/release/_sources/index.txt
@@@ -1,119 -1,0 +1,123 @@@
+============
+Introduction
+============
+
+Welcome to the ownCloud Administrator Guide. This guide describes
+administrator tasks for ownCloud; a flexible, open source, file synchronization
+and sharing solution. ownCloud is comprised of a server running on either a
+Linux or Microsoft Windows platform as well as client applications for Microsoft
+Windows, Mac OS X and Linux (Desktop Client) and mobile clients for both the
+Android and Apple iOS operating system.
+
+Target Audience
+---------------
+
+This guide is targeted towards people who want to install, administer, and
+optimize the ownCloud server. If you want to learn more about the ownCloud Web
+user interface or how to install clients on the server, refer to the following:
+
+* `User Manual`_
+* `Desktop Client Manual`_
+
+.. _`User Manual`: http://doc.owncloud.com/
+.. _`Desktop Client Manual`: http://doc.owncloud.com/
+
- ownCloud Videos
- ---------------
++ownCloud Videos and Blogs
++-------------------------
++
++See the `official ownCloud channel
++<https://www.youtube.com/channel/UC_4gez4lsWqciH-otOlXo5w>`_ and `ownClouders
++community channel <https://www.youtube.com/channel/UCA8Ehsdu3KaxSz5KOcCgHbw>`_
++on YouTube for tutorials, overviews, and conference videos.
+
- See :doc:`videos`
- for howtos, demos, news, and Webinars for both the
- Community and Enterprise versions of ownCloud.
++Visit `ownCloud Planet <https://owncloud.org/news/>`_ for news and developer
++blogs.
+
+Document Structure
+------------------
+
+This document is broken out into three major sections -- Installation, Configuration, and
+Maintenance. The Issues sections has instructions for reporting bugs. The following
+sections provide detailed information about various tasks associated with each of these
+sections.
+
+Installation
+============
+This section provides detailed instructions on how to install ownCloud in
+different scenarios. It contains the following topics:
+
+* :doc:`installation/appliance_installation`
+* :doc:`installation/apps_management_installation`
+* :doc:`installation/hiawatha_configuration`
+* :doc:`installation/installation_wizard`
+* :doc:`installation/lighttpd_configuration`
+* :doc:`installation/linux_installation` (recommended)
+* :doc:`installation/macos_installation` (not supported)
+* :doc:`installation/nginx_configuration`
+* :doc:`installation/others_installation`
+* :doc:`installation/source_installation`
+* :doc:`installation/ucs_installation`
+* :doc:`installation/windows_installation`
+* :doc:`installation/yaws_configuration`
+* :doc:`installation/selinux_configuration`
+
+.. note:: If you just want to try out ownCloud in a virtual machine, without any
+ configuration, refer to :doc:`installation/appliance_installation`. For your
+ convenience, this topic contains ready-to-use images.
+
+Configuration
+=============
+This section describes how to configure ownCloud and your Web server. It
+contains the following topics:
+
+* :doc:`configuration/antivirus_configuration`
+* :doc:`configuration/automatic_configuration`
+* :doc:`configuration/background_jobs_configuration`
+* :doc:`configuration/big_file_upload_configuration`
+* :doc:`configuration/collaborative_documents_configuration`
+* :doc:`configuration/config_sample_php_parameters`
+* :doc:`configuration/custom_client_configuration`
+* :doc:`configuration/database_configuration`
+* :doc:`configuration/email_configuration`
+* :doc:`configuration/external_storage_configuration_gui`
+* :doc:`configuration/external_storage_configuration`
+* :doc:`configuration/file_sharing_configuration`
+* :doc:`configuration/files_locking_enabling`
+* :doc:`configuration/js_css_asset_management_configuration`
+* :doc:`configuration/knowledgebase_configuration`
+* :doc:`configuration/language_configuration`
+* :doc:`configuration/logging_configuration`
+* :doc:`configuration/previews_configuration`
+* :doc:`configuration/reverse_proxy_configuration`
+* :doc:`configuration/search_configuration`
+* :doc:`configuration/encryption_configuration`
+* :doc:`configuration/server_to_server_configuration`
+* :doc:`configuration/serving_static_files_configuration`
+* :doc:`configuration/thirdparty_php_configuration`
+* :doc:`configuration/user_auth_ftp_smb_imap`
+* :doc:`configuration/user_auth_ldap`
+* :doc:`configuration/user_auth_ldap_cleanup`
+* :doc:`configuration/user_configuration`
+* :doc:`configuration/reset_admin_password`
+
+Maintenance
+===========
+
+This sections describes the maintenance tasks associated with the ownCloud
+server (for example, updating or migrating to a new version of ownCloud). It
+contains the following topics:
+
+* :doc:`maintenance/backup`
+* :doc:`maintenance/convert_db`
+* :doc:`maintenance/enable_maintenance`
+* :doc:`maintenance/migrating`
+* :doc:`maintenance/restore`
+* :doc:`maintenance/update`
+* :doc:`maintenance/upgrade`
+
+Issues
+======
+
+What to do when you have problems, and where to report bugs.
+
+* :doc:`issues/index`
diff --cc core/doc/admin/release/_sources/installation/installation_wizard.txt
index a114bf2,0000000..41a6187
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/installation/installation_wizard.txt
+++ b/core/doc/admin/release/_sources/installation/installation_wizard.txt
@@@ -1,188 -1,0 +1,205 @@@
+Installation Wizard
+===================
+
+When ownCloud prerequisites are fulfilled and all ownCloud files are installed
+on the server, the last step to complete the installation is
+running the Installation Wizard. Open your Web browser to your new ownCloud
+installation.
+
+ * If you are installing ownCloud on the same machine as you are accessing the
+ install wizard from, the URL will be ``http://localhost/owncloud``, or ``https://localhost/owncloud`` if you have enabled SSL.
+ * If you are installing ownCloud on a different machine, you'll have to access
+ it by its hostname or IP address, e.g. ``http://example.com/owncloud``.
+ * If you are using a self-signed certificate, you will be presented with a
+ security warning about the issuer of the certificate not being trusted which
+ you can ignore.
+
+* You will be presented with the setup screen:
+
+.. image:: images/install-wizard.png
+ :scale: 75%
+
+Required Settings
+~~~~~~~~~~~~~~~~~
+
+Under ``create an admin account`` you must enter a username and
+password for the administrative user account. You may choose any username and
+password that you want.
+
+Storage & Database
+~~~~~~~~~~~~~~~~~~
+
+* Click ``Storage & Database`` to see all of your database options, and to
+ optionally change the default data storage directory.
+* The database you want to use must already be installed, and you must have a
+ database admin user and password.
+* Enter any arbitrary name for the Database name. This must be a database that
+ does not already exist.
+* If you are not using Apache as the web server, it is highly
+ recommended to configure the data directory to a location outside of
+ the document root. Otherwise all user data is potentially publicly
+ visible!
+
+.. image:: images/install-wizard-advanced.png
+ :scale: 75%
+
+Database Choice
+~~~~~~~~~~~~~~~
+
+* For a guideline on which database system to choose, and on pointers how to
+ set them up for being available for PHP/ownCloud, see
+ :doc:`../configuration/database_configuration`
+
+* Note that you will only be able to choose among the PHP database connectors
+ which are actually installed on the system.
+
+* It is not easily possible to migrate to another database system once you have
+ set up your ownCloud to use a specific one. So make sure to carefully
+ consider which database system to use.
+
+* When using MySQL/MariaDB or PostgreSQL you have two options regarding the database
+ name and user account you specify:
+
+ * You can specify either an admin or the root user, and the name of a database
+ which does not yet exist. This lets ownCloud create its own database; it
+ will also create a database user account with restricted rights (with the
+ same username as you specified for the administrative user, plus an
+ ``oc_`` prefix) and will use that for all subsequent database access.
+
+ * There are restrictions as to what characters a database name may or may
+ not contain; see the
+ `MySQL Schema Object Names documentation`_ for details);
+
+Finish Installation
+~~~~~~~~~~~~~~~~~~~
+
+* Once you've entered all settings, click "Finish Setup"
+* ownCloud will set up your cloud according to the given settings
+* When it's finished, it will log you in as administrative user and present the
+ "Welcome to ownCloud" screen.
+
+Setting Strong Directory Permissions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For hardened security we recommend setting the permissions on your ownCloud
+directory as strictly as possible. This should be done immediately after the
+initial installation. Your HTTP user must own the ``config/``, ``data/`` and
+``apps/`` directories in your ownCloud directory so that you can configure
+ownCloud, create, modify and delete your data files, and install apps via the
+ownCloud Web interface.
+
+You can find your HTTP user in your HTTP server configuration files. Or you can
+create a PHP page to find it for you. To do this, create a plain text file with
- a single line in it:
++the following lines in it:
++
++.. code-block:: php
++
++ <?php
++ echo "User: " . exec('whoami');
++ echo "Group: " . exec('groups');
++ ?>
++
++If the exec php function is disabled (getting a white page with the script above)
++you can also try to use a script like:
++
++.. code-block:: php
++
++ <?php
++ $processUser = posix_getpwuid(posix_geteuid());
++ echo "User: " . $processUser['name'];
++ $processGroup = posix_getgrgid($processUser['gid']);
++ echo " Group: " . $processGroup['name'];
++ ?>
+
- ``<?php echo exec('whoami'); ?>``
-
+Name it ``whoami.php`` and place it in your ``/var/www/html`` directory, and
+then open it in a Web browser, for example ``http://localhost/whoami.php``. You
+should see a single line in your browser page with the HTTP user name.
+
+* The HTTP user and group in Debian/Ubuntu is ``www-data``.
+* The HTTP user and group in Fedora/CentOS is ``apache``.
+* The HTTP user and group in Arch Linux is ``http``.
+* The HTTP user in openSUSE is ``wwwrun``, and the HTTP group is ``www``.
+
+.. note:: When using an NFS mount for the data directory, do not change its
+ ownership from the default. The simple act of mounting the drive will set
+ proper permissions for ownCloud to write to the directory. Changing
+ ownership as above could result in some issues if the NFS mount is
+ lost.
+
+The easy way to set the correct permissions is to copy and run this script. Replace the ``ocpath`` variable with the path to your ownCloud directory, and replace the ``htuser`` and ``htgroup`` variables with your HTTP user and group::
+
+ #!/bin/bash
+ ocpath='/var/www/owncloud'
+ htuser='www-data'
+ htgroup='www-data'
+
+ find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
+ find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
+
+ chown -R root:${htuser} ${ocpath}/
+ chown -R ${htuser}:${htgroup} ${ocpath}/apps/
+ chown -R ${htuser}:${htgroup} ${ocpath}/config/
+ chown -R ${htuser}:${htgroup} ${ocpath}/data/
+ chown -R ${htuser}:${htgroup} ${ocpath}/themes/
+
+ chown root:${htuser} ${ocpath}/.htaccess
+ chown root:${htuser} ${ocpath}/data/.htaccess
+
+ chmod 0644 ${ocpath}/.htaccess
+ chmod 0644 ${ocpath}/data/.htaccess
+
+If you have customized your ownCloud installation and your filepaths are
+different than the standard installation, then modify this script accordingly.
+
+This lists the recommended modes and ownership for your ownCloud directories
+and files:
+
+* All files should be read-write for the file owner, read-only for the
+ group owner, and zero for the world
+* All directories should be executable (because directories always need the
+ executable bit set), read-write for the directory owner, and read-only for
+ the group owner
+* The :file:`/` directory should be owned by ``root:[HTTP group]``
+* The :file:`apps/` directory should be owned by ``[HTTP user]:[HTTP group]``
+* The :file:`config/` directory should be owned by ``[HTTP user]:[HTTP group]``
+* The :file:`themes/` directory should be owned by ``[HTTP user]:[HTTP group]``
+* The :file:`data/` directory should be owned by ``[HTTP user]:[HTTP group]``
+* The :file:`[ocpath]/.htaccess` file should be owned by ``root:[HTTP group]``
+* The :file:`data/.htaccess` file should be owned by ``root:[HTTP group]``
+* Both :file:`.htaccess` files are read-write file owner, read-only group and
+ world
+
+Trusted Domains
+~~~~~~~~~~~~~~~
+
+ownCloud will take the URL used to access the Installation Wizard and insert
+that into the ``config.php`` file for the ``trusted_domains`` setting.
+All needed domain names of the ownCloud server go into the
+``trusted_domains`` setting. Users will only be able to log into ownCloud when they point their browsers to a domain name listed in the ``trusted_domains`` setting. An IPv4 address can be
+specified instead of a domain name. A typical configuration looks like this::
+
+ 'trusted_domains' =>
+ array (
+ 0 => 'localhost',
+ 1 => 'server1',
+ 2 => '192.168.1.50',
+ ),
+
+In the event that a load balancer is in place there will be no issues as long
+as it sends the correct X-Forwarded-Host header.
+
+The loopback address, ``127.0.0.1``, is whitelisted and
+therefore users on the ownCloud server who access ownCloud with the loopback
+interface will be able to successfully login.
+In the event that an improper URL is used, the
+following error will appear:
+
+.. image:: images/untrusted-domain.png
+ :scale: 75%
+
+For configuration examples, refer to the :file:`config/config.sample.php`
+document.
+
+
+
+.. _MySQL Schema Object Names documentation: http://dev.mysql.com/doc/refman/5.5/en/identifiers.html
diff --cc core/doc/admin/release/_sources/installation/selinux_configuration.txt
index 54ccb16,0000000..6ae6058
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/installation/selinux_configuration.txt
+++ b/core/doc/admin/release/_sources/installation/selinux_configuration.txt
@@@ -1,42 -1,0 +1,67 @@@
++.. _selinux-config-label:
++
+=====================
+SELinux Configuration
+=====================
+
+When you have SELinux enabled on your Linux distribution, you may run into
+permissions problems after a new ownCloud installation, and see ``permission
+denied`` errors in your ownCloud logs.
+
+The following settings should work for most SELinux systems that use the
+default distro profiles. Run these commands as root, and remember to adjust the filepaths
+in these examples for your installation::
+
+ semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/data'
+ restorecon '/var/www/html/owncloud/data'
+ semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/config'
+ restorecon '/var/www/html/owncloud/config'
+ semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps'
+ restorecon '/var/www/html/owncloud/apps'
+
+If you uninstall ownCloud you need to remove the ownCloud directory labels. To do
+this execute the following commands as root after uninstalling ownCloud::
+
+ semanage fcontext -d -t httpd_sys_rw_content_t '/var/www/html/owncloud/data'
+ restorecon '/var/www/html/owncloud/data'
+ semanage fcontext -d -t httpd_sys_rw_content_t '/var/www/html/owncloud/config'
+ restorecon '/var/www/html/owncloud/config'
+ semanage fcontext -d -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps'
+ restorecon '/var/www/html/owncloud/apps'
+
+If you have customized SELinux policies and these examples do not work, you must give the
+HTTP server write access to these directories::
+
+ /var/www/html/owncloud/data
+ /var/www/html/owncloud/config
+ /var/www/html/owncloud/apps
+
+Allow access to a remote database
+---------------------------------
+
+An additional setting is needed if your installation is connecting to a remote database::
+
- setsebool -P httpd_can_network_connect_db on
++ setsebool -P httpd_can_network_connect_db on
++
++Allow access to LDAP server
++---------------------------
++
++Use this setting to allow LDAP connections::
++
++ setsebool -P httpd_can_connect_ldap on
++
++Allow access to remote network
++------------------------------
++
++ownCloud requires access to remote networks for functionalities such as Server-to-Server sharing, external storages or
++the app store. To allow this access use the following setting::
++
++ setsebool -P httpd_can_network_connect on
++
++Allow access to SMTP/sendmail
++-----------------------------
++
++If you want to allow ownCloud to send out e-mail notifications via sendmail you need
++to use the following setting::
++
++ setsebool -P httpd_can_sendmail on
diff --cc core/doc/admin/release/_sources/installation/source_installation.txt
index 723e104,0000000..e29a73d
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/installation/source_installation.txt
+++ b/core/doc/admin/release/_sources/installation/source_installation.txt
@@@ -1,392 -1,0 +1,393 @@@
+Manual Installation on Linux
+============================
+
+Installing ownCloud on Linux from the openSUSE Build Service packages is the preferred method (see :doc:`linux_installation`). These are maintained by ownCloud engineers, and you can use your package manager to keep your ownCloud server up-to-date.
+
+If there are no packages for your Linux distribution, or you prefer installing from sources, you can setup ownCloud from scratch using a classic LAMP stack (Linux, Apache, MySQL/MariaDB, PHP). This document provides a complete walk-through for installing ownCloud on Ubuntu
+14.04 LTS Server with Apache and MySQL.
+
+Prerequisites
+-------------
+
+.. note:: This tutorial assumes you have terminal access to the machine you want
+ to install ownCloud on. Although this is not an absolute requirement,
+ installation without it is likely to require contacting your
+ hoster (e.g. for installing required modules). Consult the `PHP manual
+ <http://php.net/manual/en/extensions.php>`_ for information on modules. Your Linux distribution should have packages for all required modules.
+
+To run ownCloud, your web server must have the following installed:
+
+* php5 (>= 5.3.8, minimum recommended 5.4)
+* PHP module ctype
+* PHP module dom
+* PHP module GD
+* PHP module iconv
+* PHP module JSON
+* PHP module libxml
+* PHP module mb multibyte
+* PHP module SimpleXML
+* PHP module XMLWriter
+* PHP module zip
+* PHP module zlib
+
+Database connectors (pick at least one):
+
+* PHP module sqlite (>= 3, usually not recommended for performance reasons)
+* PHP module mysql
+* PHP module pgsql (requires PostgreSQL >= 9.0)
+
+*Recommended* packages:
+
+* PHP module curl (highly recommended, some functionality, e.g. http user
+ authentication, depends on this)
+* PHP module fileinfo (highly recommended, enhances file analysis performance)
+* PHP module bz2 (recommended, required for extraction of apps)
+* PHP module intl (increases language translation performance and fixes sorting
+ of non-ASCII characters)
+* PHP module mcrypt (increases file encryption performance)
+* PHP module openssl (required for accessing HTTPS resources)
+
+Required for specific apps:
+
+* PHP module ldap (for LDAP integration)
- * smbclient (for SMB storage)
- * PHP module ftp (for FTP storage)
++* smbclient (for SMB storage / external user authentication)
++* PHP module ftp (for FTP storage / external user authentication)
++* PHP module imap (for external user authentication)
+
+Recommended for specific apps (*optional*):
+
+* PHP module exif (for image rotation in pictures app)
+* PHP module gmp (for SFTP storage)
+
+For enhanced server performance (*optional* / select only one of the following):
+
+* PHP module apc
+* PHP module apcu
+* PHP module xcache
+
+For preview generation (*optional*):
+
+* PHP module imagick
+* avconv or ffmpeg
+* OpenOffice or LibreOffice
+
+**Remarks:**
+
+* Please check your distribution, operating system or hosting partner
+ documentation on how to install and enable these modules.
+
+* Make sure your distribution's PHP version fulfills the version requirements
+ specified above. If it doesn't, there might be custom repositories you can
+ use. If you are e.g. running Ubuntu 10.04 LTS, you can update your PHP using
+ a custom `PHP PPA <https://launchpad.net/~ondrej/+archive/php5>`_::
+
+ sudo add-apt-repository ppa:ondrej/php5
+ sudo apt-get update
+ sudo apt-get install php5
+
+* You don’t need the WebDAV module for your web server (i.e. Apache’s
+ ``mod_webdav``) to access your ownCloud data via WebDAV. ownCloud has a built-in
+ WebDAV server of its own, SabreDAV.
+
+Example installation on Ubuntu 14.04 LTS Server
+-----------------------------------------------
+On a machine running a pristine Ubuntu 14.04 LTS server, install the
+required and recommended modules for a typical ownCloud installation, using
+Apache and MariaDB, by issuing the following commands in a terminal::
+
+ apt-get install apache2 mariadb-server libapache2-mod-php5
+ apt-get install php5-gd php5-json php5-mysql php5-curl
+ apt-get install php5-intl php5-mcrypt php5-imagick
+
+* This installs the packages for the ownCloud core system. If you are planning
+ on running additional apps, keep in mind that they might require additional
+ packages. See the Prerequisites section (above) for details.
+
+* At the execution of each of the above commands you might be prompted whether
+ you want to continue; press "Y" for Yes (that is if your system language is
+ English. You might have to press a different key if you have a different
+ system language).
+
+* At the installation of the MySQL server, you will be prompted to create a root
+ password. Be sure to remember the password you enter there for later use
+ as you will need it during ownCloud database setup.
+
+Now download the archive of the latest ownCloud version:
+
+* Go to the `ownCloud Installation Page <http://owncloud.org/install>`_.
+* Click the **Archive file for server owners** button.
+* Click **Download Unix**.
+* This downloads a file named owncloud-x.y.z.tar.bz2 (where
+ x.y.z is the version number of the current latest version).
+* Save this file on the machine you want to install ownCloud on.
+* Verify the MD5 or SHA256 sum::
+
+ md5sum owncloud-x.y.z.tar.bz2
+ sha256sum owncloud-x.y.z.tar.bz2
+
+* You may also verify the PGP signature::
+
+ wget https://download.owncloud.org/community/owncloud-x.y.z.tar.bz2.asc
+ wget https://www.owncloud.org/owncloud.asc
+ gpg --import owncloud.asc
+ gpg --verify owncloud-x.y.z.tar.bz2.asc owncloud-x.y.z.tar.bz2
+
+* Now you can extract the archive contents. Open a terminal, navigate to your
+ download directory, and run::
+
+ tar -xjf owncloud-x.y.z.tar.bz2
+
+* Copy the ownCloud files to their final destination in the document root of
+ your web server::
+
+ cp -r owncloud /path/to/webserver/document-root
+
+ where ``/path/to/webserver/document-root`` is replaced by the
+ document root of your Web server. On Ubuntu systems this
+ ``/var/www/owncloud``, so your copying command is::
+
+ cp -r owncloud /var/www/
+
+Installation Wizard
+-------------------
+
+Finish setting up your ownCloud server by following
+the :doc:`installation_wizard`.
+
+After running the Installation Wizard your ownCloud installation is complete.
+However, you should perform the following steps to improve your server's
+security.
+
+Setting Strong Directory Permissions
+------------------------------------
+
+We recommend setting the directory permissions in your ownCloud installation as
+strictly as possible for stronger security. Please refer to the ``Setting
+Strong Directory Permissions`` section of :doc:`installation_wizard`.
+
+SELinux
+-------
+
+See :doc:`selinux_configuration` for a suggested configuration for SELinux-enabled distributions such as Fedora and CentOS.
+
+Apache is the recommended Web server.
+
+Configuration notes to php.ini files
+------------------------------------
+
+Keep in mind that changes to php.ini may have to be done on more than one ini file. This can be the case, as example, for the ``date.timezone`` setting.
+
+**php.ini - used by the webserver:**
+::
+
+ /etc/php5/apache2/php.ini
+ or
+ /etc/php5/fpm/php.ini
+ or ...
+
+**php.ini - used by the php-cli and so by ownCloud CRON jobs:**
+::
+
+ /etc/php5/cli/php.ini
+
+
+Apache Web Server Configuration
+-------------------------------
+
+.. note:: You can use ownCloud over plain http, but we strongly encourage you to
+ use SSL/TLS to encrypt all of your server traffic, and to protect
+ user's logins and data in transit.
+
+Enabling SSL
+------------
+
+An Apache installed under Ubuntu comes already set-up with a simple
+self-signed certificate. All you have to do is to enable the ssl module and
+the according site. Open a terminal and run::
+
+ a2enmod ssl
+ a2ensite default-ssl
+ service apache2 reload
+
+If you are using a different distribution, check your documentation on how to
+enable SSL.
+
+.. note:: Self-signed certificates have their drawbacks - especially when you
+ plan to make your ownCloud server publicly accessible. You might want
+ to consider getting a certificate signed by commercial signing
+ authority. Check with your domain name registrar or hosting service,
+ if you're using one, for good deals on commercial certificates.
+
+Configuring ownCloud
+--------------------
+
+Since there was a change in the way versions 2.2 and 2.4 are configured,
+you'll have to find out which Apache version you are using.
+
+Usually you can do this by running one of the following commands::
+
+ apachectl -v
+ apache2 -v
+
+Example output::
+
+ Server version: Apache/2.4.7 (Ubuntu)
+ Server built: Jul 22 2014 14:36:38
+
+Example config for Apache 2.2:
+
+.. code-block:: xml
+
+ <Directory /path/to/owncloud>
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Order allow,deny
+ allow from all
+ </Directory>
+
+
+Example config for Apache 2.4:
+
+.. code-block:: xml
+
+ <Directory /path/to/owncloud>
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Require all granted
+ </Directory>
+
+* This configuration entry needs to go into the configuration file of the
+ "site" you want to use.
+* On a Ubuntu system, this typically is the "default-ssl" site (to be found in
+ the :file:`/etc/apache2/sites-available/default-ssl.conf`).
+* Add the entry shown above immediately before the line containing::
+
+ </VirtualHost>
+
+ (this should be one of the last lines in the file).
+
+* A minimal site configuration file on Ubuntu 14.04 might look like this:
+
+.. code-block:: xml
+
+ <IfModule mod_ssl.c>
+ <VirtualHost _default_:443>
+ ServerName YourServerName
+ ServerAdmin webmaster at localhost
+ DocumentRoot /var/www
+ <Directory />
+ Options FollowSymLinks
+ AllowOverride None
+ </Directory>
+ <Directory /var/www/>
+ Options Indexes FollowSymLinks
+ AllowOverride None
+ Order allow,deny
+ allow from all
+ </Directory>
+ ErrorLog ${APACHE_LOG_DIR}/error.log
+ LogLevel warn
+ CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
+ SSLEngine on
+ SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
+ SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
+ <FilesMatch "\.(cgi|shtml|phtml|php)$">
+ SSLOptions +StdEnvVars
+ </FilesMatch>
+ <Directory /usr/lib/cgi-bin>
+ SSLOptions +StdEnvVars
+ </Directory>
+ BrowserMatch "MSIE [2-6]" \
+ nokeepalive ssl-unclean-shutdown \
+ downgrade-1.0 force-response-1.0
+ BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
+ <Directory /var/www/owncloud>
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Allow from all
+ Require all granted
+ Dav Off
+ Satisfy Any
+ </Directory>
+ </VirtualHost>
+ </IfModule>
+
+* For ownCloud to work correctly, we need the module ``mod_rewrite``. Enable it
+ by running::
+
+ a2enmod rewrite
+
+* In distributions that do not come with ``a2enmod``, the module needs to be
+ enabled manually by editing the Apache config files, usually
+ :file:`/etc/httpd/httpd.conf`. Consult the Apache documentation or your Linux
+ distribution's documentation.
+
+* In order for the maximum upload size to be configurable, the
+ :file:`.htaccess` in the ownCloud folder needs to be made writable by the
+ server (this should already be done, see section ``Set the Directory
+ Permissions``).
+
+* You should make sure that any built-in WebDAV module of your web server is
+ disabled (at least for the ownCloud directory), as it will interfere with
+ ownCloud's built-in WebDAV support.
+
+ If you need the WebDAV support in the rest of your configuration, you can turn
+ it off specifically for the ownCloud entry by adding the following line in
+ the ``<Directory`` section for your ownCloud server. Add the following line
+ directly after the ``allow from all`` / ``Require all granted`` line::
+
+ Dav Off
+
+* You must disable any server-configured authentication for ownCloud, as it
+ uses Basic authentication internally for DAV services. If you have turned on
+ authentication on a parent folder (via e.g. an ``AuthType Basic``
+ directive), you can turn off the authentication specifically for the ownCloud
+ entry. Following the above example configuration file, add the following line
+ directly after the ``allow from all`` / ``Require all granted`` line in the
+ ``<Directory`` section::
+
+ Satisfy Any
+
+* When using ssl, take special note on the ServerName. You should specify one in
+ the server configuration, as well as in the CommonName field of the
+ certificate. If you want your ownCloud to be reachable via the internet, then
+ set both of these to the domain you want to reach your ownCloud server.
+
+.. note:: By default, the certificates' CommonName will be set to the host name
+ at the time the ssl-cert package was installed.
+
+* Finally, restart Apache.
+
+ * On Ubuntu systems run::
+
+ service apache2 restart
+
+ * On systemd systems (Fedora, Arch Linux, OpenSUSE), run::
+
+ systemctl restart httpd.service
+
+
+
+
+Other Web Servers
+-----------------
+
+**Microsoft Internet Information Server (IIS)**
+
+See :doc:`windows_installation` for further instructions.
+
+**Nginx Configuration**
+
+See :doc:`nginx_configuration`
+
+**Lighttpd Configuration**
+
+See :doc:`lighttpd_configuration`
+
+**Yaws Configuration**
+
+See :doc:`yaws_configuration`
+
+**Hiawatha Configuration**
+
+See :doc:`hiawatha_configuration`
diff --cc core/doc/admin/release/_sources/issues/index.txt
index 1ec95a7,0000000..890bf31
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/issues/index.txt
+++ b/core/doc/admin/release/_sources/issues/index.txt
@@@ -1,231 -1,0 +1,234 @@@
+==========================
+Issues and Troubleshooting
+==========================
+
+If you have trouble installing, configuring or maintaining ownCloud, please refer to our community support channels:
+
+* `The ownCloud Forums`_
+
+.. note:: The ownCloud forums have a `FAQ page`_ where each topic corresponds to
+ typical mistakes or frequently occurring issues
+
+* `The ownCloud User mailing list`_
+* The ownCloud IRC chat channel ``irc://#owncloud@freenode.net`` on freenode.net, also
+ accessible via `webchat`_
+
+Please understand that all these channels essentially consist of users like you helping each other out. Consider helping others out where you can, to contribute back for the help you get. This is the only way to keep a community like ownCloud healthy and sustainable!
+
+If you are using ownCloud in a business or otherwise large scale deployment, note that ownCloud Inc. offers the `Enterprise Edition`_ with commercial support options.
+
+Bugs
+----
+
+If you think you have found a bug in ownCloud, please:
+
+* Search for a solution (see the options above)
+* Double check your configuration
+
+If you can't find a solution, please use our `bugtracker`_.
+
+
+.. _the ownCloud Forums: http://forum.owncloud.org
+.. _FAQ page: https://forum.owncloud.org/viewforum.php?f=17
+.. _the ownCloud User mailing list: https://mailman.owncloud.org/mailman/listinfo/user
+.. _webchat: http://webchat.freenode.net/?channels=owncloud
+.. _Enterprise Edition: https://owncloud.com/lp/community-or-enterprise/
+.. _bugtracker: http://doc.owncloud.org/server/7.0/developer_manual/bugtracker/index.html
+
+General Troubleshooting
+-----------------------
+
+Debugging the issue
+~~~~~~~~~~~~~~~~~~~
+
+In a standard ownCloud installation the log level is set to ``Normal``. To find any issues
+you need to raise the log level to ``All`` from the Admin page. Please see :doc:`../configuration/logging_configuration`
+for more informations on this log levels.
+
+Some logging - for example JavaScript console logging - needs manually editing the
+configuration file.
+Edit :file:`config/config.php` and add ``define('DEBUG', true);``::
+
+ <?php
+ define('DEBUG',true);
+ $CONFIG = array (
+ ... configuration goes here ...
+ );
+
+For JavaScript issues you will also need to view the javascript console. All major browsers
+have decent developer tools for viewing the console, and you usually access them by
+pressing F-12. For Firefox it is recommended to install the `Firebug extension <https://getfirebug.com/>`_.
+
+.. note:: The logfile of ownCloud is located in the datadirectory ``/var/www/owncloud/data/owncloud.log``.
+
+Debugging Sync-Issues
+~~~~~~~~~~~~~~~~~~~~~
+
+.. note:: The data directory on the server is exclusive to ownCloud and must not be modified manually.
+
+Disregarding this can lead to unwanted behaviours like:
+
+* Problems with sync clients
+* Undetected changes due to caching in the database
+
+If you need to directly upload files from the same server please use a WebDAV command
+line client like ``cadaver`` to upload files to the WebDAV interface at:
+
+ https://example.org/owncloud/remote.php/webdav
+
+Common problems / error messages
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Some common problems / error messages found in your logfiles as described above:
+
+* ``SQLSTATE[HY000] [1040] Too many connections`` -> You need to increase the
+ connection limit of your database, please refer to the manual of your database
+ for more informations.
+* ``SQLSTATE[HY000]: General error: 5 database is locked`` -> You're using ``SQLite``
+ which can't handle a lot of parallel requests. Please consider converting to
+ another database like described in :doc:`../maintenance/convert_db`.
+* ``SQLSTATE[HY000]: General error: 2006 MySQL server has gone away`` -> The database
+ request takes too long and therefore the MySQL server times out. Its also possible
+ that the server is dropping a too large packet. Please refer to the manual of your
+ database how to raise the config options ``wait_timeout`` and/or ``max_allowed_packet``.
+* ``SQLSTATE[HY000] [2002] No such file or directory`` -> There is a problem
+ accessing your SQLite database file in your datadirectory (``data/owncloud.db``).
+ Please check the permissions of this folder/file or if it exists at all. If you're
+ using MySQL please start your database.
++* ``Connection closed / Operation cancelled`` -> This could be caused by wrong ``KeepAlive``
++ settings within your Apache config. Make sure that ``KeepAlive`` is set to ``On`` and
++ also try to raise the limits of ``KeepAliveTimeout`` and ``MaxKeepAliveRequests``.
+
+Troubleshooting Webserver and PHP problems
+------------------------------------------
+
+Logfiles
+~~~~~~~~
+
+When having issues the first step is to check the logfiles provided by PHP, the Webserver
+and ownCloud itself.
+
+.. note:: In the following the paths to the logfiles of a default Debian installation
+ running Apache2 with mod_php is assumed. On other webservers, linux distros or
+ operating systems they can differ.
+
+* The logfile of Apache2 is located in ``/var/log/apache2/error.log``.
+* The logfile of PHP can be configured in your ``/etc/php5/apache2/php.ini``.
+ You need to set the directive ``log_errors`` to ``On`` and choose the path
+ to store the logfile in the ``error_log`` directive. After those changes you
+ need to restart your Webserver.
+* The logfile of ownCloud is located in the datadirectory ``/var/www/owncloud/data/owncloud.log``.
+
+Webserver and PHP modules
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+There are some Webserver or PHP modules which are known to cause various problems
+like broken up-/downloads. The following shows a draft overview over this modules:
+
+1. Apache
+
+* mod_pagespeed
+* mod_evasive
+* mod_security
+* mod_reqtimeout
+* mod_deflate
+* libapache2-mod-php5filter (use libapache2-mod-php5 instead)
+* mod_spdy together with libapache2-mod-php5 / mod_php (use fcgi or php-fpm instead)
+* mod_dav
+* mod_xsendfile / X-Sendfile (causing broken downloads if not configured correctly)
+
+2. NginX
+
+* ngx_pagespeed
+* HttpDavModule
+* X-Sendfile (causing broken downloads if not configured correctly)
+
+3. Mac OS X server
+
+* mod_auth_apple
+* com.apple.webapp.webdavsharing
+
+4. LigHTTPd
+
+* ModWebDAV
+* X-Sendfile2 (causing broken downloads if not configured correctly)
+
+5. PHP
+
+* eAccelerator
+
+Troubleshooting WebDAV
+----------------------
+
+ownCloud uses SabreDAV, and the SabreDAV documentation is comprehensive and
+helpful. See:
+
+* `SabreDAV FAQ <http://sabre.io/dav/faq/>`_
+* `Webservers <http://sabre.io/dav/webservers>`_ (Lists lighttpd as not
+ recommended)
+* `Working with large files <http://sabre.io/dav/large-files/>`_ (Shows a PHP
+ bug in older SabreDAV versions and information for mod_security problems)
+* `0 byte files <http://sabre.io/dav/0bytes>`_ (Reasons for empty files on the
+ server)
+* `Clients <http://sabre.io/dav/clients/>`_ (A comprehensive list of WebDAV
+ clients, and possible problems with each one)
+* `Finder, OS X's built-in WebDAV client
+ <http://sabre.io/dav/clients/finder/>`_
+ (Describes problems with Finder on various webservers)
+
+There is also a well maintained FAQ thread available at the `ownCloud Forums <https://forum.owncloud.org/viewtopic.php?f=17&t=7536>`_
+which contains various additional informations about WebDAV problems.
+
+Troubleshooting Contacts & Calendar
+-----------------------------------
+
+Service discovery
+~~~~~~~~~~~~~~~~~
+
+Some clients - especially iOS - have problems finding the proper sync URL, even when explicitly
+configured to use it.
+
+There are several techniques to remedy this, which are described extensively at the
+`Sabre DAV website <http://sabre.io/dav/service-discovery/>`_.
+
+Apple iOS
+~~~~~~~~~
+
+Below is what have proven to work with iOS including iOS 7.
+
+If your ownCloud instance is installed in a subfolder under the web server's document root and
+the client has difficulties finding the Cal- or CardDAV end-points, configure your web server to
+redirect from a "well-know" URL to the one used by ownCloud.
+When using the Apache web server this is easily achieved using a :file:`.htaccess` file in the document
+root of your site.
+
+Say your instance is located in the ``owncloud`` folder, so the URL to it is ``ADDRESS/owncloud``,
+create or edit the :file:`.htaccess` file and add the following lines::
+
+ Redirect 301 /.well-known/carddav /owncloud/remote.php/carddav
+ Redirect 301 /.well-known/caldav /owncloud/remote.php/caldav
+
+If you use lighttpd as web server, the setting looks something like::
+
+ url.redirect = (
+ "^/.well-known/carddav" => "/owncloud/remote.php/carddav",
+ "^/.well-known/caldav" => "/owncloud/remote.php/caldav",
+ )
+
+Now change the URL in the client settings to just use ``ADDRESS`` instead of e.g. ``ADDRESS/remote.php/carddav/principals/username``.
+
+This problem is being discussed in the `forum <http://forum.owncloud.org/viewtopic.php?f=3&t=71&p=2211#p2197>`_.
+
+Unable to update Contacts or Events
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you get an error like ``PATCH https://ADDRESS/some_url HTTP/1.0 501 Not Implemented`` it is
+likely caused by one of the following reasons:
+
+Outdated lighttpd web server
+ lighttpd in debian wheezy (1.4.31) doesn't support the PATCH HTTP verb.
+ Upgrade to lighttpd >= 1.4.33.
+
+Using Pound reverse-proxy/load balancer
+ As of writing this Pound doesn't support the HTTP/1.1 verb.
+ Pound is easily `patched <http://www.apsis.ch/pound/pound_list/archive/2013/2013-08/1377264673000>`_ to support HTTP/1.1.
diff --cc core/doc/admin/release/_sources/maintenance/restore.txt
index f9bb4cb,0000000..4fb1ce7
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/maintenance/restore.txt
+++ b/core/doc/admin/release/_sources/maintenance/restore.txt
@@@ -1,43 -1,0 +1,46 @@@
+Restoring ownCloud
+==================
+
+To restore an ownCloud installation there are three main things you need to restore:
+
+#. The config folder
+#. The data folder
+#. The database
+
++When you have completed your restoration, see the ``Setting Strong Directory Permissions`` section of :doc:`../installation/installation_wizard`.
++
+Restore Folders
+---------------
+
+.. note:: This guide assumes that your previous backup is called "owncloud-dirbkp"
+
+Simply copy your config and data folder (or even your whole ownCloud install and data folder) to
+your ownCloud environment. You could use this command::
+
+ rsync -Aax owncloud-dirbkp/ owncloud/
+
+Restore Database
+----------------
+
+.. note:: This guide assumes that your previous backup is called "owncloud-sqlbkp.bak"
+
+MySQL
+^^^^^
+
+MySQL is the recommended database engine. To backup MySQL::
+
+ mysql -h [server] -u [username] -p[password] [db_name] < owncloud-sqlbkp.bak
+
+SQLite
+^^^^^^
+::
+
- sqlite3 data/owncloud.db .dump < owncloud-sqlbkp.bak
++ rm data/owncloud.db
++ sqlite3 data/owncloud.db < owncloud-sqlbkp.bak
+
+PostgreSQL
+^^^^^^^^^^
+::
+
+ PGPASSWORD="password" pg_restore -c -d owncloud -h [server] -U [username] owncloud-sqlbkp.bak
+
diff --cc core/doc/admin/release/configuration/external_storage_configuration.html
index 489e0d1,0000000..5b2e5c5
mode 100644,000000..100644
--- a/core/doc/admin/release/configuration/external_storage_configuration.html
+++ b/core/doc/admin/release/configuration/external_storage_configuration.html
@@@ -1,641 -1,0 +1,653 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Configuring External Storage (Configuration File) — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="up" title="Configuration" href="index.html" />
+ <link rel="next" title="Linking External Sites" href="external_sites.html" />
+ <link rel="prev" title="Configuring External Storage (GUI)" href="external_storage_configuration_gui.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Configuration</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Configuring the Activity App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Configuring the ClamAV Antivirus Scanner</a></li>
+<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic Configuration Setup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Defining Background Jobs</a></li>
+<li class="toctree-l2"><a class="reference internal" href="big_file_upload_configuration.html">Uploading big files > 512MB (as set by default)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="collaborative_documents_configuration.html">Configuring the Collaborative Documents App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Config.php Parameters</a></li>
+<li class="toctree-l2"><a class="reference internal" href="custom_client_configuration.html">Custom Client Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="database_configuration.html">Database Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="encryption_configuration.html">Encryption Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_storage_configuration_gui.html">Configuring External Storage (GUI)</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Configuring External Storage (Configuration File)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#using-self-signed-certificates">Using self-signed certificates</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#adding-files-to-external-storages">Adding files to external storages</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#example">Example</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#priorities">Priorities</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#backends">Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#external-storage-password-management">External Storage Password Management</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking External Sites</a></li>
+<li class="toctree-l2"><a class="reference internal" href="file_sharing_configuration.html">File Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="files_locking_enabling.html">Files Locking App Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="harden_server.html">Hardening and Security Guidance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="js_css_asset_management_configuration.html">JavaScript and CSS Asset Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="knowledgebase_configuration.html">Knowledge Base Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ Command</a></li>
+<li class="toctree-l2"><a class="reference internal" href="performance_tips.html">Performance Tips</a></li>
+<li class="toctree-l2"><a class="reference internal" href="previews_configuration.html">Previews Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse Proxy Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="search_configuration.html">Enabling Full-Text Search</a></li>
+<li class="toctree-l2"><a class="reference internal" href="server_to_server_configuration.html">Configuring Server-to-Server Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="serving_static_files_configuration.html">Serving Static Files for Better Performance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="thirdparty_php_configuration.html">Using Third Party PHP Components</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ftp_smb_imap.html">User Authentication with IMAP, SMB, and FTP</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap.html">User Authentication with LDAP</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap_cleanup.html">LDAP User Cleanup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_configuration.html">User Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reset_admin_password.html">Resetting a Lost Admin Password</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="configuring-external-storage-configuration-file">
+<h1>Configuring External Storage (Configuration File)<a class="headerlink" href="#configuring-external-storage-configuration-file" title="Permalink to this headline">¶</a></h1>
+<p>Since ownCloud 4.0 it is possible to configure the filesystem to mount external
+storage providers into ownCloud’s virtual file system. You can configure these
+file systems by creating and editing <tt class="file docutils literal"><span class="pre">data/mount.json</span></tt>. This file contains
+all settings in JSON (JavaScript Object Notation) format. At the moment two
+different types of entries exist:</p>
+<ul class="simple">
+<li><strong>Group mounts:</strong> each entry configures a mount for each user in group.</li>
+<li><strong>User mounts:</strong> each entry configures a mount for a single user or for all
+users.</li>
+</ul>
+<p>For each type, there is a JSON array with the user/group name as key, and an
+array of configuration entries as value. Each entry consist of the class name
+of the storage backend and an array of backend specific options and will be
+replaced by the user login. The template <strong>$user</strong> can be used in the mount
+point or backend options. As of writing the following storage backends are
+available for use:</p>
+<ul class="simple">
+<li>Local file system</li>
+<li>FTP (or FTPS)</li>
+<li>SFTP</li>
+<li>SMB</li>
+<li>WebDAV</li>
+<li><a class="reference external" href="http://aws.amazon.com/de/s3/">Amazon S3</a></li>
+<li><a class="reference external" href="https://www.dropbox.com/">Dropbox</a></li>
+<li><a class="reference external" href="https://drive.google.com/start">Google Drive</a></li>
+<li><a class="reference external" href="http://openstack.org/projects/storage/">OpenStack Swift</a></li>
+</ul>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">You need to enable the <cite>External storage support</cite> app first before you
+can use the examples below. See the section <a class="reference internal" href="external_storage_configuration_gui.html"><em>Configuring External Storage (GUI)</em></a>
+how to do this.</p>
+</div>
++<div class="admonition note">
++<p class="first admonition-title">Note</p>
++<p class="last">A non-blocking or correctly configured SELinux setup is needed
++for these backends to work. Please refer to the <a class="reference internal" href="../installation/selinux_configuration.html#selinux-config-label"><em>SELinux Configuration</em></a>.</p>
++</div>
+<p>Please keep in mind that some formatting has been applied and carriage returns
+have been added for better readability. In the <tt class="file docutils literal"><span class="pre">data/mount.json</span></tt> all
+values need to be concatenated and written in a row without these modifications!</p>
+<p>It is recommended to use the <a class="reference internal" href="external_storage_configuration_gui.html"><em>Web-GUI</em></a> in the
+administrator panel to add, remove or modify mount options to prevent any problems!</p>
+<div class="section" id="using-self-signed-certificates">
+<h2>Using self-signed certificates<a class="headerlink" href="#using-self-signed-certificates" title="Permalink to this headline">¶</a></h2>
+<p>When using self-signed certificates for external storage mounts the certificate
+needs to be imported in the personal settings of the user. Please refer to <a class="reference external" href="http://ownclouden.blogspot.de/2014/11/owncloud-https-external-mount.html">this</a>
+blogpost for more informations.</p>
+</div>
+<div class="section" id="adding-files-to-external-storages">
+<h2>Adding files to external storages<a class="headerlink" href="#adding-files-to-external-storages" title="Permalink to this headline">¶</a></h2>
+<p>In general it is recommended to configure the background job <tt class="docutils literal"><span class="pre">Webcron</span></tt> or
+<tt class="docutils literal"><span class="pre">Cron</span></tt> as described in <a class="reference internal" href="background_jobs_configuration.html"><em>Defining Background Jobs</em></a>
+so ownCloud is able to detect files added to your external storages without the need
+that a users is browsing your ownCloud installation.</p>
+<p>Please also be aware that ownCloud might not always be able to find out what has been
+changed remotely (files changes without going through ownCloud), especially
+when it’s very deep in the folder hierarchy of the external storage.</p>
+<p>You might need to setup a cron job that runs <tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">-u</span> <span class="pre">www-data</span> <span class="pre">php</span> <span class="pre">occ</span> <span class="pre">files:scan</span> <span class="pre">--all</span></tt>
+(or replace “–all” with the user name, see also <a class="reference internal" href="occ_command.html"><em>Using the occ Command</em></a>)
+to trigger a rescan of the user’s files periodically (for example every 15 minutes), which includes
+the mounted external storage.</p>
+</div>
+<div class="section" id="example">
+<h2>Example<a class="headerlink" href="#example" title="Permalink to this headline">¶</a></h2>
+<div class="highlight-json"><pre>{"group":{
+ "admin":{
+ "\/$user\/files\/Admin_Stuff":{
+ "class":"\\OC\\Files\\Storage\\Local",
+ "options":{ ... },
+ "priority":150
+ }
+ }
+ }
+ "user":{
+ "all":{
+ "\/$user\/files\/Pictures":{
+ "class":"\\OC\\Files\\Storage\\DAV",
+ "options":{ ... },
+ "priority":100
+ }
+ }
+ "someuser":{
+ "\/someuser\/files\/Music":{
+ "class":"\\OC\\Files\\Storage\\FTP",
+ "options":{ ... },
+ "priority":100
+ }
+ }
+ }
+}</pre>
+</div>
+</div>
+<div class="section" id="priorities">
+<h2>Priorities<a class="headerlink" href="#priorities" title="Permalink to this headline">¶</a></h2>
+<p>An advanced feature is available, only configurable directly in
+<tt class="file docutils literal"><span class="pre">data/mount.json</span></tt>, which allows mount configurations to have an associated
+priority. When two or more valid mount configurations exist for the same mount point,
+the one with the highest priority (defined by the largest number) will take precedence
+and become the active mount for the user.</p>
+<p>Each backend has a default priority, assigned when a mount configuration with that
+backend is created. The default priority will be shown in the example section for
+each backend below. Should a backend not provide a default priority, a value of 100
+will be used.</p>
+<p>There is also a concept of priority types, to preserve compatibility with
+previous mount configuration parsing. Mount configurations are evaluated in the
+following order, with later mount types always overriding a previous mount type:</p>
+<ul class="simple">
+<li>user -> all : global mount configurations</li>
+<li>group : group mount configurations</li>
+<li>user (not all) : per-user mount configurations</li>
+<li><tt class="file docutils literal"><span class="pre">data/$user/mount.json</span></tt> : personal mount configurations</li>
+</ul>
+</div>
+<div class="section" id="backends">
+<h2>Backends<a class="headerlink" href="#backends" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="local-filesystem">
+<h3>Local Filesystem<a class="headerlink" href="#local-filesystem" title="Permalink to this headline">¶</a></h3>
+<p>The local filesystem backend mounts a folder on the server into the virtual
+filesystem, the class to be used is <strong>\OC\Files\Storage\Local</strong> and
+takes the following options:</p>
+<ul class="simple">
+<li><strong>datadir</strong> : the path to the local directory to be mounted</li>
+</ul>
+<div class="section" id="id1">
+<h4>Example<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h4>
+<div class="highlight-json"><div class="highlight"><pre><span class="p">{</span> <span class="nt">"class"</span><span class="p">:</span><span class="s2">"\\OC\\Files\\Storage\\Local"</span><span class="p">,</span>
+ <span class="nt">"options"</span><span class="p">:{</span> <span class="nt">"datadir"</span><span class="p">:</span><span class="s2">"\/mnt\/additional_storage"</span> <span class="p">},</span>
+ <span class="nt">"priority"</span><span class="p">:</span><span class="mi">150</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">You must ensure that the web server has sufficient permissions on the folder.</p>
+</div>
+</div>
+</div>
+<div class="section" id="ftp-or-ftps">
+<h3>FTP (or FTPS)<a class="headerlink" href="#ftp-or-ftps" title="Permalink to this headline">¶</a></h3>
+<p>The FTP backend mounts a folder on a remote FTP server into the virtual
+filesystem and is part of the ‘External storage support’ app, the class
+to be used is <strong>\OC\Files\Storage\FTP</strong> and takes the following
+options:</p>
+<ul class="simple">
+<li><strong>host</strong>: the hostname of the ftp server, and optionally the port number</li>
+<li><strong>user</strong>: the username used to login on the ftp server</li>
+<li><strong>password</strong>: the password to login on the ftp server</li>
+<li><strong>secure</strong>: whether to use ftps:// (FTP over TLS) to connect to the ftp
+server instead of ftp:// (optional, defaults to false)</li>
+<li><strong>root</strong>: the folder inside the ftp server to mount (optional, defaults
+to ‘/’)</li>
+</ul>
+<div class="section" id="id2">
+<h4>Example<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h4>
+<div class="highlight-json"><div class="highlight"><pre><span class="p">{</span> <span class="nt">"class"</span><span class="p">:</span><span class="s2">"\\OC\\Files\\Storage\\FTP"</span><span class="p">,</span>
+ <span class="nt">"options"</span><span class="p">:{</span>
+ <span class="nt">"host"</span><span class="p">:</span><span class="s2">"ftp.myhost.com:21"</span><span class="p">,</span>
+ <span class="nt">"user"</span><span class="p">:</span><span class="s2">"johndoe"</span><span class="p">,</span>
+ <span class="nt">"password"</span><span class="p">:</span><span class="s2">"secret"</span><span class="p">,</span>
+ <span class="nt">"root"</span><span class="p">:</span><span class="s2">"\/Videos"</span><span class="p">,</span>
+ <span class="nt">"secure"</span><span class="p">:</span><span class="s2">"false"</span>
+ <span class="p">},</span>
+ <span class="nt">"priority"</span><span class="p">:</span><span class="mi">100</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">PHP needs to be build with FTP support for this backend to work.</p>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
- <p class="last">A non-blocking or correctly configured SELinux setup is needed
- for this backend to work.</p>
++<p class="last">The external storage <tt class="docutils literal"><span class="pre">FTP/FTPS/SFTP</span></tt> needs the <tt class="docutils literal"><span class="pre">allow_url_fopen</span></tt> PHP
++setting to be set to <tt class="docutils literal"><span class="pre">1</span></tt>. When having connection problems make sure that it is
++not set to <tt class="docutils literal"><span class="pre">0</span></tt> in your <tt class="docutils literal"><span class="pre">php.ini</span></tt>.</p>
+</div>
+</div>
+</div>
+<div class="section" id="sftp">
+<h3>SFTP<a class="headerlink" href="#sftp" title="Permalink to this headline">¶</a></h3>
+<p>The SFTP backend mounts a folder on a remote SSH server into the virtual
+filesystem and is part of the ‘External storage support’ app. The class
+to be used is <strong>\OC\Files\Storage\SFTP</strong> and takes the following
+options:</p>
+<ul class="simple">
+<li><strong>host</strong>: the hostname of the SSH server</li>
+<li><strong>user</strong>: the username used to login to the SSH server</li>
+<li><strong>password</strong>: the password to login on the SSH server</li>
+<li><strong>root</strong>: the folder inside the SSH server to mount (optional, defaults
+to ‘/’)</li>
+</ul>
+<div class="section" id="id3">
+<h4>Example<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h4>
+<div class="highlight-json"><div class="highlight"><pre><span class="p">{</span> <span class="nt">"class"</span><span class="p">:</span><span class="s2">"\\OC\\Files\\Storage\\SFTP"</span><span class="p">,</span>
+ <span class="nt">"options"</span><span class="p">:{</span>
+ <span class="nt">"host"</span><span class="p">:</span><span class="s2">"ssh.myhost.com"</span><span class="p">,</span>
+ <span class="nt">"user"</span><span class="p">:</span><span class="s2">"johndoe"</span><span class="p">,</span>
+ <span class="nt">"password"</span><span class="p">:</span><span class="s2">"secret"</span><span class="p">,</span>
+ <span class="nt">"root"</span><span class="p">:</span><span class="s2">"\/Books"</span>
+ <span class="p">},</span>
+ <span class="nt">"priority"</span><span class="p">:</span><span class="mi">100</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">PHP needs to be build with SFTP support for this backend to work.</p>
+</div>
++<div class="admonition note">
++<p class="first admonition-title">Note</p>
++<p class="last">The external storage <tt class="docutils literal"><span class="pre">FTP/FTPS/SFTP</span></tt> needs the <tt class="docutils literal"><span class="pre">allow_url_fopen</span></tt> PHP
++setting to be set to <tt class="docutils literal"><span class="pre">1</span></tt>. When having connection problems make sure that it is
++not set to <tt class="docutils literal"><span class="pre">0</span></tt> in your <tt class="docutils literal"><span class="pre">php.ini</span></tt>.</p>
++</div>
+</div>
+</div>
+<div class="section" id="smb">
+<h3>SMB<a class="headerlink" href="#smb" title="Permalink to this headline">¶</a></h3>
+<p>The SMB backend mounts a folder on a remote Samba server, a NAS appliance or
+a Windows machine into the virtual file system. It is part of the ‘External
+storage support’ app, the class to be used is <strong>\OC\Files\Storage\SMB</strong> and
+takes the following options:</p>
+<ul class="simple">
+<li><strong>host</strong>: the host name of the samba server</li>
+<li><strong>user</strong>: the username or domain/username to login on the samba server</li>
+<li><strong>password</strong>: the password to login on the samba server</li>
+<li><strong>share</strong>: the share on the samba server to mount</li>
+<li><strong>root</strong>: the folder inside the samba share to mount (optional, defaults
+to ‘/’) To assign the ownCloud logon username automatically to the subfolder, use <tt class="docutils literal"><span class="pre">$user</span></tt> instead of a particular subfolder name.</li>
+</ul>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">The SMB backend requires <strong>smbclient</strong> to be installed on the server.</p>
+</div>
+<div class="section" id="id4">
+<h4>Example<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h4>
+<p>With username only:</p>
+<div class="highlight-json"><div class="highlight"><pre><span class="p">{</span> <span class="nt">"class"</span><span class="p">:</span><span class="s2">"\\OC\\Files\\Storage\\SMB"</span><span class="p">,</span>
+ <span class="nt">"options"</span><span class="p">:{</span>
+ <span class="nt">"host"</span><span class="p">:</span><span class="s2">"myhost.com"</span><span class="p">,</span>
+ <span class="nt">"user"</span><span class="p">:</span><span class="s2">"johndoe"</span><span class="p">,</span>
+ <span class="nt">"password"</span><span class="p">:</span><span class="s2">"secret"</span><span class="p">,</span>
+ <span class="nt">"share"</span><span class="p">:</span><span class="s2">"\/test"</span><span class="p">,</span>
+ <span class="nt">"root"</span><span class="p">:</span><span class="s2">"\/Pictures"</span>
+ <span class="p">},</span>
+ <span class="nt">"priority"</span><span class="p">:</span><span class="mi">100</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>With domainname and username:</p>
+<div class="highlight-json"><div class="highlight"><pre><span class="p">{</span> <span class="nt">"class"</span><span class="p">:</span><span class="s2">"\\OC\\Files\\Storage\\SMB"</span><span class="p">,</span>
+ <span class="nt">"options"</span><span class="p">:{</span>
+ <span class="nt">"host"</span><span class="p">:</span><span class="s2">"myhost.com"</span><span class="p">,</span>
+ <span class="nt">"user"</span><span class="p">:</span><span class="s2">"domain\/johndoe"</span><span class="p">,</span>
+ <span class="nt">"password"</span><span class="p">:</span><span class="s2">"secret"</span><span class="p">,</span>
+ <span class="nt">"share"</span><span class="p">:</span><span class="s2">"\/test"</span><span class="p">,</span>
+ <span class="nt">"root"</span><span class="p">:</span><span class="s2">"\/Pictures"</span>
+ <span class="p">},</span>
+ <span class="nt">"priority"</span><span class="p">:</span><span class="mi">100</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="webdav">
+<h3>WebDAV<a class="headerlink" href="#webdav" title="Permalink to this headline">¶</a></h3>
+<p>The WebDAV backend mounts a folder on a remote WebDAV server into the
+virtual filesystem and is part of the ‘External storage support’ app,
+the class to be used is <strong>\OC\Files\Storage\DAV</strong> and takes the
+following options:</p>
+<ul class="simple">
+<li><strong>host</strong>: the hostname of the webdav server.</li>
+<li><strong>user</strong>: the username used to login on the webdav server</li>
+<li><strong>password</strong>: the password to login on the webdav server</li>
+<li><strong>secure</strong>: whether to use <a class="reference external" href="https://">https://</a> to connect to the webdav server
+instead of <a class="reference external" href="http://">http://</a> (optional, defaults to false)</li>
+<li><strong>root</strong>: the folder inside the webdav server to mount (optional,
+defaults to ‘/’)</li>
+</ul>
+<div class="section" id="id5">
+<h4>Example<a class="headerlink" href="#id5" title="Permalink to this headline">¶</a></h4>
+<div class="highlight-json"><div class="highlight"><pre><span class="p">{</span> <span class="nt">"class"</span><span class="p">:</span><span class="s2">"\\OC\\Files\\Storage\\DAV"</span><span class="p">,</span>
+ <span class="nt">"options"</span><span class="p">:{</span>
+ <span class="nt">"host"</span><span class="p">:</span><span class="s2">"myhost.com\/webdav.php"</span><span class="p">,</span>
+ <span class="nt">"user"</span><span class="p">:</span><span class="s2">"johndoe"</span><span class="p">,</span>
+ <span class="nt">"password"</span><span class="p">:</span><span class="s2">"secret"</span><span class="p">,</span>
+ <span class="nt">"secure"</span><span class="p">:</span><span class="s2">"true"</span>
+ <span class="p">},</span>
+ <span class="nt">"priority"</span><span class="p">:</span><span class="mi">100</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="amazon-s3">
+<h3>Amazon S3<a class="headerlink" href="#amazon-s3" title="Permalink to this headline">¶</a></h3>
+<p>The Amazon S3 backend mounts a bucket in the Amazon cloud into the virtual
+filesystem and is part of the ‘External storage support’ app, the class to
+be used is <strong>\OC\Files\Storage\AmazonS3</strong> and takes the following
+options:</p>
+<ul class="simple">
+<li><strong>key</strong>: the key to login to the Amazon cloud</li>
+<li><strong>secret</strong>: the secret to login to the Amazon cloud</li>
+<li><strong>bucket</strong>: the bucket in the Amazon cloud to mount</li>
+</ul>
+<div class="section" id="id6">
+<h4>Example<a class="headerlink" href="#id6" title="Permalink to this headline">¶</a></h4>
+<div class="highlight-json"><div class="highlight"><pre><span class="p">{</span> <span class="nt">"class"</span><span class="p">:</span><span class="s2">"\\OC\\Files\\Storage\\AmazonS3"</span><span class="p">,</span>
+ <span class="nt">"options"</span><span class="p">:{</span>
+ <span class="nt">"key"</span><span class="p">:</span><span class="s2">"key"</span><span class="p">,</span>
+ <span class="nt">"secret"</span><span class="p">:</span><span class="s2">"secret"</span><span class="p">,</span>
+ <span class="nt">"bucket"</span><span class="p">:</span><span class="s2">"bucket"</span>
+ <span class="p">},</span>
+ <span class="nt">"priority"</span><span class="p">:</span><span class="mi">100</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="dropbox">
+<h3>Dropbox<a class="headerlink" href="#dropbox" title="Permalink to this headline">¶</a></h3>
+<p>The Dropbox backend mounts a dropbox in the Dropbox cloud into the virtual
+filesystem and is part of the ‘External storage support’ app, the class to
+be used is <strong>\OC\Files\Storage\Dropbox</strong> and takes the following options:</p>
+<ul class="simple">
+<li><strong>configured</strong>: whether the drive has been configured or not (true or false)</li>
+<li><strong>app_key</strong>: the app key to login to your Dropbox</li>
+<li><strong>app_secret</strong>: the app secret to login to your Dropbox</li>
+<li><strong>token</strong>: the OAuth token to login to your Dropbox</li>
+<li><strong>token_secret</strong>: the OAuth secret to login to your Dropbox</li>
+</ul>
+<div class="section" id="id7">
+<h4>Example<a class="headerlink" href="#id7" title="Permalink to this headline">¶</a></h4>
+<div class="highlight-json"><div class="highlight"><pre><span class="p">{</span> <span class="nt">"class"</span><span class="p">:</span><span class="s2">"\\OC\\Files\\Storage\\Dropbox"</span><span class="p">,</span>
+ <span class="nt">"options"</span><span class="p">:{</span>
+ <span class="nt">"configured"</span><span class="p">:</span><span class="s2">"#configured"</span><span class="p">,</span>
+ <span class="nt">"app_key"</span><span class="p">:</span><span class="s2">"key"</span><span class="p">,</span>
+ <span class="nt">"app_secret"</span><span class="p">:</span><span class="s2">"secret"</span><span class="p">,</span>
+ <span class="nt">"token"</span><span class="p">:</span><span class="s2">"#token"</span><span class="p">,</span>
+ <span class="nt">"token_secret"</span><span class="p">:</span><span class="s2">"#token_secret"</span>
+ <span class="p">},</span>
+ <span class="nt">"priority"</span><span class="p">:</span><span class="mi">100</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="google-drive">
+<h3>Google Drive<a class="headerlink" href="#google-drive" title="Permalink to this headline">¶</a></h3>
+<p>The Google Drive backend mounts a share in the Google cloud into the virtual
+filesystem and is part of the ‘External storage support’ app, the class to
+be used is <strong>\OC\Files\Storage\Google</strong> and is done via an OAuth2.0 request.
+That means that the App must be registered through the Google APIs Console.
+The result of the registration process is a set of values (incl. client_id, client_secret).
+It takes the following options:</p>
+<ul class="simple">
+<li><strong>configured</strong>: whether the drive has been configured or not (true or false)</li>
+<li><strong>client_id</strong>: the client id to login to the Google drive</li>
+<li><strong>client_secret</strong>: the client secret to login to the Google drive</li>
+<li><strong>token</strong>: a compound value including access and refresh tokens</li>
+</ul>
+<div class="section" id="id8">
+<h4>Example<a class="headerlink" href="#id8" title="Permalink to this headline">¶</a></h4>
+<div class="highlight-json"><div class="highlight"><pre><span class="p">{</span> <span class="nt">"class"</span><span class="p">:</span><span class="s2">"\\OC\\Files\\Storage\\Google"</span><span class="p">,</span>
+ <span class="nt">"options"</span><span class="p">:{</span>
+ <span class="nt">"configured"</span><span class="p">:</span><span class="s2">"#configured"</span><span class="p">,</span>
+ <span class="nt">"client_id"</span><span class="p">:</span><span class="s2">"#client_id"</span><span class="p">,</span>
+ <span class="nt">"client_secret"</span><span class="p">:</span><span class="s2">"#client_secret"</span><span class="p">,</span>
+ <span class="nt">"token"</span><span class="p">:</span><span class="s2">"#token"</span>
+ <span class="p">},</span>
+ <span class="nt">"priority"</span><span class="p">:</span><span class="mi">100</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="openstack-swift">
+<h3>OpenStack Swift<a class="headerlink" href="#openstack-swift" title="Permalink to this headline">¶</a></h3>
+<p>The Swift backend mounts a container on an OpenStack Object Storage server
+into the virtual filesystem and is part of the ‘External storage support’
+app, the class to be used is <strong>\OC\Files\Storage\SWIFT</strong> and takes
+the following options:</p>
+<ul class="simple">
+<li><strong>host</strong>: the hostname of the authentication server for the swift
+storage.</li>
+<li><strong>user</strong>: the username used to login on the swift server</li>
+<li><strong>token</strong>: the authentication token to login on the swift server</li>
+<li><strong>secure</strong>: whether to use ftps:// to connect to the swift server instead
+of ftp:// (optional, defaults to false)</li>
+<li><strong>root</strong>: the container inside the swift server to mount (optional,
+defaults to ‘/’)</li>
+</ul>
+<div class="section" id="id9">
+<h4>Example<a class="headerlink" href="#id9" title="Permalink to this headline">¶</a></h4>
+<div class="highlight-json"><div class="highlight"><pre><span class="p">{</span> <span class="nt">"class"</span><span class="p">:</span><span class="s2">"\\OC\\Files\\Storage\\SWIFT"</span><span class="p">,</span>
+ <span class="nt">"options"</span><span class="p">:{</span>
+ <span class="nt">"host"</span><span class="p">:</span><span class="s2">"swift.myhost.com\/auth"</span><span class="p">,</span>
+ <span class="nt">"user"</span><span class="p">:</span><span class="s2">"johndoe"</span><span class="p">,</span>
+ <span class="nt">"token"</span><span class="p">:</span><span class="s2">"secret"</span><span class="p">,</span>
+ <span class="nt">"root"</span><span class="p">:</span><span class="s2">"\/Videos"</span><span class="p">,</span>
+ <span class="nt">"secure"</span><span class="p">:</span><span class="s2">"true"</span>
+ <span class="p">},</span>
+ <span class="nt">"priority"</span><span class="p">:</span><span class="mi">100</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="external-storage-password-management">
+<h2>External Storage Password Management<a class="headerlink" href="#external-storage-password-management" title="Permalink to this headline">¶</a></h2>
+<p>ownCloud handles passwords for external mounts differently than regular
+ownCloud user passwords.</p>
+<p>The regular user and file share passwords (when you use the default ownCloud
+user backend) are stored using a strong cryptographically secure hashing
+mechanism in the database. On a new user account with a new password, the
+password is hashed and stored in the ownCloud database. The plain-text password
+is never stored. When the user logs in, the hash of the password they enter is
+compared with the hash in the database. When the hashes match the user is
+allowed access. These are not recoverable, so when a user loses a password the
+only option is to create a new password.</p>
+<p>Passwords which are used to connect against external storage (e.g.
+SMB or FTP), there we have to differentiate again between different
+implementations:</p>
+<ol class="arabic simple">
+<li><strong>Login with ownCloud credentials</strong></li>
+</ol>
+<p>When a mountpoint has this option, for example <tt class="docutils literal"><span class="pre">SMB</span> <span class="pre">/</span> <span class="pre">CIFS</span> <span class="pre">using</span> <span class="pre">OC</span> <span class="pre">login</span></tt>,
+the password will be intercepted when a user logs in and written to the PHP
+session (which is a file on the filesystem), and written encrypted into the
+session with a key from the configuration file. Every time that password is
+required ownCloud reads it from the PHP session file.</p>
+<p>When you use this option, features such as sharing will not work properly from
+that mountpoint when the user is not logged-in.</p>
+<p>Depending on the implementation of the application, this means that the password
+could get leaked in the <tt class="docutils literal"><span class="pre">ps</span></tt> output, as we use <tt class="docutils literal"><span class="pre">smbclient</span></tt> for SMB storage
+access in the community version. There is a <a class="reference external" href="https://github.com/owncloud/core/issues/6092">bug report on this</a>. Consequently, we’re currently
+evaluating an alternative approach accessing the library directly, and thus not
+leaking the password anymore. This is already implemented in the Enterprise
+Edition in our Windows Network Drive application, and it will get into the
+community version once we have streamlined the code of the <tt class="docutils literal"><span class="pre">files_external</span></tt>
+application a little bit more.</p>
+<ol class="arabic simple" start="2">
+<li><strong>Stored credentials</strong></li>
+</ol>
+<p>When you enter credentials into the <tt class="docutils literal"><span class="pre">files_external</span></tt> dialog those are stored
+on the filesystem and encrypted with a key stored in <tt class="docutils literal"><span class="pre">config.php</span></tt>. This is
+required since ownCloud needs access to those files and shares even when the
+user is not logged-in to have sharing and other key features properly working.</p>
+<p>To sum up:</p>
+<p>The “login with ownCloud credentials” SMB function in the community edition
+exposes the password in the server system’s process list. If you want to get
+around this limitation without waiting for it to be addressed in CE you can get
+the Enterprise Edition. However, even then the password is stored in the PHP
+session and a malicious admin could access it. You can protect your PHP session
+files using protections available in your filesystem. Stored credentials are
+always accessible to the ownCloud instance.</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/configuration/external_storage_configuration_gui.html
index 4bb05a4,0000000..cfb9dc3
mode 100644,000000..100644
--- a/core/doc/admin/release/configuration/external_storage_configuration_gui.html
+++ b/core/doc/admin/release/configuration/external_storage_configuration_gui.html
@@@ -1,549 -1,0 +1,555 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Configuring External Storage (GUI) — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="up" title="Configuration" href="index.html" />
+ <link rel="next" title="Configuring External Storage (Configuration File)" href="external_storage_configuration.html" />
+ <link rel="prev" title="Encryption Configuration" href="encryption_configuration.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Configuration</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Configuring the Activity App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Configuring the ClamAV Antivirus Scanner</a></li>
+<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic Configuration Setup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Defining Background Jobs</a></li>
+<li class="toctree-l2"><a class="reference internal" href="big_file_upload_configuration.html">Uploading big files > 512MB (as set by default)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="collaborative_documents_configuration.html">Configuring the Collaborative Documents App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Config.php Parameters</a></li>
+<li class="toctree-l2"><a class="reference internal" href="custom_client_configuration.html">Custom Client Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="database_configuration.html">Database Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="encryption_configuration.html">Encryption Configuration</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Configuring External Storage (GUI)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#supported-mounts">Supported mounts</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#enabling-external-storage-support">Enabling External Storage Support</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#using-self-signed-certificates">Using self-signed certificates</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#adding-files-to-external-storages">Adding files to external storages</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#local-storage">Local Storage</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#amazon-s3">Amazon S3</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#dropbox">Dropbox</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#ftp-ftps-sftp">FTP/FTPS/SFTP</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#google-drive">Google Drive</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#smb-cifs">SMB/CIFS</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#smb-cifs-using-oc-login">SMB/CIFS using OC login</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#owncloud-and-webdav">ownCloud and WebDAV</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#openstack-object-storage">OpenStack Object Storage</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#configuration-file">Configuration File</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="external_storage_configuration.html">Configuring External Storage (Configuration File)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking External Sites</a></li>
+<li class="toctree-l2"><a class="reference internal" href="file_sharing_configuration.html">File Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="files_locking_enabling.html">Files Locking App Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="harden_server.html">Hardening and Security Guidance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="js_css_asset_management_configuration.html">JavaScript and CSS Asset Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="knowledgebase_configuration.html">Knowledge Base Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ Command</a></li>
+<li class="toctree-l2"><a class="reference internal" href="performance_tips.html">Performance Tips</a></li>
+<li class="toctree-l2"><a class="reference internal" href="previews_configuration.html">Previews Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse Proxy Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="search_configuration.html">Enabling Full-Text Search</a></li>
+<li class="toctree-l2"><a class="reference internal" href="server_to_server_configuration.html">Configuring Server-to-Server Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="serving_static_files_configuration.html">Serving Static Files for Better Performance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="thirdparty_php_configuration.html">Using Third Party PHP Components</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ftp_smb_imap.html">User Authentication with IMAP, SMB, and FTP</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap.html">User Authentication with LDAP</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap_cleanup.html">LDAP User Cleanup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_configuration.html">User Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reset_admin_password.html">Resetting a Lost Admin Password</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="configuring-external-storage-gui">
+<h1>Configuring External Storage (GUI)<a class="headerlink" href="#configuring-external-storage-gui" title="Permalink to this headline">¶</a></h1>
+<p>The External Storage Support application enables you to mount external storage services
+and devices as secondary ownCloud storage devices. You may also allow users to
+mount their own external storage services.</p>
+<p>All of these connect to a LAN ownCloud server that is not publicly accessible,
+with one exception: Google Drive requires an ownCloud server with a registered
+domain name that is accessible over the Internet.</p>
+<div class="section" id="supported-mounts">
+<h2>Supported mounts<a class="headerlink" href="#supported-mounts" title="Permalink to this headline">¶</a></h2>
+<p>ownCloud admins may mount these external storage services and devices:</p>
+<ul class="simple">
+<li>Local</li>
+<li>Amazon S3 and S3 compliant</li>
+<li>Dropbox</li>
+<li>FTP/SFTP</li>
+<li>Google Drive</li>
+<li>OpenStack Object Storage</li>
+<li>SMB/CIFS</li>
+<li>SMB/CIFS using OC login</li>
+<li>ownCloud</li>
+<li>WebDAV</li>
+</ul>
+<p>ownCloud users can be given permission to mount any of these, except local
+storage.</p>
+<p>To understand how ownCloud manages passwords for external mounts, and the
+security implications, see the <strong>External Storage Password Management</strong> section
+of <a class="reference internal" href="external_storage_configuration.html"><em>Configuring External Storage (Configuration File)</em></a>.</p>
++<div class="admonition note">
++<p class="first admonition-title">Note</p>
++<p class="last">A non-blocking or correctly configured SELinux setup is needed
++for these backends to work. Please refer to the <a class="reference internal" href="../installation/selinux_configuration.html#selinux-config-label"><em>SELinux Configuration</em></a>.</p>
++</div>
+</div>
+<div class="section" id="enabling-external-storage-support">
+<h2>Enabling External Storage Support<a class="headerlink" href="#enabling-external-storage-support" title="Permalink to this headline">¶</a></h2>
+<p>The <tt class="docutils literal"><span class="pre">External</span> <span class="pre">storage</span> <span class="pre">support</span></tt> application is enabled on the <tt class="docutils literal"><span class="pre">Apps</span></tt> page.</p>
+<div class="figure">
+<img alt="../_images/external-storage-app-enable.png" src="../_images/external-storage-app-enable.png" />
+</div>
+<p>After enabling it, go to your <tt class="docutils literal"><span class="pre">Admin</span></tt> page to set up your external
+storage mounts.</p>
+<div class="figure">
+<img alt="../_images/external-storage-app-add.png" src="../_images/external-storage-app-add.png" />
+</div>
+<p>When your configuration is correct you’ll see a green light at the left, and if
+it isn’t you’ll see a red light.</p>
+<p>Check <tt class="docutils literal"><span class="pre">Enable</span> <span class="pre">User</span> <span class="pre">External</span> <span class="pre">Storage</span></tt> to allow your users to mount their own
+external storage services, and check the services you want to allow.</p>
+<div class="figure">
+<img alt="../_images/external-storage-app-usermounts.png" src="../_images/external-storage-app-usermounts.png" />
+</div>
+<p>After creating your external storage mounts, you can share them and control
+permissions just like any other ownCloud share.</p>
+</div>
+<div class="section" id="using-self-signed-certificates">
+<h2>Using self-signed certificates<a class="headerlink" href="#using-self-signed-certificates" title="Permalink to this headline">¶</a></h2>
+<p>When using self-signed certificates for external storage mounts the certificate
+needs to be imported in the personal settings of the user. Please refer to <a class="reference external" href="http://ownclouden.blogspot.de/2014/11/owncloud-https-external-mount.html">this</a>
+blogpost for more informations.</p>
+</div>
+<div class="section" id="adding-files-to-external-storages">
+<h2>Adding files to external storages<a class="headerlink" href="#adding-files-to-external-storages" title="Permalink to this headline">¶</a></h2>
+<p>In general it is recommended to configure the background job <tt class="docutils literal"><span class="pre">Webcron</span></tt> or
+<tt class="docutils literal"><span class="pre">Cron</span></tt> as described in <a class="reference internal" href="background_jobs_configuration.html"><em>Defining Background Jobs</em></a>
+so ownCloud is able to detect files added to your external storages without the need
+that a users is browsing your ownCloud installation.</p>
+<p>Please also be aware that ownCloud might not always be able to find out what has been
+changed remotely (files changes without going through ownCloud), especially
+when it’s very deep in the folder hierarchy of the external storage.</p>
+<p>You might need to setup a cron job that runs <tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">-u</span> <span class="pre">www-data</span> <span class="pre">php</span> <span class="pre">occ</span> <span class="pre">files:scan</span> <span class="pre">--all</span></tt>
+(or replace “–all” with the user name, see also <a class="reference internal" href="occ_command.html"><em>Using the occ Command</em></a>)
+to trigger a rescan of the user’s files periodically (for example every 15 minutes), which includes
+the mounted external storage.</p>
+</div>
+<div class="section" id="local-storage">
+<h2>Local Storage<a class="headerlink" href="#local-storage" title="Permalink to this headline">¶</a></h2>
+<p>Use this to mount any directory on your ownCloud server that is outside of your
+ownCloud <tt class="docutils literal"><span class="pre">data/</span></tt> directory. This directory must be readable and writable by
+your HTTP server user.</p>
+<p>In the <tt class="docutils literal"><span class="pre">Folder</span> <span class="pre">name</span></tt> field enter the folder name that you want to appear on
+your ownCloud <tt class="docutils literal"><span class="pre">Files</span></tt> page.</p>
+<p>In the <tt class="docutils literal"><span class="pre">Configuration</span></tt> field enter the full filepath of the directory you
+want to mount.</p>
+<p>In the <tt class="docutils literal"><span class="pre">Available</span> <span class="pre">for</span></tt> field enter the users or groups who have permission to
+access the mount.</p>
+<div class="figure">
+<img alt="../_images/external-storage-app-local.png" src="../_images/external-storage-app-local.png" />
+</div>
+</div>
+<div class="section" id="amazon-s3">
+<h2>Amazon S3<a class="headerlink" href="#amazon-s3" title="Permalink to this headline">¶</a></h2>
+<p>All you need to connect your Amazon S3 buckets to ownCloud is your S3 Access
+Key, Secret Key, and your bucket name.</p>
+<p>In the <tt class="docutils literal"><span class="pre">Folder</span> <span class="pre">name</span></tt> field enter the folder name that you want to appear on
+your ownCloud <tt class="docutils literal"><span class="pre">Files</span></tt> page.</p>
+<p>In the <tt class="docutils literal"><span class="pre">Access</span> <span class="pre">Key</span></tt> field enter your S3 Access Key.</p>
+<p>In the <tt class="docutils literal"><span class="pre">Secret</span> <span class="pre">Key</span></tt> field enter your S3 Secret Key.</p>
+<p>In the <tt class="docutils literal"><span class="pre">Bucket</span></tt> field enter the name of your S3 bucket you want to share.</p>
+<p>In the <tt class="docutils literal"><span class="pre">Available</span> <span class="pre">for</span></tt> field enter the users or groups who have permission to
+access your S3 mount.</p>
+<p>The hostname, port, and region of your S3 server are optional; you will need
+to use these for non-Amazon S3-compatible servers.</p>
+<div class="figure">
+<img alt="../_images/external-storage-amazons3.png" src="../_images/external-storage-amazons3.png" />
+</div>
+</div>
+<div class="section" id="dropbox">
+<h2>Dropbox<a class="headerlink" href="#dropbox" title="Permalink to this headline">¶</a></h2>
+<p>Connecting Dropbox is a little more work because you have to create a Dropbox
+app. Log into the <a class="reference external" href="http://www.dropbox.com/developers">Dropbox Developers page</a>
+and click <tt class="docutils literal"><span class="pre">App</span> <span class="pre">Console</span></tt>:</p>
+<div class="figure">
+<img alt="../_images/external-storage-dropbox.png" src="../_images/external-storage-dropbox.png" />
+</div>
+<p>If you have not already created any Dropbox apps it will ask you to accept
+their terms and conditions. Then you are presented with the choice to create
+either a Drop-ins App or a Dropbox API App. Click <tt class="docutils literal"><span class="pre">Dropbox</span> <span class="pre">API</span> <span class="pre">App</span></tt>, and then
+check:</p>
+<ul class="simple">
+<li>Files and datastores.</li>
+<li>No – My app needs access to files already on Dropbox.</li>
+<li>All file types – My app needs access to a user’s full Dropbox. Only
+supported via the CoreAPI.</li>
+</ul>
+<p>Then enter whatever name you want for your app.</p>
+<div class="figure">
+<img alt="../_images/external-storage-dropbox-app.png" src="../_images/external-storage-dropbox-app.png" />
+</div>
+<p>Now click the <tt class="docutils literal"><span class="pre">Create</span> <span class="pre">App</span></tt> button. Under <tt class="docutils literal"><span class="pre">Status</span></tt>, do not click
+<tt class="docutils literal"><span class="pre">Development</span> <span class="pre">(Apply</span> <span class="pre">for</span> <span class="pre">production</span> <span class="pre">status)</span></tt> because that is for apps that you
+want to release publicly.</p>
+<p>Click <tt class="docutils literal"><span class="pre">Enable</span> <span class="pre">additional</span> <span class="pre">users</span></tt> to allow multiple oC users to use your new
+Dropbox share.</p>
+<p>Note your App key and App secret, which you will enter in the External Storage
+form on your ownCloud Admin page.</p>
+<div class="figure">
+<img alt="../_images/external-storage-dropbox-configapp.png" src="../_images/external-storage-dropbox-configapp.png" />
+</div>
+<p>You need two <tt class="docutils literal"><span class="pre">Redirect</span> <span class="pre">URIs</span></tt>. You may use <tt class="docutils literal"><span class="pre">localhost</span></tt> as the hostname for
+testing because you don’t need to use HTTPS, but this is not recommended for
+production use because it sends all traffic in the clear:</p>
+<div class="highlight-python"><pre>http://localhost/owncloud/index.php/settings/personal
+http://localhost/owncloud/index.php/settings/admin</pre>
+</div>
+<p>HTTPS is recommended for production use to encrypt your sessions:</p>
+<div class="highlight-python"><pre>https://localhost/owncloud/index.php/settings/personal
+https://localhost/owncloud/index.php/settings/admin
+
+https://example.com/owncloud/index.php/settings/personal
+https://example.com/owncloud/index.php/settings/admin</pre>
+</div>
+<p>Your ownCloud configuration requires only the local mount name, the App Key and
+the App Secret, and which users or groups have access to the share.</p>
+<div class="figure">
+<img alt="../_images/external-storage-dropbox-oc.png" src="../_images/external-storage-dropbox-oc.png" />
+</div>
+<p>You must be logged into Dropbox, and when ownCloud successfully verifies your
+connection Dropbox will ask for verification to connect to your Dropbox
+account. Click <tt class="docutils literal"><span class="pre">Allow</span></tt>, and you’re done.</p>
+<div class="figure">
+<img alt="../_images/external-storage-dropbox-allowshare.png" src="../_images/external-storage-dropbox-allowshare.png" />
+</div>
+</div>
+<div class="section" id="ftp-ftps-sftp">
+<h2>FTP/FTPS/SFTP<a class="headerlink" href="#ftp-ftps-sftp" title="Permalink to this headline">¶</a></h2>
+<p>Connecting to an FTP server requires:</p>
+<ul class="simple">
+<li>Whatever name you want for your local mountpoint.</li>
+<li>The URL of your FTP server, and optionally the port number.</li>
+<li>FTP server username and password.</li>
+<li>The FTP directory to mount in ownCloud. ownCloud defaults to the root
+directory. When you specify a different directory you must leave off the
+leading slash. For example, if you want to connect your
+<tt class="docutils literal"><span class="pre">public_html/images</span></tt> directory, then type it exactly like that.</li>
+<li>Choose whether to connect in the clear with <tt class="docutils literal"><span class="pre">ftp://</span></tt>, or to encrypt your
+FTP session with SSL/TLS over <tt class="docutils literal"><span class="pre">ftps://</span></tt> (Your FTP server must be
+configured to support <tt class="docutils literal"><span class="pre">ftps://</span></tt>)</li>
+<li>Enter the ownCloud users or groups who are allowed to access the share.</li>
+</ul>
+<div class="figure">
+<img alt="../_images/external-storage-ftp.png" src="../_images/external-storage-ftp.png" />
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
- <p class="last">A non-blocking or correctly configured SELinux setup is needed
- for this backend to work.</p>
++<p class="last">The external storage <tt class="docutils literal"><span class="pre">FTP/FTPS/SFTP</span></tt> needs the <tt class="docutils literal"><span class="pre">allow_url_fopen</span></tt> PHP
++setting to be set to <tt class="docutils literal"><span class="pre">1</span></tt>. When having connection problems make sure that it is
++not set to <tt class="docutils literal"><span class="pre">0</span></tt> in your <tt class="docutils literal"><span class="pre">php.ini</span></tt>.</p>
+</div>
+<p>SFTP uses SSH rather than SSL, as FTPS does, so your SFTP sessions are always
+safely tucked inside an SSH tunnel. To connect an SFTP server you need:</p>
+<ul class="simple">
+<li>Whatever name you want for your local mountpoint.</li>
+<li>The URL of your SFTP server.</li>
+<li>SFTP server username and password.</li>
+<li>The SFTP directory to mount in ownCloud.</li>
+<li>The ownCloud users or groups who are allowed to access the share.</li>
+</ul>
+</div>
+<div class="section" id="google-drive">
+<h2>Google Drive<a class="headerlink" href="#google-drive" title="Permalink to this headline">¶</a></h2>
+<p>All applications that access a Google API must be registered through the
+<a class="reference external" href="https://console.developers.google.com/">Google Cloud Console</a>. Follow along carefully
+because the Google is a bit of a maze and it’s easy to get lost.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Your ownCloud server must have a registered domain name and be
+accessible over the Internet; Google Drive will not connect to a LAN-only
+server.</p>
+</div>
+<p>If you already have a Google account, such as Groups, Drive, or Mail, you can
+use your existing login to log into the Google Cloud Console. After logging in
+click <tt class="docutils literal"><span class="pre">Go</span> <span class="pre">to</span> <span class="pre">my</span> <span class="pre">console</span></tt>, and then click the <tt class="docutils literal"><span class="pre">Create</span> <span class="pre">Project</span></tt> button. It
+takes a minute or two to create your new project.</p>
+<div class="figure">
+<img alt="../_images/external-storage-google-drive.png" src="../_images/external-storage-google-drive.png" />
+</div>
+<p>In the next screen give your project a name, accept the default <tt class="docutils literal"><span class="pre">Project</span> <span class="pre">ID</span></tt>
+or create your own, click the Terms of Service box, and click the <tt class="docutils literal"><span class="pre">Create</span></tt>
+button.</p>
+<div class="figure">
+<img alt="../_images/external-storage-google-drive1.png" src="../_images/external-storage-google-drive1.png" />
+</div>
+<p>The next screen is your <tt class="docutils literal"><span class="pre">Project</span> <span class="pre">Dashboard</span></tt>. In the left sidebar click <tt class="docutils literal"><span class="pre">APIs</span>
+<span class="pre">&</span> <span class="pre">Auth</span> <span class="pre">></span> <span class="pre">APIs</span></tt>, and then enable the <tt class="docutils literal"><span class="pre">Drive</span> <span class="pre">API</span></tt> and <tt class="docutils literal"><span class="pre">Drive</span> <span class="pre">SDK</span></tt> by
+toggling the boxes in the far-right <tt class="docutils literal"><span class="pre">Status</span></tt> column to the green On buttons.</p>
+<div class="figure">
+<img alt="../_images/external-storage-google-drive2.png" src="../_images/external-storage-google-drive2.png" />
+</div>
+<p>This brings you to the <tt class="docutils literal"><span class="pre">Google</span> <span class="pre">Drive</span> <span class="pre">SDK</span></tt> screen. Click <tt class="docutils literal"><span class="pre">API</span> <span class="pre">Access</span></tt>.</p>
+<div class="figure">
+<img alt="../_images/external-storage-google-drive-sdk.png" src="../_images/external-storage-google-drive-sdk.png" />
+</div>
+<p>This opens the <tt class="docutils literal"><span class="pre">API</span> <span class="pre">Access</span></tt> screen. Click the <tt class="docutils literal"><span class="pre">Create</span> <span class="pre">a</span> <span class="pre">0Auth</span> <span class="pre">2.0</span> <span class="pre">Client</span>
+<span class="pre">ID</span></tt> button.</p>
+<div class="figure">
+<img alt="../_images/external-storage-google-drive-0auth.png" src="../_images/external-storage-google-drive-0auth.png" />
+</div>
+<p>The next screen that opens is <tt class="docutils literal"><span class="pre">Create</span> <span class="pre">Client</span> <span class="pre">ID:</span> <span class="pre">Branding</span> <span class="pre">Information</span></tt>. Google
+requires to you to fill this out. When you’re finished move on to the <tt class="docutils literal"><span class="pre">Create</span>
+<span class="pre">Client</span> <span class="pre">ID:</span> <span class="pre">Client</span> <span class="pre">ID</span> <span class="pre">Settings</span></tt> screen.</p>
+<div class="figure">
+<img alt="../_images/external-storage-google-drive5.png" src="../_images/external-storage-google-drive5.png" />
+</div>
+<p>The <tt class="docutils literal"><span class="pre">Application</span> <span class="pre">Type</span></tt> is Web application.</p>
+<p>Click <tt class="docutils literal"><span class="pre">Your</span> <span class="pre">site</span> <span class="pre">or</span> <span class="pre">hostname</span> <span class="pre">(more</span> <span class="pre">options)</span></tt> to expose <tt class="docutils literal"><span class="pre">Authorized</span>
+<span class="pre">Redirect</span> <span class="pre">URIs</span></tt>. Enter two Redirect URIs like these examples, replacing
+<tt class="docutils literal"><span class="pre">https://example.com/owncloud/</span></tt> with your own ownCloud server
+URL. You must use a registered domain name, and you cannot use the server’s
+IP address.</p>
+<blockquote>
+<div><a class="reference external" href="https://example.com/owncloud/index.php/settings/personal">https://example.com/owncloud/index.php/settings/personal</a>
+<a class="reference external" href="https://example.com/owncloud/index.php/settings/admin">https://example.com/owncloud/index.php/settings/admin</a></div></blockquote>
+<p>Click <tt class="docutils literal"><span class="pre">Create</span> <span class="pre">client</span> <span class="pre">ID</span></tt> and you’ll see a screen like this:</p>
+<div class="figure">
+<img alt="../_images/external-storage-google-drive-9.png" src="../_images/external-storage-google-drive-9.png" />
+</div>
+<p>This contains your <tt class="docutils literal"><span class="pre">Client</span> <span class="pre">ID</span></tt> and <tt class="docutils literal"><span class="pre">Client</span> <span class="pre">Secret</span></tt>, which you need to set up
+your ownCloud connection. Go to your <tt class="docutils literal"><span class="pre">Admin</span></tt> page in ownCloud, create your new
+folder name, enter the Client ID and Client Secret, select your users and
+groups, and click <tt class="docutils literal"><span class="pre">Grant</span> <span class="pre">Access</span></tt>.</p>
+<div class="figure">
+<img alt="../_images/external-storage-google-drive8.png" src="../_images/external-storage-google-drive8.png" />
+</div>
+<p>Google will open a dialogue asking for permission to connect to ownCloud. Click
+<tt class="docutils literal"><span class="pre">Accept</span></tt> and you’re finished.</p>
+<div class="figure">
+<img alt="../_images/external-storage-google-drive7.png" src="../_images/external-storage-google-drive7.png" />
+</div>
+</div>
+<div class="section" id="smb-cifs">
+<h2>SMB/CIFS<a class="headerlink" href="#smb-cifs" title="Permalink to this headline">¶</a></h2>
+<p>You can mount SMB/CIFS file shares on ownCloud servers that run on Linux. This
+only works on Linux ownCloud servers because you must have <tt class="docutils literal"><span class="pre">smbclient</span></tt>
+installed. SMB/CIFS file servers include any Windows file share, Samba servers
+on Linux and other Unix-type operating systems, and NAS appliances.</p>
+<p>You need the following information:</p>
+<ul class="simple">
+<li>Folder name – Whatever name you want for your local mountpoint.</li>
+<li>Host – The URL of the Samba server.</li>
+<li>Username – The username or domain/username used to login to the Samba server.</li>
+<li>Password – The password to login to the Samba server.</li>
+<li>Share – The share on the Samba server to mount.</li>
+<li>Root – The folder inside the Samba share to mount (optional, defaults to ‘/’). To assign the ownCloud logon username automatically to the subfolder, use <tt class="docutils literal"><span class="pre">$user</span></tt> instead of a particular subfolder name.</li>
+</ul>
+<p>And finally, the ownCloud users and groups who get access to the share.</p>
+<div class="figure">
+<img alt="../_images/external-storage-smb.png" src="../_images/external-storage-smb.png" />
+</div>
+</div>
+<div class="section" id="smb-cifs-using-oc-login">
+<h2>SMB/CIFS using OC login<a class="headerlink" href="#smb-cifs-using-oc-login" title="Permalink to this headline">¶</a></h2>
+<p>This works the same way as setting up a SMB/CIFS mount, except you can use your
+ownCloud logins intead of the SMB/CIFS server logins. To make this work, your
+ownCloud users need the same login and password as on the SMB/CIFS server.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Shares set up with <tt class="docutils literal"><span class="pre">SMB/CIFS</span> <span class="pre">using</span> <span class="pre">OC</span> <span class="pre">login</span></tt> cannot be shared in
+ownCloud. If you need to share your SMB/CIFS mount, then use the SMB/CIFS
+mount without oC login.</p>
+</div>
+</div>
+<div class="section" id="owncloud-and-webdav">
+<h2>ownCloud and WebDAV<a class="headerlink" href="#owncloud-and-webdav" title="Permalink to this headline">¶</a></h2>
+<p>Use these to mount a directory from any WebDAV server, or another
+ownCloud server.</p>
+<ul class="simple">
+<li>Folder name – Whatever name you want for your local mountpoint.</li>
+<li>URL – The URL of the WebDAV or ownCloud server.</li>
+<li>Username and password for the remote server</li>
+<li>Root – The remote folder you want to mount (optional, defaults
+to <tt class="docutils literal"><span class="pre">/</span></tt>)</li>
+<li>Secure <tt class="docutils literal"><span class="pre">https://</span></tt> - Whether to use <tt class="docutils literal"><span class="pre">https://</span></tt> to connect to the WebDav
+server instead of <tt class="docutils literal"><span class="pre">http://</span></tt> (We always recommend <tt class="docutils literal"><span class="pre">https://</span></tt> for
+security)</li>
+</ul>
+<div class="figure">
+<img alt="../_images/external-storage-webdav.png" src="../_images/external-storage-webdav.png" />
+</div>
+</div>
+<div class="section" id="openstack-object-storage">
+<h2>OpenStack Object Storage<a class="headerlink" href="#openstack-object-storage" title="Permalink to this headline">¶</a></h2>
+<p>Use this to mount a container on an OpenStack Object Storage server. You need
+the following information:</p>
+<ul class="simple">
+<li>Username</li>
+<li>Bucket</li>
+<li>Region</li>
+<li>API Key</li>
+<li>Tenantname</li>
+<li>Password</li>
+<li>Service Name</li>
+<li>URL of identity Endpoint</li>
+<li>Timeout of HTTP request</li>
+</ul>
+</div>
+<div class="section" id="configuration-file">
+<h2>Configuration File<a class="headerlink" href="#configuration-file" title="Permalink to this headline">¶</a></h2>
+<p>The configuration of mounts created within the External Storage App are stored
+in the <tt class="docutils literal"><span class="pre">data/mount.json</span></tt> file. This file contains all settings in JSON
+(JavaScript Object Notation) format. Two different types of entries exist:</p>
+<ul class="simple">
+<li>Group mounts: Each entry configures a mount for each user in group.</li>
+<li>User mount: Each entry configures a mount for a single user or all users.</li>
+</ul>
+<p>For each type, there is a JSON array with the user/group name as key and an
+array of configuration values as the value. Each entry consist of the class name
+of the storage backend and an array of backend specific options (described
+above) and will be replaced by the user login.</p>
+<p>Although configuration may be done by making modifications to the
+<tt class="docutils literal"><span class="pre">mount.json</span></tt> file, it is recommended to use the Web-GUI in the administrator
+panel (as described in the above section) to add, remove, or modify mount
+options to prevent any problems. See <a class="reference internal" href="external_storage_configuration.html"><em>Configuring External Storage (Configuration File)</em></a> for
+configuration examples.</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/configuration/server_to_server_configuration.html
index dcb468c,0000000..d72d20a
mode 100644,000000..100644
--- a/core/doc/admin/release/configuration/server_to_server_configuration.html
+++ b/core/doc/admin/release/configuration/server_to_server_configuration.html
@@@ -1,240 -1,0 +1,248 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Configuring Server-to-Server Sharing — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="up" title="Configuration" href="index.html" />
+ <link rel="next" title="Serving Static Files for Better Performance" href="serving_static_files_configuration.html" />
+ <link rel="prev" title="Enabling Full-Text Search" href="search_configuration.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Configuration</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Configuring the Activity App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Configuring the ClamAV Antivirus Scanner</a></li>
+<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic Configuration Setup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Defining Background Jobs</a></li>
+<li class="toctree-l2"><a class="reference internal" href="big_file_upload_configuration.html">Uploading big files > 512MB (as set by default)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="collaborative_documents_configuration.html">Configuring the Collaborative Documents App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Config.php Parameters</a></li>
+<li class="toctree-l2"><a class="reference internal" href="custom_client_configuration.html">Custom Client Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="database_configuration.html">Database Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="encryption_configuration.html">Encryption Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_storage_configuration_gui.html">Configuring External Storage (GUI)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_storage_configuration.html">Configuring External Storage (Configuration File)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking External Sites</a></li>
+<li class="toctree-l2"><a class="reference internal" href="file_sharing_configuration.html">File Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="files_locking_enabling.html">Files Locking App Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="harden_server.html">Hardening and Security Guidance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="js_css_asset_management_configuration.html">JavaScript and CSS Asset Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="knowledgebase_configuration.html">Knowledge Base Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ Command</a></li>
+<li class="toctree-l2"><a class="reference internal" href="performance_tips.html">Performance Tips</a></li>
+<li class="toctree-l2"><a class="reference internal" href="previews_configuration.html">Previews Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse Proxy Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="search_configuration.html">Enabling Full-Text Search</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Configuring Server-to-Server Sharing</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#notes">Notes</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="serving_static_files_configuration.html">Serving Static Files for Better Performance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="thirdparty_php_configuration.html">Using Third Party PHP Components</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ftp_smb_imap.html">User Authentication with IMAP, SMB, and FTP</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap.html">User Authentication with LDAP</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap_cleanup.html">LDAP User Cleanup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_configuration.html">User Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reset_admin_password.html">Resetting a Lost Admin Password</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="configuring-server-to-server-sharing">
+<h1>Configuring Server-to-Server Sharing<a class="headerlink" href="#configuring-server-to-server-sharing" title="Permalink to this headline">¶</a></h1>
+<p>ownCloud 7 introduces a powerful new feature, server-to-server sharing. With
+just a few clicks you can easily and securely create public shares for sharing
- files and directories with other ownCloud 7 servers. (Currently, this works only
- with OC7 and not older versions.) You can automatically send an email
- notification when you create the share, add password protection, allow users to
- upload files, and set an expiration date.</p>
++files and directories with other ownCloud 7 (and newer versions) servers. You
++can automatically send an email notification when you create the share, add
++password protection, allow users to upload files, and set an expiration date.</p>
++<div class="admonition note">
++<p class="first admonition-title">Note</p>
++<p class="last">This is called Federated Cloud Sharing in ownCloud 8. You may create
++shares with oC8 servers, following the steps below using public link
++shares. oC8 also supports creating the share using the <tt class="docutils literal"><span class="pre">Share</span> <span class="pre">with</span> <span class="pre">user</span> <span class="pre">or</span>
++<span class="pre">group</span></tt> form field. This is not supported in oC7 and you must use public
++link shares on both servers.</p>
++</div>
+<p>Follow these steps to create a new public share:</p>
+<ol class="arabic simple">
+<li>Go to the Admin page and scroll to the Remote Shares section.</li>
+</ol>
+<div class="figure">
+<img alt="../_images/remote_shares.png" src="../_images/remote_shares.png" />
+</div>
+<p>2. To enable server-to-server sharing, and to allow remote users to mount your
+shares in their ownCloud 7 accounts, check <tt class="docutils literal"><span class="pre">Allow</span> <span class="pre">other</span> <span class="pre">instances</span> <span class="pre">to</span> <span class="pre">mount</span>
+<span class="pre">public</span> <span class="pre">links</span> <span class="pre">shared</span> <span class="pre">from</span> <span class="pre">this</span> <span class="pre">server.</span></tt> Leaving the checkbox blank disables
+server-to-server sharing.</p>
+<p>3. You can enable the users on your local ownCloud server to mount
+public link shares by checking <tt class="docutils literal"><span class="pre">Allow</span> <span class="pre">users</span> <span class="pre">to</span> <span class="pre">mount</span> <span class="pre">public</span> <span class="pre">link</span> <span class="pre">shares.</span></tt>
+When this is not checked your users cannot mount public link shares, though
+they can view and download them.</p>
+<p>4. Now go to your Files page and hover your cursor over the file or directory
+you want to share to expose the administration options. Check the <tt class="docutils literal"><span class="pre">Share</span>
+<span class="pre">Link</span></tt> checkbox to create the share, and to expose all of your sharing options.</p>
+<div class="figure">
+<img alt="../_images/create_public_share.png" src="../_images/create_public_share.png" />
+</div>
+<p>Your new public share is labeled with a chain link. If you do not protect it
+with a password, it is visible to anyone who has the URL. Users on other
+ownCloud 7 servers can mount it and use it just like any ownCloud share.</p>
+<p>Un-check the <tt class="docutils literal"><span class="pre">Share</span> <span class="pre">Link</span></tt> checkbox to disable the share.</p>
+<p>See “Using Server-to-Server Sharing” in the Users Manual to learn how to
+connect to a remote public share.</p>
+<div class="section" id="notes">
+<h2>Notes<a class="headerlink" href="#notes" title="Permalink to this headline">¶</a></h2>
+<p>Your Apache Web server must have <tt class="docutils literal"><span class="pre">mod_rewrite</span></tt> enabled, and you must have
+<tt class="docutils literal"><span class="pre">trusted_domains</span></tt> configured in <tt class="docutils literal"><span class="pre">config.php</span></tt>. Consider also enabling SSL to
- encrypt all traffic between your servers. (See <a class="reference internal" href="../installation/source_installation.html"><em>Manual Installation on Linux</em></a>
- to learn more about mod_rewrite, SSL, and alternative HTTP servers. See
- <a class="reference internal" href="../installation/installation_wizard.html"><em>Installation Wizard</em></a> to learn more about configuring trusted domains.)</p>
++encrypt all traffic between your servers. (See
++<a class="reference internal" href="../installation/source_installation.html"><em>Manual Installation on Linux</em></a> to learn more about mod_rewrite, SSL,
++and alternative HTTP servers. See <a class="reference internal" href="../installation/installation_wizard.html"><em>Installation Wizard</em></a> to
++learn more about configuring trusted domains.)</p>
+<p>Self-signed certificates for Server-to-Server Sharing are currently not supported.</p>
+<p>Your ownCloud server creates the share link from the URL that you used to log
+into the server, so make sure that you log into your server using a URL that is
+accessible to your users. For example, if you log in via its LAN IP address,
+such as <tt class="docutils literal"><span class="pre">http://192.168.10.50</span></tt>, then your share URL will be something like
+<tt class="docutils literal"><span class="pre">http://192.168.10.50/owncloud/public.php?service=files&t=</span>
+<span class="pre">6b6fa9a714a32ef0af8a83dde358deec</span></tt>, which is not accessible outside of your
+LAN. This also applies to using the server name; for access outside of your LAN
+you need to use a fully-qualified domain name such as
+<tt class="docutils literal"><span class="pre">http://myserver.example.com</span></tt>, rather than <tt class="docutils literal"><span class="pre">http://myserver</span></tt>.</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/configuration/user_auth_ftp_smb_imap.html
index f22b4f9,0000000..2dec24c
mode 100644,000000..100644
--- a/core/doc/admin/release/configuration/user_auth_ftp_smb_imap.html
+++ b/core/doc/admin/release/configuration/user_auth_ftp_smb_imap.html
@@@ -1,272 -1,0 +1,280 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>User Authentication with IMAP, SMB, and FTP — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="up" title="Configuration" href="index.html" />
+ <link rel="next" title="User Authentication with LDAP" href="user_auth_ldap.html" />
+ <link rel="prev" title="Using Third Party PHP Components" href="thirdparty_php_configuration.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Configuration</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Configuring the Activity App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Configuring the ClamAV Antivirus Scanner</a></li>
+<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic Configuration Setup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Defining Background Jobs</a></li>
+<li class="toctree-l2"><a class="reference internal" href="big_file_upload_configuration.html">Uploading big files > 512MB (as set by default)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="collaborative_documents_configuration.html">Configuring the Collaborative Documents App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Config.php Parameters</a></li>
+<li class="toctree-l2"><a class="reference internal" href="custom_client_configuration.html">Custom Client Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="database_configuration.html">Database Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="encryption_configuration.html">Encryption Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_storage_configuration_gui.html">Configuring External Storage (GUI)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_storage_configuration.html">Configuring External Storage (Configuration File)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking External Sites</a></li>
+<li class="toctree-l2"><a class="reference internal" href="file_sharing_configuration.html">File Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="files_locking_enabling.html">Files Locking App Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="harden_server.html">Hardening and Security Guidance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="js_css_asset_management_configuration.html">JavaScript and CSS Asset Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="knowledgebase_configuration.html">Knowledge Base Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ Command</a></li>
+<li class="toctree-l2"><a class="reference internal" href="performance_tips.html">Performance Tips</a></li>
+<li class="toctree-l2"><a class="reference internal" href="previews_configuration.html">Previews Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse Proxy Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="search_configuration.html">Enabling Full-Text Search</a></li>
+<li class="toctree-l2"><a class="reference internal" href="server_to_server_configuration.html">Configuring Server-to-Server Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="serving_static_files_configuration.html">Serving Static Files for Better Performance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="thirdparty_php_configuration.html">Using Third Party PHP Components</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">User Authentication with IMAP, SMB, and FTP</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#imap">IMAP</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#smb">SMB</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#ftp">FTP</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap.html">User Authentication with LDAP</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap_cleanup.html">LDAP User Cleanup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_configuration.html">User Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reset_admin_password.html">Resetting a Lost Admin Password</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="user-authentication-with-imap-smb-and-ftp">
+<h1>User Authentication with IMAP, SMB, and FTP<a class="headerlink" href="#user-authentication-with-imap-smb-and-ftp" title="Permalink to this headline">¶</a></h1>
+<p>You may configure additional user backends
+in ownCloud’s configuration <tt class="file docutils literal"><span class="pre">config/config.php</span></tt> using the following
+syntax:</p>
+<div class="highlight-php"><div class="highlight"><pre><span class="cp"><?php</span>
+
+<span class="s2">"user_backends"</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="mi">0</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="s2">"class"</span> <span class="o">=></span> <span class="o">...</span><span class="p">,</span>
+ <span class="s2">"arguments"</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="mi">0</span> <span class="o">=></span> <span class="o">...</span>
+ <span class="p">),</span>
+ <span class="p">),</span>
+<span class="p">),</span>
+</pre></div>
+</div>
++<div class="admonition note">
++<p class="first admonition-title">Note</p>
++<p class="last">A non-blocking or correctly configured SELinux setup is needed
++for these backends to work. Please refer to the <a class="reference internal" href="../installation/selinux_configuration.html#selinux-config-label"><em>SELinux Configuration</em></a>.</p>
++</div>
+<p>Currently the “External user support” (user_external) app, which you need to
+enable first (See <a class="reference internal" href="../installation/apps_management_installation.html"><em>Installing and Managing Apps</em></a>)
+provides the following user backends:</p>
+<div class="section" id="imap">
+<h2>IMAP<a class="headerlink" href="#imap" title="Permalink to this headline">¶</a></h2>
+<p>Provides authentication against IMAP servers</p>
+<ul class="simple">
+<li><strong>Class:</strong> OC_User_IMAP</li>
+<li><strong>Arguments:</strong> a mailbox string as defined <a class="reference external" href="http://www.php.net/manual/en/function.imap-open.php">in the PHP documentation</a></li>
++<li><strong>Dependency:</strong> php-imap (See <a class="reference internal" href="../installation/source_installation.html"><em>Manual Installation on Linux</em></a>)</li>
+<li><strong>Example:</strong></li>
+</ul>
+<div class="highlight-php"><div class="highlight"><pre><span class="cp"><?php</span>
+
+<span class="s2">"user_backends"</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="mi">0</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="s2">"class"</span> <span class="o">=></span> <span class="s2">"OC_User_IMAP"</span><span class="p">,</span>
+ <span class="s2">"arguments"</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="mi">0</span> <span class="o">=></span> <span class="s1">'{imap.gmail.com:993/imap/ssl}'</span>
+ <span class="p">),</span>
+ <span class="p">),</span>
+<span class="p">),</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="smb">
+<h2>SMB<a class="headerlink" href="#smb" title="Permalink to this headline">¶</a></h2>
+<p>Provides authentication against Samba servers</p>
+<ul class="simple">
+<li><strong>Class:</strong> OC_User_SMB</li>
+<li><strong>Arguments:</strong> the samba server to authenticate against</li>
++<li><strong>Dependency:</strong> smbclient (See <a class="reference internal" href="../installation/source_installation.html"><em>Manual Installation on Linux</em></a>)</li>
+<li><strong>Example:</strong></li>
+</ul>
+<div class="highlight-php"><div class="highlight"><pre><span class="cp"><?php</span>
+
+<span class="s2">"user_backends"</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="mi">0</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="s2">"class"</span> <span class="o">=></span> <span class="s2">"OC_User_SMB"</span><span class="p">,</span>
+ <span class="s2">"arguments"</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="mi">0</span> <span class="o">=></span> <span class="s1">'localhost'</span>
+ <span class="p">),</span>
+ <span class="p">),</span>
+<span class="p">),</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="ftp">
+<h2>FTP<a class="headerlink" href="#ftp" title="Permalink to this headline">¶</a></h2>
+<p>Provides authentication against FTP servers</p>
+<ul class="simple">
+<li><strong>Class:</strong> OC_User_FTP</li>
+<li><strong>Arguments:</strong> the FTP server to authenticate against</li>
++<li><strong>Dependency:</strong> php-ftp (See <a class="reference internal" href="../installation/source_installation.html"><em>Manual Installation on Linux</em></a>)</li>
+<li><strong>Example:</strong></li>
+</ul>
+<div class="highlight-php"><div class="highlight"><pre><span class="cp"><?php</span>
+
+<span class="s2">"user_backends"</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="mi">0</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="s2">"class"</span> <span class="o">=></span> <span class="s2">"OC_User_FTP"</span><span class="p">,</span>
+ <span class="s2">"arguments"</span> <span class="o">=></span> <span class="k">array</span> <span class="p">(</span>
+ <span class="mi">0</span> <span class="o">=></span> <span class="s1">'localhost'</span>
+ <span class="p">),</span>
+ <span class="p">),</span>
+<span class="p">),</span>
+</pre></div>
+</div>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/configuration/user_auth_ldap.html
index ba1350a,0000000..7999205
mode 100644,000000..100644
--- a/core/doc/admin/release/configuration/user_auth_ldap.html
+++ b/core/doc/admin/release/configuration/user_auth_ldap.html
@@@ -1,798 -1,0 +1,803 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>User Authentication with LDAP — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="up" title="Configuration" href="index.html" />
+ <link rel="next" title="LDAP User Cleanup" href="user_auth_ldap_cleanup.html" />
+ <link rel="prev" title="User Authentication with IMAP, SMB, and FTP" href="user_auth_ftp_smb_imap.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Configuration</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Configuring the Activity App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Configuring the ClamAV Antivirus Scanner</a></li>
+<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic Configuration Setup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Defining Background Jobs</a></li>
+<li class="toctree-l2"><a class="reference internal" href="big_file_upload_configuration.html">Uploading big files > 512MB (as set by default)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="collaborative_documents_configuration.html">Configuring the Collaborative Documents App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Config.php Parameters</a></li>
+<li class="toctree-l2"><a class="reference internal" href="custom_client_configuration.html">Custom Client Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="database_configuration.html">Database Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="encryption_configuration.html">Encryption Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_storage_configuration_gui.html">Configuring External Storage (GUI)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_storage_configuration.html">Configuring External Storage (Configuration File)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking External Sites</a></li>
+<li class="toctree-l2"><a class="reference internal" href="file_sharing_configuration.html">File Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="files_locking_enabling.html">Files Locking App Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="harden_server.html">Hardening and Security Guidance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="js_css_asset_management_configuration.html">JavaScript and CSS Asset Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="knowledgebase_configuration.html">Knowledge Base Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ Command</a></li>
+<li class="toctree-l2"><a class="reference internal" href="performance_tips.html">Performance Tips</a></li>
+<li class="toctree-l2"><a class="reference internal" href="previews_configuration.html">Previews Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse Proxy Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="search_configuration.html">Enabling Full-Text Search</a></li>
+<li class="toctree-l2"><a class="reference internal" href="server_to_server_configuration.html">Configuring Server-to-Server Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="serving_static_files_configuration.html">Serving Static Files for Better Performance</a></li>
+<li class="toctree-l2"><a class="reference internal" href="thirdparty_php_configuration.html">Using Third Party PHP Components</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ftp_smb_imap.html">User Authentication with IMAP, SMB, and FTP</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">User Authentication with LDAP</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#configuration">Configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#advanced-settings">Advanced Settings</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#expert-settings">Expert Settings</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#testing-the-configuration">Testing the configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#owncloud-avatar-integration">ownCloud Avatar integration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#troubleshooting-tips-and-tricks">Troubleshooting, Tips and Tricks</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#ssl-certificate-verification-ldaps-tls">SSL Certificate Verification (LDAPS, TLS)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#microsoft-active-directory">Microsoft Active Directory</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#duplicating-server-configurations">Duplicating Server Configurations</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#owncloud-ldap-internals">ownCloud LDAP Internals</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#user-and-group-mapping">User and Group Mapping</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#caching">Caching</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#handling-with-backup-server">Handling with Backup Server</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap_cleanup.html">LDAP User Cleanup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="user_configuration.html">User Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reset_admin_password.html">Resetting a Lost Admin Password</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="user-authentication-with-ldap">
+<h1>User Authentication with LDAP<a class="headerlink" href="#user-authentication-with-ldap" title="Permalink to this headline">¶</a></h1>
+<p>ownCloud ships with an LDAP application so that your existing LDAP users may
+have access to your ownCloud server without creating separate ownCloud user
+accounts.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">For performance reasons, we recommend using PHP 5.4 or greater to use
+the LDAP application with more than 500 users. The PHP LDAP module is
+required; this is supplied by <tt class="docutils literal"><span class="pre">php5-ldap</span></tt> on Debian/Ubuntu, and
+<tt class="docutils literal"><span class="pre">php-ldap</span></tt> on CentOS/Red Hat/Fedora.</p>
+</div>
+<p>The LDAP application supports:</p>
+<ul class="simple">
+<li>LDAP group support</li>
+<li>File sharing with ownCloud users and groups</li>
+<li>Access via WebDAV and ownCloud Desktop Client</li>
+<li>Versioning, external Storage and all other ownCloud features</li>
+<li>Seamless connectivity to Active Directory, with no extra configuration
+required</li>
+<li>Support for primary groups in Active Directory</li>
+<li>Auto-detection of LDAP attributes such as base DN, email, and the LDAP server
+port number</li>
+<li>Read-only access to your LDAP (no edit or delete of users on your LDAP)</li>
+</ul>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">The LDAP app is not compatible with the <tt class="docutils literal"><span class="pre">WebDAV</span> <span class="pre">user</span> <span class="pre">backend</span></tt> app.
+You cannot use both of them at the same time.</p>
+</div>
++<div class="admonition note">
++<p class="first admonition-title">Note</p>
++<p class="last">A non-blocking or correctly configured SELinux setup is needed
++for the LDAP backend to work. Please refer to the <a class="reference internal" href="../installation/selinux_configuration.html#selinux-config-label"><em>SELinux Configuration</em></a>.</p>
++</div>
+<div class="section" id="configuration">
+<h2>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h2>
+<p>First enable the <tt class="docutils literal"><span class="pre">LDAP</span> <span class="pre">user</span> <span class="pre">and</span> <span class="pre">group</span> <span class="pre">backend</span></tt> app on the Apps page in
+ownCloud. Then go to your Admin page to configure it.</p>
+<p>The LDAP configuration panel has four tabs. A correctly completed first tab
+(“Server”) is mandatory to access the other tabs. A green indicator lights when
+the configuration is correct. Hover your cursor over the fields to see some
+pop-up tooltips.</p>
+<div class="section" id="server-tab">
+<h3>Server Tab<a class="headerlink" href="#server-tab" title="Permalink to this headline">¶</a></h3>
+<p>Start with the Server tab. You may configure multiple servers if you have them.
+At a minimum you must supply the LDAP server’s hostname. If your server requires
+authentication, enter your credentials on this tab. ownCloud will then attempt
+to auto-detect the server’s port and base DN. The base DN and port are
+mandatory, so if ownCloud cannot detect them you must enter them manually.</p>
+<div class="figure">
+<img alt="../_images/ldap-wizard-1-server.png" src="../_images/ldap-wizard-1-server.png" />
+</div>
+<dl class="docutils">
+<dt>Server configuration:</dt>
+<dd>Configure one or more LDAP servers. Click the <strong>Delete Configuration</strong>
+button to remove the active configuration.</dd>
+<dt>Host:</dt>
+<dd><p class="first">The host name or IP address of the LDAP server. It can also be a <strong>ldaps://</strong>
+URI. If you enter the port number, it speeds up server detection.</p>
+<p>Examples:</p>
+<ul class="last simple">
+<li><em>directory.my-company.com</em></li>
+<li><em>ldaps://directory.my-company.com</em></li>
+<li><em>directory.my-company.com:9876</em></li>
+</ul>
+</dd>
+<dt>Port:</dt>
+<dd><p class="first">The port on which to connect to the LDAP server. The field is disabled in the
+beginning of a new configuration. If the LDAP server is running on a standard
+port, the port will be detected automatically. If you are using a
+non-standard port, ownCloud will attempt to detect it. If this fails you must
+enter the port number manually.</p>
+<p>Example:</p>
+<ul class="last simple">
+<li><em>389</em></li>
+</ul>
+</dd>
+<dt>User DN:</dt>
+<dd><p class="first">The name as DN of a user who has permissions to do searches in the LDAP
+directory. Leave it empty for anonymous access. We recommend that you have a
+special LDAP system user for this.</p>
+<p>Example:</p>
+<ul class="last simple">
+<li><em>uid=owncloudsystemuser,cn=sysusers,dc=my-company,dc=com</em></li>
+</ul>
+</dd>
+<dt>Password:</dt>
+<dd>The password for the user given above. Empty for anonymous access.</dd>
+<dt>Base DN:</dt>
+<dd><p class="first">The base DN of LDAP, from where all users and groups can be reached. You may
+enter multiple base DNs, one per line. (Base DNs for users and groups can be
+set in the Advanced tab.) This field is mandatory. ownCloud attempts to
+determine the Base DN according to the provided User DN or the provided
+Host, and you must enter it manually if ownCloud does not detect it.</p>
+<p>Example:</p>
+<ul class="last simple">
+<li><em>dc=my-company,dc=com</em></li>
+</ul>
+</dd>
+</dl>
+</div>
+<div class="section" id="user-filter">
+<h3>User Filter<a class="headerlink" href="#user-filter" title="Permalink to this headline">¶</a></h3>
+<p>Use this to control which LDAP users are listed as ownCloud users on your ownCloud server.
+In order to control which LDAP users can login to your ownCloud server use the Login filter.
+Those LDAP users who have access but are not listed as users (if there are any) will be hidden users.
+You may bypass the form fields and enter a raw LDAP filter if you prefer.</p>
+<div class="figure">
+<img alt="../_images/ldap-wizard-2-user.png" src="../_images/ldap-wizard-2-user.png" />
+</div>
+<dl class="docutils">
+<dt>only those object classes:</dt>
+<dd>ownCloud will determine the object classes that are typically available for
+user objects in your LDAP. ownCloud will automatically select the object
+class that returns the highest amount of users. You may select multiple
+object classes.</dd>
+<dt>only from those groups:</dt>
+<dd><p class="first">If your LDAP server supports the <tt class="docutils literal"><span class="pre">member-of-overlay</span></tt> in LDAP filters, you
+can define that only users from one or more certain groups are allowed to
+appear in user listings in ownCloud. By default, no value will be selected. You
+may select multiple groups.</p>
+<p class="last">If your LDAP server does not support the member-of-overlay in LDAP filters,
+the input field is disabled. Please contact your LDAP administrator.</p>
+</dd>
+<dt>Edit raw filter instead:</dt>
+<dd><p class="first">Clicking on this text toggles the filter mode and you can enter the raw LDAP
+filter directly.</p>
+<p>Example:</p>
+<ul class="last simple">
+<li><em>(&(objectClass=inetOrgPerson)(memberOf=cn=owncloudusers,ou=groups,dc=example,dc=com))</em></li>
+</ul>
+</dd>
+<dt>x users found:</dt>
+<dd>This is an indicator that tells you approximately how many users will be
+listed in ownCloud. The number updates automatically after any changes.</dd>
+</dl>
+</div>
+<div class="section" id="login-filter">
+<h3>Login Filter<a class="headerlink" href="#login-filter" title="Permalink to this headline">¶</a></h3>
+<p>The settings in the Login Filter tab determine which LDAP users can log in to your
+ownCloud system and which attribute or attributes the provided login name is matched
+against (e.g. LDAP/AD username, email address). You may select multiple user details.
+(You may bypass the form fields and enter a raw LDAP filter if you prefer.)</p>
+<p>You may override your User Filter settings on the User Filter tab by using a raw
+LDAP filter.</p>
+<div class="figure">
+<img alt="../_images/ldap-wizard-3-login.png" src="../_images/ldap-wizard-3-login.png" />
+</div>
+<dl class="docutils">
+<dt>LDAP Username:</dt>
+<dd>If this value is checked, the login value will be compared to the username in
+the LDAP directory. The corresponding attribute, usually <em>uid</em> or
+<em>samaccountname</em> will be detected automatically by ownCloud.</dd>
+<dt>LDAP Email Address:</dt>
+<dd>If this value is checked, the login value will be compared to an email address
+in the LDAP directory; specifically, the <em>mailPrimaryAddress</em> and <em>mail</em>
+attributes.</dd>
+<dt>Other Attributes:</dt>
+<dd>This multi-select box allows you to select other attributes for the
+comparison. The list is generated automatically from the user object
+attributes in your LDAP server.</dd>
+<dt>Edit raw filter instead:</dt>
+<dd><p class="first">Clicking on this text toggles the filter mode and you can enter the raw LDAP
+filter directly.</p>
+<p>The <strong>%uid</strong> placeholder is replaced with the login name entered by the
+user upon login.</p>
+<p>Examples:</p>
+<ul class="last simple">
+<li>only username: (&(objectClass=inetOrgPerson)(memberOf=cn=owncloudusers,ou=groups,dc=example,dc=com)(uid=%uid)*</li>
+<li>username or email address: <em>((&(objectClass=inetOrgPerson)(memberOf=cn=owncloudusers,ou=groups,dc=example,dc=com)(|(uid=%uid)(mail=%uid)))</em></li>
+</ul>
+</dd>
+</dl>
+</div>
+<div class="section" id="group-filter">
+<h3>Group Filter<a class="headerlink" href="#group-filter" title="Permalink to this headline">¶</a></h3>
+<p>By default, no LDAP groups will be available in ownCloud. The settings in the
+group filter tab determine which groups will be available in ownCloud. You may
+also elect to enter a raw LDAP filter instead.</p>
+<div class="figure">
+<img alt="../_images/ldap-wizard-4-group.png" src="../_images/ldap-wizard-4-group.png" />
+</div>
+<dl class="docutils">
+<dt>only those object classes:</dt>
+<dd>ownCloud will determine the object classes that are typically available for
+group objects in your LDAP server. ownCloud will only list object
+classes that return at least one group object. You can select multiple
+object classes. A typical object class is “group”, or “posixGroup”.</dd>
+<dt>only from those groups:</dt>
+<dd>ownCloud will generate a list of available groups found in your LDAP server.
+and then you select the group or groups that get access to your ownCloud
+server.</dd>
+<dt>Edit raw filter instead:</dt>
+<dd><p class="first">Clicking on this text toggles the filter mode and you can enter the raw LDAP
+filter directly.</p>
+<p>Example:</p>
+<ul class="last simple">
+<li><em>objectClass=group</em></li>
+<li><em>objectClass=posixGroup</em></li>
+</ul>
+</dd>
+<dt>y groups found:</dt>
+<dd>This tells you approximately how many groups will be available in ownCloud.
+The number updates automatically after any change.</dd>
+</dl>
+</div>
+</div>
+<div class="section" id="advanced-settings">
+<h2>Advanced Settings<a class="headerlink" href="#advanced-settings" title="Permalink to this headline">¶</a></h2>
+<p>The LDAP Advanced Setting section contains options that are not needed for a
+working connection. This provides controls to disable the current configuration,
+configure replica hosts, and various performance-enhancing options.</p>
+<p>The Advanced Settings are structured into three parts:</p>
+<ul class="simple">
+<li>Connection Settings</li>
+<li>Directory Settings</li>
+<li>Special Attributes</li>
+</ul>
+<div class="section" id="connection-settings">
+<h3>Connection Settings<a class="headerlink" href="#connection-settings" title="Permalink to this headline">¶</a></h3>
+<div class="figure">
+<img alt="../_images/ldap-advanced-1-connection.png" src="../_images/ldap-advanced-1-connection.png" />
+<p class="caption">LDAP Advanced Settings, section Connection Settings</p>
+</div>
+<dl class="docutils">
+<dt>Configuration Active:</dt>
+<dd>Enables or Disables the current configuration. By default, it is turned off.
+When ownCloud makes a successful test connection it is automatically turned
+on.</dd>
+<dt>Backup (Replica) Host:</dt>
+<dd><p class="first">If you have a backup LDAP server, enter the connection settings here.
+ownCloud will then automatically connect to the backup when the main server
+cannot be reached. The backup server must be a replica of the main server so
+that the object UUIDs match.</p>
+<p>Example:</p>
+<ul class="last simple">
+<li><em>directory2.my-company.com</em></li>
+</ul>
+</dd>
+<dt>Backup (Replica) Port:</dt>
+<dd><p class="first">The connection port of the backup LDAP server. If no port is given,
+but only a host, then the main port (as specified above) will be used.</p>
+<p>Example:</p>
+<ul class="last simple">
+<li><em>389</em></li>
+</ul>
+</dd>
+<dt>Disable Main Server:</dt>
+<dd>You can manually override the main server and make ownCloud only connect to
+the backup server. This is useful for planned downtimes.</dd>
+<dt>Case insensitive LDAP server (Windows):</dt>
+<dd>When the LDAP server is running on a Windows Host.</dd>
+<dt>Turn off SSL certificate validation:</dt>
+<dd>Turns off SSL certificate checking. Use it for testing only!</dd>
+<dt>Cache Time-To-Live:</dt>
+<dd><p class="first">A cache is introduced to avoid unnecessary LDAP traffic, for example caching
+usernames so they don’t have to be looked up for every page, and speeding up
+loading of the Users page. Saving the configuration empties the cache. The
+time is given in seconds.</p>
+<p>Note that almost every PHP request requires a new connection to the LDAP
+server. If you require fresh PHP requests we recommend defining a minimum
+lifetime of 15s or so, rather than completely eliminating the cache.</p>
+<p>Examples:</p>
+<ul class="last simple">
+<li>ten minutes: <em>600</em></li>
+<li>one hour: <em>3600</em></li>
+</ul>
+</dd>
+</dl>
+<p>See the Caching section below for detailed information on how the cache
+operates.</p>
+</div>
+<div class="section" id="directory-settings">
+<h3>Directory Settings<a class="headerlink" href="#directory-settings" title="Permalink to this headline">¶</a></h3>
+<div class="figure">
+<img alt="../_images/ldap-advanced-2-directory.png" src="../_images/ldap-advanced-2-directory.png" />
+<p class="caption">LDAP Advanced Settings, section Directory Settings</p>
+</div>
+<dl class="docutils">
+<dt>User Display Name Field:</dt>
+<dd><p class="first">The attribute that should be used as display name in ownCloud.</p>
+<ul class="last simple">
+<li>Example: <em>displayName</em></li>
+</ul>
+</dd>
+<dt>Base User Tree:</dt>
+<dd><p class="first">The base DN of LDAP, from where all users can be reached. This must be a
+complete DN, regardless of what you have entered for your Base DN in the
+Basic setting. You can specify multiple base trees, one on each line.</p>
+<ul class="last">
+<li><p class="first">Example:</p>
+<div class="line-block">
+<div class="line"><em>cn=programmers,dc=my-company,dc=com</em></div>
+<div class="line"><em>cn=designers,dc=my-company,dc=com</em></div>
+</div>
+</li>
+</ul>
+</dd>
+<dt>User Search Attributes:</dt>
+<dd><p class="first">These attributes are used when searches for users are performed, for example
+in the in the share dialogue. The user display name attribute is the
+default. You may list multiple attributes, one per line.</p>
+<p>If an attribute is not available on a user object, the user will not be
+listed, and will be unable to login. This also affects the display name
+attribute. If you override the default you must specify the display name
+attribute here.</p>
+<ul class="last">
+<li><p class="first">Example:</p>
+<div class="line-block">
+<div class="line"><em>displayName</em></div>
+<div class="line"><em>mail</em></div>
+</div>
+</li>
+</ul>
+</dd>
+<dt>Group Display Name Field:</dt>
+<dd><p class="first">The attribute that should be used as ownCloud group name. ownCloud allows a
+limited set of characters (a-zA-Z0-9.-_@). Once a group name is assigned it
+cannot be changed.</p>
+<ul class="last simple">
+<li>Example: <em>cn</em></li>
+</ul>
+</dd>
+<dt>Base Group Tree:</dt>
+<dd><p class="first">The base DN of LDAP, from where all groups can be reached. This must be a
+complete DN, regardless of what you have entered for your Base DN in the
+Basic setting. You can specify multiple base trees, one in each line.</p>
+<ul class="last">
+<li><p class="first">Example:</p>
+<div class="line-block">
+<div class="line"><em>cn=barcelona,dc=my-company,dc=com</em></div>
+<div class="line"><em>cn=madrid,dc=my-company,dc=com</em></div>
+</div>
+</li>
+</ul>
+</dd>
+<dt>Group Search Attributes:</dt>
+<dd><p class="first">These attributes are used when a search for groups is done, for example in
+the share dialogue. By default the group display name attribute as specified
+above is being used. Multiple attributes can be given, one in each line.</p>
+<p>If you override the default, the group display name attribute will not be
+taken into account, unless you specify it as well.</p>
+<ul class="last">
+<li><p class="first">Example:</p>
+<div class="line-block">
+<div class="line"><em>cn</em></div>
+<div class="line"><em>description</em></div>
+</div>
+</li>
+</ul>
+</dd>
+<dt>Group Member association:</dt>
+<dd><p class="first">The attribute that is used to indicate group memberships, i.e. the attribute
+used by LDAP groups to refer to their users.</p>
+<p>ownCloud detects the value automatically. You should only change it if you
+have a very valid reason and know what you are doing.</p>
+<ul class="last simple">
+<li>Example: <em>uniquemember</em></li>
+</ul>
+</dd>
+</dl>
+</div>
+<div class="section" id="special-attributes">
+<h3>Special Attributes<a class="headerlink" href="#special-attributes" title="Permalink to this headline">¶</a></h3>
+<div class="figure">
+<img alt="../_images/ldap-advanced-3-attributes.png" src="../_images/ldap-advanced-3-attributes.png" />
+<p class="caption">LDAP Advanced Settings, section Special Attributes</p>
+</div>
+<dl class="docutils">
+<dt>Quota Field:</dt>
+<dd><p class="first">ownCloud can read an LDAP attribute and set the user quota according to its
+value. Specify the attribute here, and it will return human-readable values,
+e.g. “2 GB”.</p>
+<ul class="last simple">
+<li>Example: <em>ownCloudQuota</em></li>
+</ul>
+</dd>
+<dt>Quota Default:</dt>
+<dd><p class="first">Override ownCloud default quota for LDAP users who do not have a quota set in
+the Quota Field.</p>
+<ul class="last simple">
+<li>Example: <em>15 GB</em></li>
+</ul>
+</dd>
+<dt>Email Field:</dt>
+<dd><p class="first">Set the user’s email from their LDAP attribute. Leave it empty for default
+behavior.</p>
+<ul class="last simple">
+<li>Example: <em>mail</em></li>
+</ul>
+</dd>
+<dt>User Home Folder Naming Rule:</dt>
+<dd><p class="first">By default, the ownCloud server creates the user directory in your ownCloud
+data directory. You may want to override this setting and name it after an
+attribute value. The attribute given can also return an absolute path, e.g.
+<tt class="docutils literal"><span class="pre">/mnt/storage43/alice</span></tt>. Leave it empty for default behavior.</p>
+<ul class="last simple">
+<li>Example: <em>cn</em></li>
+</ul>
+</dd>
+</dl>
+</div>
+</div>
+<div class="section" id="expert-settings">
+<h2>Expert Settings<a class="headerlink" href="#expert-settings" title="Permalink to this headline">¶</a></h2>
+<div class="figure">
+<img alt="../_images/ldap-expert.png" src="../_images/ldap-expert.png" />
+</div>
+<p>In the Expert Settings fundamental behavior can be adjusted to your needs. The
+configuration should be well-tested before starting production use.</p>
+<dl class="docutils">
+<dt>Internal Username:</dt>
+<dd><p class="first">The internal username is the identifier in ownCloud for LDAP users. By default
+it will be created from the UUID attribute. The UUID attribute ensures that
+the username is unique, and that characters do not need to be converted. Only
+these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are
+replaced with their ASCII equivalents, or are simply omitted.</p>
+<p>The LDAP backend ensures that there are no duplicate internal usernames in
+ownCloud, i.e. that it is checking all other activated user backends
+(including local ownCloud users). On collisions a random number (between 1000
+and 9999) will be attached to the retrieved value. For example, if “alice”
+exists, the next username may be “alice_1337”.</p>
+<p>The internal username is the default name for the user home folder in
+ownCloud. It is also a part of remote URLs, for instance for all *DAV
+services.</p>
+<p>You can override all of this with the Internal Username setting. Leave it
+empty for default behaviour. Changes will affect only newly mapped LDAP users.</p>
+<ul class="last simple">
+<li>Example: <em>uid</em></li>
+</ul>
+</dd>
+<dt>Override UUID detection</dt>
+<dd><p class="first">By default, ownCloud auto-detects the UUID attribute. The UUID attribute is
+used to uniquely identify LDAP users and groups. The internal username will
+be created based on the UUID, if not specified otherwise.</p>
+<p>You can override the setting and pass an attribute of your choice. You must
+make sure that the attribute of your choice can be fetched for both users and
+groups and it is unique. Leave it empty for default behaviour. Changes will
+have effect only on newly mapped LDAP users and groups. It also will
+have effect when a user’s or group’s DN changes and an old UUID was cached,
+which will result in a new user. Because of this, the setting should be
+applied before putting ownCloud in production use and clearing the bindings
+(see the <tt class="docutils literal"><span class="pre">User</span> <span class="pre">and</span> <span class="pre">Group</span> <span class="pre">Mapping</span></tt> section below).</p>
+<ul class="last simple">
+<li>Example: <em>cn</em></li>
+</ul>
+</dd>
+<dt>Username-LDAP User Mapping</dt>
+<dd><p class="first">ownCloud uses usernames as keys to store and assign data. In order to
+precisely identify and recognize users, each LDAP user will have a internal
+username in ownCloud. This requires a mapping from ownCloud username to LDAP
+user. The created username is mapped to the UUID of the LDAP user.
+Additionally the DN is cached as well to reduce LDAP interaction, but it is
+not used for identification. If the DN changes, the change will be detected by
+ownCloud by checking the UUID value.</p>
+<p>The same is valid for groups.</p>
+<p>The internal ownCloud name is used all over in ownCloud. Clearing the Mappings
+will have leftovers everywhere. Never clear the mappings in a production
+environment, but only in a testing or experimental server.</p>
+<p class="last"><strong>Clearing the Mappings is not configuration sensitive, it affects all LDAP
+configurations!</strong></p>
+</dd>
+</dl>
+</div>
+<div class="section" id="testing-the-configuration">
+<h2>Testing the configuration<a class="headerlink" href="#testing-the-configuration" title="Permalink to this headline">¶</a></h2>
+<p>The <strong>Test Configuration</strong> button checks the values as currently given in the
+input fields. You do not need to save before testing. By clicking on the
+button, ownCloud will try to bind to the ownCloud server using the
+settings currently given in the input fields. The response will look like this:</p>
+<div class="figure">
+<img alt="../_images/ldap-settings-invalid-oc45.png" src="../_images/ldap-settings-invalid-oc45.png" />
+<p class="caption">Failure</p>
+</div>
+<p>In case the configuration fails, you can see details in ownCloud’s log, which
+is in the data directory and called <strong>owncloud.log</strong> or on the bottom the
+<strong>Settings – Admin page</strong>. You must refresh the Admin page to see the new log
+entries.</p>
+<div class="figure">
+<img alt="../_images/ldap-settings-valid-oc45.png" src="../_images/ldap-settings-valid-oc45.png" />
+<p class="caption">Success</p>
+</div>
+<p>In this case, Save the settings. You can check if the users and groups are
+fetched correctly on the Users page.</p>
+</div>
+<div class="section" id="owncloud-avatar-integration">
+<h2>ownCloud Avatar integration<a class="headerlink" href="#owncloud-avatar-integration" title="Permalink to this headline">¶</a></h2>
+<p>ownCloud support user profile pictures, which are also called avatars. If a user
+has a photo stored in the <em>jpegPhoto</em> or <em>thumbnailPhoto</em> attribute on your LDAP
+server, it will be used as their avatar. In this case the user cannot alter their
+avatar (on their Personal page) as it must be changed in LDAP. <em>jpegPhoto</em> is
+preferred over <em>thumbnailPhoto</em>.</p>
+<div class="figure">
+<img alt="../_images/ldap-fetched-avatar.png" src="../_images/ldap-fetched-avatar.png" />
+<p class="caption">Profile picture fetched from LDAP</p>
+</div>
+<p>If the <em>jpegPhoto</em> or <em>thumbnailPhoto</em> attribute is not set or empty, then
+users can upload and manage their avatars on their ownCloud Personal pages.
+Avatars managed in ownCloud are not stored in LDAP.</p>
+<p>The <em>jpegPhoto</em> or <em>thumbnailPhoto</em> attribute is fetched once a day to make
+sure the current photo from LDAP is used in ownCloud. LDAP avatars override
+ownCloud avatars, and when an LDAP avatar is deleted it the most recent
+ownCloud avatar replaces it.</p>
+<p>Photos served from LDAP are automatically cropped and resized in ownCloud. This
+affects only the presentation, and the original image is not changed.</p>
+</div>
+<div class="section" id="troubleshooting-tips-and-tricks">
+<h2>Troubleshooting, Tips and Tricks<a class="headerlink" href="#troubleshooting-tips-and-tricks" title="Permalink to this headline">¶</a></h2>
+</div>
+<div class="section" id="ssl-certificate-verification-ldaps-tls">
+<h2>SSL Certificate Verification (LDAPS, TLS)<a class="headerlink" href="#ssl-certificate-verification-ldaps-tls" title="Permalink to this headline">¶</a></h2>
+<p>A common mistake with SSL certificates is that they may not be known to PHP.
+If you have trouble with certificate validation make sure that</p>
+<ul class="simple">
+<li>You have the certificate of the server installed on the ownCloud server</li>
+<li>The certificate is announced in the system’s LDAP configuration file (usually
+<em>/etc/ldap/ldap.conf</em> on Linux, <em>C:\openldap\sysconf\ldap.conf</em> or
+<em>C:\ldap.conf</em> on Windows) using a <strong>TLS_CACERT /path/to/cert</strong> line.</li>
+<li>Using LDAPS, also make sure that the port is correctly configured (by default
+636)</li>
+</ul>
+</div>
+<div class="section" id="microsoft-active-directory">
+<h2>Microsoft Active Directory<a class="headerlink" href="#microsoft-active-directory" title="Permalink to this headline">¶</a></h2>
+<p>Compared to earlier ownCloud versions, no further tweaks need to be done to
+make ownCloud work with Active Directory. ownCloud will automatically find the
+correct configuration in the set-up process.</p>
+</div>
+<div class="section" id="duplicating-server-configurations">
+<h2>Duplicating Server Configurations<a class="headerlink" href="#duplicating-server-configurations" title="Permalink to this headline">¶</a></h2>
+<p>In case you have a working configuration and want to create a similar one or
+“snapshot” configurations before modifying them you can do the following:</p>
+<ol class="arabic simple">
+<li>Go to the <strong>Server</strong> tab</li>
+<li>On <strong>Server Configuration</strong> choose <em>Add Server Configuration</em></li>
+<li>Answer the question <em>Take over settings from recent server configuration?</em>
+with <em>yes</em>.</li>
+<li>(optional) Switch to <strong>Advanced</strong> tab and uncheck <strong>Configuration Active</strong>
+in the <em>Connection Settings</em>, so the new configuration is not used on Save</li>
+<li>Click on <strong>Save</strong></li>
+</ol>
+<p>Now you can modify and enable the configuration.</p>
+</div>
+<div class="section" id="owncloud-ldap-internals">
+<h2>ownCloud LDAP Internals<a class="headerlink" href="#owncloud-ldap-internals" title="Permalink to this headline">¶</a></h2>
+<p>Some parts of how the LDAP backend works are described here.</p>
+</div>
+<div class="section" id="user-and-group-mapping">
+<h2>User and Group Mapping<a class="headerlink" href="#user-and-group-mapping" title="Permalink to this headline">¶</a></h2>
+<p>In ownCloud the user or group name is used to have all relevant information in
+the database assigned. To work reliably a permanent internal user name and
+group name is created and mapped to the LDAP DN and UUID. If the DN changes in
+LDAP it will be detected, and there will be no conflicts.</p>
+<p>Those mappings are done in the database table <tt class="docutils literal"><span class="pre">ldap_user_mapping</span></tt> and
+<tt class="docutils literal"><span class="pre">ldap_group_mapping</span></tt>. The user name is also used for the user’s folder (except
+something else is specified in <em>User Home Folder Naming Rule</em>), which
+contains files and meta data.</p>
+<p>As of ownCloud 5 internal user name and a visible display name are separated.
+This is not the case for group names, yet, i.e. a group name cannot be altered.</p>
+<p>That means that your LDAP configuration should be good and ready before putting
+it into production. The mapping tables are filled early, but as long as you are
+testing, you can empty the tables any time. Do not do this in production.</p>
+</div>
+<div class="section" id="caching">
+<h2>Caching<a class="headerlink" href="#caching" title="Permalink to this headline">¶</a></h2>
+<p>The ownCloud <strong>Cache</strong> helps to speed up user interactions and sharing. It is
+populated on demand, and remains populated until the <strong>Cache Time-To-Live</strong> for
+each unique request expires. User logins are not cached, so if you need to
+improve login times set up a slave LDAP server to share the load.</p>
+<p>Another significant performance enhancement is to install the Alternative PHP
+Cache (APC). APC is an OPcache, which is several times faster than a file
+cache. APC improves PHP performance by storing precompiled script bytecode in
+shared memory, which reduces the overhead of loading and parsing scripts on
+each request. (See <a class="reference external" href="http://php.net/manual/en/book.apc.php">http://php.net/manual/en/book.apc.php</a> for more information.)</p>
+<p>You can adjust the <strong>Cache Time-To-Live</strong> value to balance performance and
+freshness of LDAP data. All LDAP requests will be cached for 10 minutes by
+default, and you can alter this with the <strong>Cache Time-To-Live</strong> setting. The
+cache answers each request that is identical to a previous request, within the
+time-to-live of the original request, rather than hitting the LDAP server.</p>
+<p>The <strong>Cache Time-To-Live</strong> is related to each single request. After a cache
+entry expires there is no automatic trigger for re-populating the information,
+as the cache is populated only by new requests, for example by opening the
+User administration page, or searching in a sharing dialog.</p>
+<p>There is one trigger which is automatically triggered by a certain background
+job which keeps the <tt class="docutils literal"><span class="pre">user-group-mappings</span></tt> up-to-date, and always in cache.</p>
+<p>Under normal circumstances, all users are never loaded at the same time.
+Typically the loading of users happens while page results are generated, in
+steps of 30 until the limit is reached or no results are left. For this to
+work on an oC-Server and LDAP-Server, <strong>Paged Results</strong> must be supported,
+which presumes PHP >= 5.4.</p>
+<p>ownCloud remembers which user belongs to which LDAP-configuration. That means
+each request will always be directed to the right server unless a user is
+defunct, for example due to a server migration or unreachable server. In this
+case the other servers will also receive the request.</p>
+</div>
+<div class="section" id="handling-with-backup-server">
+<h2>Handling with Backup Server<a class="headerlink" href="#handling-with-backup-server" title="Permalink to this headline">¶</a></h2>
+<p>When ownCloud is not able to contact the main LDAP server, ownCloud assumes it
+is offline and will not try to connect again for the time specified in <strong>Cache
+Time-To-Live</strong>. If you have a backup server configured ownCloud will connect to
+instead. When you have a scheduled downtime, check <strong>Disable Main Server</strong> to
+avoid unnecessary connection attempts.</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/contents.html
index 522db3a,0000000..a4986ab
mode 100644,000000..100644
--- a/core/doc/admin/release/contents.html
+++ b/core/doc/admin/release/contents.html
@@@ -1,566 -1,0 +1,569 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>ownCloud documentation contents — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <script type="text/javascript" src="_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="index.html" />
+ <link rel="next" title="Introduction" href="index.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="#">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="#">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="index.html">Introduction</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="installation/index.html">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="configuration/index.html">Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="owncloud-documentation-contents">
+<span id="contents"></span><h1>ownCloud documentation contents<a class="headerlink" href="#owncloud-documentation-contents" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="index.html">Introduction</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="index.html#target-audience">Target Audience</a></li>
- <li class="toctree-l2"><a class="reference internal" href="index.html#owncloud-videos">ownCloud Videos</a></li>
++<li class="toctree-l2"><a class="reference internal" href="index.html#owncloud-videos-and-blogs">ownCloud Videos and Blogs</a></li>
+<li class="toctree-l2"><a class="reference internal" href="index.html#document-structure">Document Structure</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="index.html#installation">Installation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="index.html#configuration">Configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="index.html#maintenance">Maintenance</a></li>
+<li class="toctree-l3"><a class="reference internal" href="index.html#issues">Issues</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="videos.html">ownCloud Videos</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="videos.html#server-to-server-sharing-on-owncloud-7">Server to Server Sharing on ownCloud 7</a></li>
+<li class="toctree-l2"><a class="reference internal" href="videos.html#introducing-owncloud-7-enterprise-edition">Introducing ownCloud 7 Enterprise Edition</a></li>
+<li class="toctree-l2"><a class="reference internal" href="videos.html#owncloud-for-enterprise-file-sync-and-share">ownCloud for Enterprise File Sync and Share</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="whats_new_admin.html">What’s New for Admins in ownCloud 7</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="whats_new_admin.html#new-user-management">New User Management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="whats_new_admin.html#external-storage">External Storage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="whats_new_admin.html#object-stores-as-primary-storage">Object Stores as Primary Storage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="whats_new_admin.html#server-to-server-sharing">Server to Server Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="whats_new_admin.html#sharepoint-integration-enterprise-edition-only">SharePoint Integration (Enterprise Edition only)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="whats_new_admin.html#windows-network-drive-integration-enterprise-edition-only">Windows Network Drive Integration (Enterprise Edition only)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="whats_new_admin.html#sharing">Sharing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="whats_new_admin.html#email-configuration-wizard">Email Configuration Wizard</a></li>
+<li class="toctree-l2"><a class="reference internal" href="whats_new_admin.html#editable-email-templates">Editable Email Templates</a></li>
+<li class="toctree-l2"><a class="reference internal" href="whats_new_admin.html#active-directory-and-ldap-enhancements">Active Directory and LDAP Enhancements</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="release_notes.html">ownCloud 7.0 Release Notes</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="release_notes.html#recommended-setup-for-running-owncloud">Recommended Setup for Running ownCloud</a></li>
+<li class="toctree-l2"><a class="reference internal" href="release_notes.html#supported-platforms">Supported Platforms</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#manual-ldap-port-configuration">Manual LDAP Port Configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#ldap-search-performance-improved">LDAP Search Performance Improved</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#protecting-owncloud-on-iis-from-data-loss">Protecting ownCloud on IIS from Data Loss</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#antivirus-app-modes">Antivirus App Modes</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#enable-only-for-specific-groups-fails">“Enable Only for Specific Groups” Fails</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#changes-to-file-previews">Changes to File Previews</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#gb-limit-on-sftp-transfers">4GB Limit on SFTP Transfers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#not-enough-space-available-on-file-upload">“Not Enough Space Available” on File Upload</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#no-more-expiration-date-on-local-shares">No More Expiration Date On Local Shares</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#zero-quota-not-read-only">Zero Quota Not Read-Only</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="release_notes.html#enterprise-7-only">Enterprise 7 Only</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#no-federated-cloud-sharing-with-shibboleth">No Federated Cloud Sharing with Shibboleth</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#windows-network-drive">Windows Network Drive</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#sharepoint-drive-ssl">Sharepoint Drive SSL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#shibboleth-and-webdav-incompatible">Shibboleth and WebDAV Incompatible</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#no-sqlite">No SQLite</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#no-app-store">No App Store</a></li>
+<li class="toctree-l3"><a class="reference internal" href="release_notes.html#ldap-home-connector-linux-only">LDAP Home Connector Linux Only</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="installation/index.html">Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="installation/linux_installation.html">Preferred Linux Installation Method</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="installation/linux_installation.html#supported-distribution-packages">Supported Distribution Packages</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/linux_installation.html#additional-installation-guides-and-notes">Additional Installation Guides and Notes</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="installation/appliance_installation.html">ownCloud Appliances</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="installation/appliance_installation.html#software-appliances">Software Appliances</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/appliance_installation.html#owncloud-on-hardware-appliances">ownCloud on Hardware Appliances</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="installation/apps_management_installation.html">Installing and Managing Apps</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="installation/apps_management_installation.html#viewing-enabled-apps">Viewing Enabled Apps</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/apps_management_installation.html#managing-apps">Managing Apps</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/apps_management_installation.html#adding-third-party-apps">Adding Third Party Apps</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/apps_management_installation.html#setting-app-parameters">Setting App Parameters</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/apps_management_installation.html#using-custom-app-directories">Using Custom App Directories</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/apps_management_installation.html#using-your-own-appstore">Using Your Own Appstore</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="installation/hiawatha_configuration.html">Hiawatha Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation/installation_wizard.html">Installation Wizard</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="installation/installation_wizard.html#required-settings">Required Settings</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/installation_wizard.html#storage-database">Storage & Database</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/installation_wizard.html#database-choice">Database Choice</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/installation_wizard.html#finish-installation">Finish Installation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/installation_wizard.html#setting-strong-directory-permissions">Setting Strong Directory Permissions</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/installation_wizard.html#trusted-domains">Trusted Domains</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="installation/lighttpd_configuration.html">Lighttpd Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation/macos_installation.html">Mac OS X</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation/nginx_configuration.html">Nginx Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation/others_installation.html">Other Installation Methods</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="installation/others_installation.html#pagekite-configuration">PageKite Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="installation/source_installation.html">Manual Installation on Linux</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="installation/source_installation.html#prerequisites">Prerequisites</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/source_installation.html#example-installation-on-ubuntu-14-04-lts-server">Example installation on Ubuntu 14.04 LTS Server</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/source_installation.html#installation-wizard">Installation Wizard</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/source_installation.html#setting-strong-directory-permissions">Setting Strong Directory Permissions</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/source_installation.html#selinux">SELinux</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/source_installation.html#configuration-notes-to-php-ini-files">Configuration notes to php.ini files</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/source_installation.html#apache-web-server-configuration">Apache Web Server Configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/source_installation.html#enabling-ssl">Enabling SSL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/source_installation.html#configuring-owncloud">Configuring ownCloud</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/source_installation.html#other-web-servers">Other Web Servers</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="installation/ucs_installation.html">Univention Corporate Server</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="installation/ucs_installation.html#pre-configuration">Pre configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/ucs_installation.html#installation">Installation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/ucs_installation.html#postconfiguration-optional">Postconfiguration (optional)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/ucs_installation.html#using-owncloud">Using ownCloud</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="installation/windows_installation.html">Windows 7 and Windows Server 2008</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="installation/windows_installation.html#activate-iis-with-cgi-support">Activate IIS with CGI Support</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/windows_installation.html#installing-php">Installing PHP</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/windows_installation.html#installing-mysql">Installing MySQL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/windows_installation.html#installing-owncloud">Installing ownCloud</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/windows_installation.html#ensure-proper-http-verb-handling">Ensure Proper HTTP-Verb Handling</a></li>
+<li class="toctree-l3"><a class="reference internal" href="installation/windows_installation.html#configuring-owncloud-php-and-iis-for-large-file-uploads">Configuring ownCloud, PHP and IIS for Large File Uploads</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="installation/yaws_configuration.html">Yaws Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation/selinux_configuration.html">SELinux Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="installation/selinux_configuration.html#allow-access-to-a-remote-database">Allow access to a remote database</a></li>
++<li class="toctree-l3"><a class="reference internal" href="installation/selinux_configuration.html#allow-access-to-ldap-server">Allow access to LDAP server</a></li>
++<li class="toctree-l3"><a class="reference internal" href="installation/selinux_configuration.html#allow-access-to-remote-network">Allow access to remote network</a></li>
++<li class="toctree-l3"><a class="reference internal" href="installation/selinux_configuration.html#allow-access-to-smtp-sendmail">Allow access to SMTP/sendmail</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="configuration/index.html">Configuration</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="configuration/activity_configuration.html">Configuring the Activity App</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/activity_configuration.html#enabling-the-activity-app">Enabling the Activity App</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/activity_configuration.html#configuring-your-owncloud-for-the-activity-app">Configuring your ownCloud for the Activity App</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/antivirus_configuration.html">Configuring the ClamAV Antivirus Scanner</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/antivirus_configuration.html#installing-clamav">Installing ClamAV</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/antivirus_configuration.html#enabling-the-antivirus-app-for-files">Enabling the Antivirus App for Files</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/antivirus_configuration.html#configuring-clamav-on-owncloud">Configuring ClamAV on ownCloud</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/automatic_configuration.html">Automatic Configuration Setup</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/automatic_configuration.html#parameters">Parameters</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/automatic_configuration.html#automatic-configurations-examples">Automatic Configurations Examples</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/background_jobs_configuration.html">Defining Background Jobs</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/background_jobs_configuration.html#parameters">Parameters</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/background_jobs_configuration.html#cron-jobs">Cron Jobs</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/big_file_upload_configuration.html">Uploading big files > 512MB (as set by default)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/big_file_upload_configuration.html#system-configuration">System Configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/big_file_upload_configuration.html#configuring-your-webserver">Configuring Your Webserver</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/big_file_upload_configuration.html#configuring-php">Configuring PHP</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/collaborative_documents_configuration.html">Configuring the Collaborative Documents App</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/collaborative_documents_configuration.html#enabling-the-documents-app">Enabling the Documents App</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/collaborative_documents_configuration.html#enabling-and-testing-ms-word-support">Enabling and testing MS Word support</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/config_sample_php_parameters.html">Config.php Parameters</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#default-parameters">Default Parameters</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#default-config-php-examples">Default config.php Examples</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#user-experience">User Experience</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#mail-parameters">Mail Parameters</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#proxy-configurations">Proxy Configurations</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#deleted-items-trash-bin">Deleted Items (trash bin)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#owncloud-verifications">ownCloud Verifications</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#logging">Logging</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#alternate-code-locations">Alternate Code Locations</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#apps">Apps</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#previews">Previews</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#ldap">LDAP</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#maintenance">Maintenance</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#ssl">SSL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#miscellaneous">Miscellaneous</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/config_sample_php_parameters.html#app-config-options">App config options</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/custom_client_configuration.html">Custom Client Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/custom_client_configuration.html#parameters">Parameters</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/database_configuration.html">Database Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/database_configuration.html#requirements">Requirements</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/database_configuration.html#parameters">Parameters</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/database_configuration.html#troubleshooting">Troubleshooting</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/email_configuration.html">Email Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/email_configuration.html#configuring-an-smtp-server">Configuring an SMTP Server</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/email_configuration.html#configuring-php-and-sendmail">Configuring PHP and Sendmail</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/email_configuration.html#using-email-templates">Using Email Templates</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/email_configuration.html#setting-mail-server-parameters-in-config-php">Setting Mail Server Parameters in config.php</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/email_configuration.html#send-a-test-email">Send a Test Email</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/email_configuration.html#troubleshooting">Troubleshooting</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/email_configuration.html#enabling-debug-mode">Enabling Debug Mode</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/encryption_configuration.html">Encryption Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/encryption_configuration.html#enabling-the-encryption-app">Enabling the Encryption App</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/encryption_configuration.html#sharing-encrypted-files">Sharing Encrypted Files</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/encryption_configuration.html#decrypting-encrypted-files">Decrypting Encrypted Files</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/encryption_configuration.html#enabling-a-file-recovery-key">Enabling a File Recovery Key</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/encryption_configuration.html#files-not-encrypted">Files Not Encrypted</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/encryption_configuration.html#ldap-and-other-external-user-back-ends">LDAP and Other External User Back-ends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/encryption_configuration.html#missing-requirements-message-on-windows-servers">“Missing requirements” Message on Windows Servers</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/external_storage_configuration_gui.html">Configuring External Storage (GUI)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#supported-mounts">Supported mounts</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#enabling-external-storage-support">Enabling External Storage Support</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#using-self-signed-certificates">Using self-signed certificates</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#adding-files-to-external-storages">Adding files to external storages</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#local-storage">Local Storage</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#amazon-s3">Amazon S3</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#dropbox">Dropbox</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#ftp-ftps-sftp">FTP/FTPS/SFTP</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#google-drive">Google Drive</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#smb-cifs">SMB/CIFS</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#smb-cifs-using-oc-login">SMB/CIFS using OC login</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#owncloud-and-webdav">ownCloud and WebDAV</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#openstack-object-storage">OpenStack Object Storage</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration_gui.html#configuration-file">Configuration File</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/external_storage_configuration.html">Configuring External Storage (Configuration File)</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration.html#using-self-signed-certificates">Using self-signed certificates</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration.html#adding-files-to-external-storages">Adding files to external storages</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration.html#example">Example</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration.html#priorities">Priorities</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration.html#backends">Backends</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/external_storage_configuration.html#external-storage-password-management">External Storage Password Management</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/external_sites.html">Linking External Sites</a></li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/file_sharing_configuration.html">File Sharing</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/file_sharing_configuration.html#creating-persistent-file-shares">Creating Persistent File Shares</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/files_locking_enabling.html">Files Locking App Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/harden_server.html">Hardening and Security Guidance</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/harden_server.html#limit-on-password-length">Limit on Password Length</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/harden_server.html#operating-system">Operating system</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/harden_server.html#deployment">Deployment</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/harden_server.html#use-https">Use HTTPS</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/harden_server.html#use-a-dedicated-domain-for-owncloud">Use a dedicated domain for ownCloud</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/harden_server.html#serve-security-related-headers-by-the-web-server">Serve security related Headers by the web server</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/js_css_asset_management_configuration.html">JavaScript and CSS Asset Management</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/js_css_asset_management_configuration.html#parameters">Parameters</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/knowledgebase_configuration.html">Knowledge Base Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/knowledgebase_configuration.html#parameters">Parameters</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/language_configuration.html">Language Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/language_configuration.html#parameters">Parameters</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/logging_configuration.html">Logging Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/logging_configuration.html#parameters">Parameters</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/occ_command.html">Using the occ Command</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/occ_command.html#maintenance-commands">Maintenance Commands</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/occ_command.html#user-commands">User Commands</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/occ_command.html#apps-commands">Apps Commands</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/occ_command.html#upgrade-command">Upgrade Command</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/occ_command.html#database-conversion">Database Conversion</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/occ_command.html#ldap-commands">LDAP Commands</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/occ_command.html#file-scanning">File Scanning</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/performance_tips.html">Performance Tips</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/performance_tips.html#ssl-encryption-app">SSL / Encryption App</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/performance_tips.html#opcache-extension">OPcache Extension</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/performance_tips.html#object-caching">Object Caching</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/performance_tips.html#enable-the-spdy-protocol">Enable the SPDY protocol</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/performance_tips.html#serving-static-files-via-web-server">Serving static files via web server</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/performance_tips.html#using-cron-to-perform-background-jobs">Using cron to perform background jobs</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/performance_tips.html#using-mysql-instead-of-sqlite">Using MySQL instead of SQLite</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/performance_tips.html#improve-slow-performance-with-mysql-on-windows">Improve slow performance with MySQL on Windows</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/performance_tips.html#nginx-caching-owncloud-gallery-thumbnails-with-fastcgi-cache-purge">Nginx: caching ownCloud gallery thumbnails with fastcgi_cache_purge</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/previews_configuration.html">Previews Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/previews_configuration.html#parameters">Parameters</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/reverse_proxy_configuration.html">Reverse Proxy Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/reverse_proxy_configuration.html#parameters">Parameters</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/reverse_proxy_configuration.html#example">Example</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/search_configuration.html">Enabling Full-Text Search</a></li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/server_to_server_configuration.html">Configuring Server-to-Server Sharing</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/server_to_server_configuration.html#notes">Notes</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/serving_static_files_configuration.html">Serving Static Files for Better Performance</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/serving_static_files_configuration.html#apache2-x-sendfile">Apache2 (X-Sendfile)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/serving_static_files_configuration.html#lighttpd-x-sendfile2">LigHTTPd (X-Sendfile2)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/serving_static_files_configuration.html#nginx-x-accel-redirect">Nginx (X-Accel-Redirect)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/serving_static_files_configuration.html#how-to-check-if-it-s-working">How to check if it’s working?</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/thirdparty_php_configuration.html">Using Third Party PHP Components</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/thirdparty_php_configuration.html#managing-third-party-parameters">Managing Third Party Parameters</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/user_auth_ftp_smb_imap.html">User Authentication with IMAP, SMB, and FTP</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ftp_smb_imap.html#imap">IMAP</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ftp_smb_imap.html#smb">SMB</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ftp_smb_imap.html#ftp">FTP</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/user_auth_ldap.html">User Authentication with LDAP</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#configuration">Configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#advanced-settings">Advanced Settings</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#expert-settings">Expert Settings</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#testing-the-configuration">Testing the configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#owncloud-avatar-integration">ownCloud Avatar integration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#troubleshooting-tips-and-tricks">Troubleshooting, Tips and Tricks</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#ssl-certificate-verification-ldaps-tls">SSL Certificate Verification (LDAPS, TLS)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#microsoft-active-directory">Microsoft Active Directory</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#duplicating-server-configurations">Duplicating Server Configurations</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#owncloud-ldap-internals">ownCloud LDAP Internals</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#user-and-group-mapping">User and Group Mapping</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#caching">Caching</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap.html#handling-with-backup-server">Handling with Backup Server</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/user_auth_ldap_cleanup.html">LDAP User Cleanup</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_auth_ldap_cleanup.html#deleting-local-owncloud-users">Deleting Local ownCloud Users</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/user_configuration.html">User Management</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_configuration.html#creating-a-new-user">Creating a New User</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_configuration.html#reset-a-user-s-password">Reset a User’s Password</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_configuration.html#renaming-a-user">Renaming a User</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_configuration.html#granting-administrator-privileges-to-a-user">Granting Administrator Privileges to a User</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_configuration.html#managing-groups">Managing Groups</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_configuration.html#setting-storage-quotas">Setting Storage Quotas</a></li>
+<li class="toctree-l3"><a class="reference internal" href="configuration/user_configuration.html#deleting-users">Deleting users</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="configuration/reset_admin_password.html">Resetting a Lost Admin Password</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="maintenance/index.html">Maintenance</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="maintenance/enable_maintenance.html">Maintenance Mode Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="maintenance/backup.html">Backing up ownCloud</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/backup.html#backup-folders">Backup Folders</a></li>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/backup.html#backup-database">Backup Database</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="maintenance/update.html">Updating ownCloud with the Updater App</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/update.html#setting-strong-permissions">Setting Strong Permissions</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="maintenance/upgrade.html">Upgrading Your ownCloud Server</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/upgrade.html#preferred-upgrade-method">Preferred Upgrade Method</a></li>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/upgrade.html#upgrading-with-your-linux-package-manager">Upgrading With Your Linux Package Manager</a></li>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/upgrade.html#manual-upgrade-procedure">Manual Upgrade Procedure</a></li>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/upgrade.html#setting-strong-permissions">Setting Strong Permissions</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="maintenance/restore.html">Restoring ownCloud</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/restore.html#restore-folders">Restore Folders</a></li>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/restore.html#restore-database">Restore Database</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="maintenance/migrating.html">Migrating ownCloud Installations</a></li>
+<li class="toctree-l2"><a class="reference internal" href="maintenance/convert_db.html">Converting From SQLite to MySQL, MariaDB, or PostgreSQL</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/convert_db.html#running-the-conversion">Running the Conversion</a></li>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/convert_db.html#conversion-options">Conversion Options</a></li>
+<li class="toctree-l3"><a class="reference internal" href="maintenance/convert_db.html#unconvertible-tables">Unconvertible Tables</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="issues/index.html">Issues and Troubleshooting</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="issues/index.html#bugs">Bugs</a></li>
+<li class="toctree-l2"><a class="reference internal" href="issues/index.html#general-troubleshooting">General Troubleshooting</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="issues/index.html#debugging-the-issue">Debugging the issue</a></li>
+<li class="toctree-l3"><a class="reference internal" href="issues/index.html#debugging-sync-issues">Debugging Sync-Issues</a></li>
+<li class="toctree-l3"><a class="reference internal" href="issues/index.html#common-problems-error-messages">Common problems / error messages</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="issues/index.html#troubleshooting-webserver-and-php-problems">Troubleshooting Webserver and PHP problems</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="issues/index.html#logfiles">Logfiles</a></li>
+<li class="toctree-l3"><a class="reference internal" href="issues/index.html#webserver-and-php-modules">Webserver and PHP modules</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="issues/index.html#troubleshooting-webdav">Troubleshooting WebDAV</a></li>
+<li class="toctree-l2"><a class="reference internal" href="issues/index.html#troubleshooting-contacts-calendar">Troubleshooting Contacts & Calendar</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="issues/index.html#service-discovery">Service discovery</a></li>
+<li class="toctree-l3"><a class="reference internal" href="issues/index.html#apple-ios">Apple iOS</a></li>
+<li class="toctree-l3"><a class="reference internal" href="issues/index.html#unable-to-update-contacts-or-events">Unable to update Contacts or Events</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/index.html
index 7e18fc7,0000000..e6c5781
mode 100644,000000..100644
--- a/core/doc/admin/release/index.html
+++ b/core/doc/admin/release/index.html
@@@ -1,274 -1,0 +1,276 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Introduction — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <script type="text/javascript" src="_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="#" />
+ <link rel="next" title="ownCloud Videos" href="videos.html" />
+ <link rel="prev" title="ownCloud documentation contents" href="contents.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="contents.html">Table of Contents</a></li>
+ </ul>
+ <ul class="current">
+<li class="toctree-l1 current"><a class="current reference internal" href="">Introduction</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#target-audience">Target Audience</a></li>
- <li class="toctree-l2"><a class="reference internal" href="#owncloud-videos">ownCloud Videos</a></li>
++<li class="toctree-l2"><a class="reference internal" href="#owncloud-videos-and-blogs">ownCloud Videos and Blogs</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#document-structure">Document Structure</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#installation">Installation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#configuration">Configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#maintenance">Maintenance</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#issues">Issues</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="installation/index.html">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="configuration/index.html">Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="introduction">
+<h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
+<p>Welcome to the ownCloud Administrator Guide. This guide describes
+administrator tasks for ownCloud; a flexible, open source, file synchronization
+and sharing solution. ownCloud is comprised of a server running on either a
+Linux or Microsoft Windows platform as well as client applications for Microsoft
+Windows, Mac OS X and Linux (Desktop Client) and mobile clients for both the
+Android and Apple iOS operating system.</p>
+<div class="section" id="target-audience">
+<h2>Target Audience<a class="headerlink" href="#target-audience" title="Permalink to this headline">¶</a></h2>
+<p>This guide is targeted towards people who want to install, administer, and
+optimize the ownCloud server. If you want to learn more about the ownCloud Web
+user interface or how to install clients on the server, refer to the following:</p>
+<ul class="simple">
+<li><a class="reference external" href="http://doc.owncloud.com/">User Manual</a></li>
+<li><a class="reference external" href="http://doc.owncloud.com/">Desktop Client Manual</a></li>
+</ul>
+</div>
- <div class="section" id="owncloud-videos">
- <h2>ownCloud Videos<a class="headerlink" href="#owncloud-videos" title="Permalink to this headline">¶</a></h2>
- <p>See <a class="reference internal" href="videos.html"><em>ownCloud Videos</em></a>
- for howtos, demos, news, and Webinars for both the
- Community and Enterprise versions of ownCloud.</p>
++<div class="section" id="owncloud-videos-and-blogs">
++<h2>ownCloud Videos and Blogs<a class="headerlink" href="#owncloud-videos-and-blogs" title="Permalink to this headline">¶</a></h2>
++<p>See the <a class="reference external" href="https://www.youtube.com/channel/UC_4gez4lsWqciH-otOlXo5w">official ownCloud channel</a> and <a class="reference external" href="https://www.youtube.com/channel/UCA8Ehsdu3KaxSz5KOcCgHbw">ownClouders
++community channel</a>
++on YouTube for tutorials, overviews, and conference videos.</p>
++<p>Visit <a class="reference external" href="https://owncloud.org/news/">ownCloud Planet</a> for news and developer
++blogs.</p>
+</div>
+<div class="section" id="document-structure">
+<h2>Document Structure<a class="headerlink" href="#document-structure" title="Permalink to this headline">¶</a></h2>
+<p>This document is broken out into three major sections – Installation, Configuration, and
+Maintenance. The Issues sections has instructions for reporting bugs. The following
+sections provide detailed information about various tasks associated with each of these
+sections.</p>
+<div class="section" id="installation">
+<h3>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h3>
+<p>This section provides detailed instructions on how to install ownCloud in
+different scenarios. It contains the following topics:</p>
+<ul class="simple">
+<li><a class="reference internal" href="installation/appliance_installation.html"><em>ownCloud Appliances</em></a></li>
+<li><a class="reference internal" href="installation/apps_management_installation.html"><em>Installing and Managing Apps</em></a></li>
+<li><a class="reference internal" href="installation/hiawatha_configuration.html"><em>Hiawatha Configuration</em></a></li>
+<li><a class="reference internal" href="installation/installation_wizard.html"><em>Installation Wizard</em></a></li>
+<li><a class="reference internal" href="installation/lighttpd_configuration.html"><em>Lighttpd Configuration</em></a></li>
+<li><a class="reference internal" href="installation/linux_installation.html"><em>Preferred Linux Installation Method</em></a> (recommended)</li>
+<li><a class="reference internal" href="installation/macos_installation.html"><em>Mac OS X</em></a> (not supported)</li>
+<li><a class="reference internal" href="installation/nginx_configuration.html"><em>Nginx Configuration</em></a></li>
+<li><a class="reference internal" href="installation/others_installation.html"><em>Other Installation Methods</em></a></li>
+<li><a class="reference internal" href="installation/source_installation.html"><em>Manual Installation on Linux</em></a></li>
+<li><a class="reference internal" href="installation/ucs_installation.html"><em>Univention Corporate Server</em></a></li>
+<li><a class="reference internal" href="installation/windows_installation.html"><em>Windows 7 and Windows Server 2008</em></a></li>
+<li><a class="reference internal" href="installation/yaws_configuration.html"><em>Yaws Configuration</em></a></li>
+<li><a class="reference internal" href="installation/selinux_configuration.html"><em>SELinux Configuration</em></a></li>
+</ul>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">If you just want to try out ownCloud in a virtual machine, without any
+configuration, refer to <a class="reference internal" href="installation/appliance_installation.html"><em>ownCloud Appliances</em></a>. For your
+convenience, this topic contains ready-to-use images.</p>
+</div>
+</div>
+<div class="section" id="configuration">
+<h3>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h3>
+<p>This section describes how to configure ownCloud and your Web server. It
+contains the following topics:</p>
+<ul class="simple">
+<li><a class="reference internal" href="configuration/antivirus_configuration.html"><em>Configuring the ClamAV Antivirus Scanner</em></a></li>
+<li><a class="reference internal" href="configuration/automatic_configuration.html"><em>Automatic Configuration Setup</em></a></li>
+<li><a class="reference internal" href="configuration/background_jobs_configuration.html"><em>Defining Background Jobs</em></a></li>
+<li><a class="reference internal" href="configuration/big_file_upload_configuration.html"><em>Uploading big files > 512MB (as set by default)</em></a></li>
+<li><a class="reference internal" href="configuration/collaborative_documents_configuration.html"><em>Configuring the Collaborative Documents App</em></a></li>
+<li><a class="reference internal" href="configuration/config_sample_php_parameters.html"><em>Config.php Parameters</em></a></li>
+<li><a class="reference internal" href="configuration/custom_client_configuration.html"><em>Custom Client Configuration</em></a></li>
+<li><a class="reference internal" href="configuration/database_configuration.html"><em>Database Configuration</em></a></li>
+<li><a class="reference internal" href="configuration/email_configuration.html"><em>Email Configuration</em></a></li>
+<li><a class="reference internal" href="configuration/external_storage_configuration_gui.html"><em>Configuring External Storage (GUI)</em></a></li>
+<li><a class="reference internal" href="configuration/external_storage_configuration.html"><em>Configuring External Storage (Configuration File)</em></a></li>
+<li><a class="reference internal" href="configuration/file_sharing_configuration.html"><em>File Sharing</em></a></li>
+<li><a class="reference internal" href="configuration/files_locking_enabling.html"><em>Files Locking App Configuration</em></a></li>
+<li><a class="reference internal" href="configuration/js_css_asset_management_configuration.html"><em>JavaScript and CSS Asset Management</em></a></li>
+<li><a class="reference internal" href="configuration/knowledgebase_configuration.html"><em>Knowledge Base Configuration</em></a></li>
+<li><a class="reference internal" href="configuration/language_configuration.html"><em>Language Configuration</em></a></li>
+<li><a class="reference internal" href="configuration/logging_configuration.html"><em>Logging Configuration</em></a></li>
+<li><a class="reference internal" href="configuration/previews_configuration.html"><em>Previews Configuration</em></a></li>
+<li><a class="reference internal" href="configuration/reverse_proxy_configuration.html"><em>Reverse Proxy Configuration</em></a></li>
+<li><a class="reference internal" href="configuration/search_configuration.html"><em>Enabling Full-Text Search</em></a></li>
+<li><a class="reference internal" href="configuration/encryption_configuration.html"><em>Encryption Configuration</em></a></li>
+<li><a class="reference internal" href="configuration/server_to_server_configuration.html"><em>Configuring Server-to-Server Sharing</em></a></li>
+<li><a class="reference internal" href="configuration/serving_static_files_configuration.html"><em>Serving Static Files for Better Performance</em></a></li>
+<li><a class="reference internal" href="configuration/thirdparty_php_configuration.html"><em>Using Third Party PHP Components</em></a></li>
+<li><a class="reference internal" href="configuration/user_auth_ftp_smb_imap.html"><em>User Authentication with IMAP, SMB, and FTP</em></a></li>
+<li><a class="reference internal" href="configuration/user_auth_ldap.html"><em>User Authentication with LDAP</em></a></li>
+<li><a class="reference internal" href="configuration/user_auth_ldap_cleanup.html"><em>LDAP User Cleanup</em></a></li>
+<li><a class="reference internal" href="configuration/user_configuration.html"><em>User Management</em></a></li>
+<li><a class="reference internal" href="configuration/reset_admin_password.html"><em>Resetting a Lost Admin Password</em></a></li>
+</ul>
+</div>
+<div class="section" id="maintenance">
+<h3>Maintenance<a class="headerlink" href="#maintenance" title="Permalink to this headline">¶</a></h3>
+<p>This sections describes the maintenance tasks associated with the ownCloud
+server (for example, updating or migrating to a new version of ownCloud). It
+contains the following topics:</p>
+<ul class="simple">
+<li><a class="reference internal" href="maintenance/backup.html"><em>Backing up ownCloud</em></a></li>
+<li><a class="reference internal" href="maintenance/convert_db.html"><em>Converting From SQLite to MySQL, MariaDB, or PostgreSQL</em></a></li>
+<li><a class="reference internal" href="maintenance/enable_maintenance.html"><em>Maintenance Mode Configuration</em></a></li>
+<li><a class="reference internal" href="maintenance/migrating.html"><em>Migrating ownCloud Installations</em></a></li>
+<li><a class="reference internal" href="maintenance/restore.html"><em>Restoring ownCloud</em></a></li>
+<li><a class="reference internal" href="maintenance/update.html"><em>Updating ownCloud with the Updater App</em></a></li>
+<li><a class="reference internal" href="maintenance/upgrade.html"><em>Upgrading Your ownCloud Server</em></a></li>
+</ul>
+</div>
+<div class="section" id="issues">
+<h3>Issues<a class="headerlink" href="#issues" title="Permalink to this headline">¶</a></h3>
+<p>What to do when you have problems, and where to report bugs.</p>
+<ul class="simple">
+<li><a class="reference internal" href="issues/index.html"><em>Issues and Troubleshooting</em></a></li>
+</ul>
+</div>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/installation/index.html
index 2a3ca5e,0000000..dc3a1f4
mode 100644,000000..100644
--- a/core/doc/admin/release/installation/index.html
+++ b/core/doc/admin/release/installation/index.html
@@@ -1,239 -1,0 +1,242 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Installation — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="next" title="Preferred Linux Installation Method" href="linux_installation.html" />
+ <link rel="prev" title="ownCloud 7.0 Release Notes" href="../release_notes.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1 current"><a class="current reference internal" href="">Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="linux_installation.html">Preferred Linux Installation Method</a></li>
+<li class="toctree-l2"><a class="reference internal" href="appliance_installation.html">ownCloud Appliances</a></li>
+<li class="toctree-l2"><a class="reference internal" href="apps_management_installation.html">Installing and Managing Apps</a></li>
+<li class="toctree-l2"><a class="reference internal" href="hiawatha_configuration.html">Hiawatha Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation_wizard.html">Installation Wizard</a></li>
+<li class="toctree-l2"><a class="reference internal" href="lighttpd_configuration.html">Lighttpd Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="macos_installation.html">Mac OS X</a></li>
+<li class="toctree-l2"><a class="reference internal" href="nginx_configuration.html">Nginx Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="others_installation.html">Other Installation Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html">Manual Installation on Linux</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ucs_installation.html">Univention Corporate Server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="windows_installation.html">Windows 7 and Windows Server 2008</a></li>
+<li class="toctree-l2"><a class="reference internal" href="yaws_configuration.html">Yaws Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="selinux_configuration.html">SELinux Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../configuration/index.html">Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="installation">
+<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="linux_installation.html">Preferred Linux Installation Method</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="linux_installation.html#supported-distribution-packages">Supported Distribution Packages</a></li>
+<li class="toctree-l2"><a class="reference internal" href="linux_installation.html#additional-installation-guides-and-notes">Additional Installation Guides and Notes</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="appliance_installation.html">ownCloud Appliances</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="appliance_installation.html#software-appliances">Software Appliances</a></li>
+<li class="toctree-l2"><a class="reference internal" href="appliance_installation.html#owncloud-on-hardware-appliances">ownCloud on Hardware Appliances</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="apps_management_installation.html">Installing and Managing Apps</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="apps_management_installation.html#viewing-enabled-apps">Viewing Enabled Apps</a></li>
+<li class="toctree-l2"><a class="reference internal" href="apps_management_installation.html#managing-apps">Managing Apps</a></li>
+<li class="toctree-l2"><a class="reference internal" href="apps_management_installation.html#adding-third-party-apps">Adding Third Party Apps</a></li>
+<li class="toctree-l2"><a class="reference internal" href="apps_management_installation.html#setting-app-parameters">Setting App Parameters</a></li>
+<li class="toctree-l2"><a class="reference internal" href="apps_management_installation.html#using-custom-app-directories">Using Custom App Directories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="apps_management_installation.html#using-your-own-appstore">Using Your Own Appstore</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="hiawatha_configuration.html">Hiawatha Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="installation_wizard.html">Installation Wizard</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="installation_wizard.html#required-settings">Required Settings</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation_wizard.html#storage-database">Storage & Database</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation_wizard.html#database-choice">Database Choice</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation_wizard.html#finish-installation">Finish Installation</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation_wizard.html#setting-strong-directory-permissions">Setting Strong Directory Permissions</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation_wizard.html#trusted-domains">Trusted Domains</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="lighttpd_configuration.html">Lighttpd Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="macos_installation.html">Mac OS X</a></li>
+<li class="toctree-l1"><a class="reference internal" href="nginx_configuration.html">Nginx Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="others_installation.html">Other Installation Methods</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="others_installation.html#pagekite-configuration">PageKite Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="source_installation.html">Manual Installation on Linux</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html#prerequisites">Prerequisites</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html#example-installation-on-ubuntu-14-04-lts-server">Example installation on Ubuntu 14.04 LTS Server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html#installation-wizard">Installation Wizard</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html#setting-strong-directory-permissions">Setting Strong Directory Permissions</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html#selinux">SELinux</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html#configuration-notes-to-php-ini-files">Configuration notes to php.ini files</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html#apache-web-server-configuration">Apache Web Server Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html#enabling-ssl">Enabling SSL</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html#configuring-owncloud">Configuring ownCloud</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html#other-web-servers">Other Web Servers</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="ucs_installation.html">Univention Corporate Server</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="ucs_installation.html#pre-configuration">Pre configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ucs_installation.html#installation">Installation</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ucs_installation.html#postconfiguration-optional">Postconfiguration (optional)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ucs_installation.html#using-owncloud">Using ownCloud</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="windows_installation.html">Windows 7 and Windows Server 2008</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="windows_installation.html#activate-iis-with-cgi-support">Activate IIS with CGI Support</a></li>
+<li class="toctree-l2"><a class="reference internal" href="windows_installation.html#installing-php">Installing PHP</a></li>
+<li class="toctree-l2"><a class="reference internal" href="windows_installation.html#installing-mysql">Installing MySQL</a></li>
+<li class="toctree-l2"><a class="reference internal" href="windows_installation.html#installing-owncloud">Installing ownCloud</a></li>
+<li class="toctree-l2"><a class="reference internal" href="windows_installation.html#ensure-proper-http-verb-handling">Ensure Proper HTTP-Verb Handling</a></li>
+<li class="toctree-l2"><a class="reference internal" href="windows_installation.html#configuring-owncloud-php-and-iis-for-large-file-uploads">Configuring ownCloud, PHP and IIS for Large File Uploads</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="yaws_configuration.html">Yaws Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="selinux_configuration.html">SELinux Configuration</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="selinux_configuration.html#allow-access-to-a-remote-database">Allow access to a remote database</a></li>
++<li class="toctree-l2"><a class="reference internal" href="selinux_configuration.html#allow-access-to-ldap-server">Allow access to LDAP server</a></li>
++<li class="toctree-l2"><a class="reference internal" href="selinux_configuration.html#allow-access-to-remote-network">Allow access to remote network</a></li>
++<li class="toctree-l2"><a class="reference internal" href="selinux_configuration.html#allow-access-to-smtp-sendmail">Allow access to SMTP/sendmail</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/installation/installation_wizard.html
index 4d3c781,0000000..eed137b
mode 100644,000000..100644
--- a/core/doc/admin/release/installation/installation_wizard.html
+++ b/core/doc/admin/release/installation/installation_wizard.html
@@@ -1,346 -1,0 +1,360 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Installation Wizard — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="up" title="Installation" href="index.html" />
+ <link rel="next" title="Lighttpd Configuration" href="lighttpd_configuration.html" />
+ <link rel="prev" title="Hiawatha Configuration" href="hiawatha_configuration.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Installation</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="linux_installation.html">Preferred Linux Installation Method</a></li>
+<li class="toctree-l2"><a class="reference internal" href="appliance_installation.html">ownCloud Appliances</a></li>
+<li class="toctree-l2"><a class="reference internal" href="apps_management_installation.html">Installing and Managing Apps</a></li>
+<li class="toctree-l2"><a class="reference internal" href="hiawatha_configuration.html">Hiawatha Configuration</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Installation Wizard</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#required-settings">Required Settings</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#storage-database">Storage & Database</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#database-choice">Database Choice</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#finish-installation">Finish Installation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#setting-strong-directory-permissions">Setting Strong Directory Permissions</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#trusted-domains">Trusted Domains</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="lighttpd_configuration.html">Lighttpd Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="macos_installation.html">Mac OS X</a></li>
+<li class="toctree-l2"><a class="reference internal" href="nginx_configuration.html">Nginx Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="others_installation.html">Other Installation Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html">Manual Installation on Linux</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ucs_installation.html">Univention Corporate Server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="windows_installation.html">Windows 7 and Windows Server 2008</a></li>
+<li class="toctree-l2"><a class="reference internal" href="yaws_configuration.html">Yaws Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="selinux_configuration.html">SELinux Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../configuration/index.html">Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="installation-wizard">
+<h1>Installation Wizard<a class="headerlink" href="#installation-wizard" title="Permalink to this headline">¶</a></h1>
+<p>When ownCloud prerequisites are fulfilled and all ownCloud files are installed
+on the server, the last step to complete the installation is
+running the Installation Wizard. Open your Web browser to your new ownCloud
+installation.</p>
+<blockquote>
+<div><ul class="simple">
+<li>If you are installing ownCloud on the same machine as you are accessing the
+install wizard from, the URL will be <tt class="docutils literal"><span class="pre">http://localhost/owncloud</span></tt>, or <tt class="docutils literal"><span class="pre">https://localhost/owncloud</span></tt> if you have enabled SSL.</li>
+<li>If you are installing ownCloud on a different machine, you’ll have to access
+it by its hostname or IP address, e.g. <tt class="docutils literal"><span class="pre">http://example.com/owncloud</span></tt>.</li>
+<li>If you are using a self-signed certificate, you will be presented with a
+security warning about the issuer of the certificate not being trusted which
+you can ignore.</li>
+</ul>
+</div></blockquote>
+<ul class="simple">
+<li>You will be presented with the setup screen:</li>
+</ul>
+<a class="reference internal image-reference" href="../_images/install-wizard.png"><img alt="../_images/install-wizard.png" src="../_images/install-wizard.png" style="width: 261.75px; height: 418.5px;" /></a>
+<div class="section" id="required-settings">
+<h2>Required Settings<a class="headerlink" href="#required-settings" title="Permalink to this headline">¶</a></h2>
+<p>Under <tt class="docutils literal"><span class="pre">create</span> <span class="pre">an</span> <span class="pre">admin</span> <span class="pre">account</span></tt> you must enter a username and
+password for the administrative user account. You may choose any username and
+password that you want.</p>
+</div>
+<div class="section" id="storage-database">
+<h2>Storage & Database<a class="headerlink" href="#storage-database" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Click <tt class="docutils literal"><span class="pre">Storage</span> <span class="pre">&</span> <span class="pre">Database</span></tt> to see all of your database options, and to
+optionally change the default data storage directory.</li>
+<li>The database you want to use must already be installed, and you must have a
+database admin user and password.</li>
+<li>Enter any arbitrary name for the Database name. This must be a database that
+does not already exist.</li>
+<li>If you are not using Apache as the web server, it is highly
+recommended to configure the data directory to a location outside of
+the document root. Otherwise all user data is potentially publicly
+visible!</li>
+</ul>
+<a class="reference internal image-reference" href="../_images/install-wizard-advanced.png"><img alt="../_images/install-wizard-advanced.png" src="../_images/install-wizard-advanced.png" style="width: 329.25px; height: 541.5px;" /></a>
+</div>
+<div class="section" id="database-choice">
+<h2>Database Choice<a class="headerlink" href="#database-choice" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>For a guideline on which database system to choose, and on pointers how to
+set them up for being available for PHP/ownCloud, see
+<a class="reference internal" href="../configuration/database_configuration.html"><em>Database Configuration</em></a></li>
+<li>Note that you will only be able to choose among the PHP database connectors
+which are actually installed on the system.</li>
+<li>It is not easily possible to migrate to another database system once you have
+set up your ownCloud to use a specific one. So make sure to carefully
+consider which database system to use.</li>
+<li>When using MySQL/MariaDB or PostgreSQL you have two options regarding the database
+name and user account you specify:<ul>
+<li>You can specify either an admin or the root user, and the name of a database
+which does not yet exist. This lets ownCloud create its own database; it
+will also create a database user account with restricted rights (with the
+same username as you specified for the administrative user, plus an
+<tt class="docutils literal"><span class="pre">oc_</span></tt> prefix) and will use that for all subsequent database access.</li>
+<li>There are restrictions as to what characters a database name may or may
+not contain; see the
+<a class="reference external" href="http://dev.mysql.com/doc/refman/5.5/en/identifiers.html">MySQL Schema Object Names documentation</a> for details);</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="finish-installation">
+<h2>Finish Installation<a class="headerlink" href="#finish-installation" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Once you’ve entered all settings, click “Finish Setup”</li>
+<li>ownCloud will set up your cloud according to the given settings</li>
+<li>When it’s finished, it will log you in as administrative user and present the
+“Welcome to ownCloud” screen.</li>
+</ul>
+</div>
+<div class="section" id="setting-strong-directory-permissions">
+<h2>Setting Strong Directory Permissions<a class="headerlink" href="#setting-strong-directory-permissions" title="Permalink to this headline">¶</a></h2>
+<p>For hardened security we recommend setting the permissions on your ownCloud
+directory as strictly as possible. This should be done immediately after the
+initial installation. Your HTTP user must own the <tt class="docutils literal"><span class="pre">config/</span></tt>, <tt class="docutils literal"><span class="pre">data/</span></tt> and
+<tt class="docutils literal"><span class="pre">apps/</span></tt> directories in your ownCloud directory so that you can configure
+ownCloud, create, modify and delete your data files, and install apps via the
+ownCloud Web interface.</p>
+<p>You can find your HTTP user in your HTTP server configuration files. Or you can
+create a PHP page to find it for you. To do this, create a plain text file with
- a single line in it:</p>
- <blockquote>
- <div><tt class="docutils literal"><span class="pre"><?php</span> <span class="pre">echo</span> <span class="pre">exec('whoami');</span> <span class="pre">?></span></tt></div></blockquote>
++the following lines in it:</p>
++<div class="highlight-php"><div class="highlight"><pre><span class="cp"><?php</span>
++<span class="k">echo</span> <span class="s2">"User: "</span> <span class="o">.</span> <span class="nb">exec</span><span class="p">(</span><span class="s1">'whoami'</span><span class="p">);</span>
++<span class="k">echo</span> <span class="s2">"Group: "</span> <span class="o">.</span> <span class="nb">exec</span><span class="p">(</span><span class="s1">'groups'</span><span class="p">);</span>
++<span class="cp">?></span><span class="x"></span>
++</pre></div>
++</div>
++<p>If the exec php function is disabled (getting a white page with the script above)
++you can also try to use a script like:</p>
++<div class="highlight-php"><div class="highlight"><pre><span class="cp"><?php</span>
++<span class="nv">$processUser</span> <span class="o">=</span> <span class="nb">posix_getpwuid</span><span class="p">(</span><span class="nb">posix_geteuid</span><span class="p">());</span>
++<span class="k">echo</span> <span class="s2">"User: "</span> <span class="o">.</span> <span class="nv">$processUser</span><span class="p">[</span><span class="s1">'name'</span><span class="p">];</span>
++<span class="nv">$processGroup</span> <span class="o">=</span> <span class="nb">posix_getgrgid</span><span class="p">(</span><span class="nv">$processUser</span><span class="p">[</span><span class="s1">'gid'</span><span class="p">]);</span>
++<span class="k">echo</span> <span class="s2">" Group: "</span> <span class="o">.</span> <span class="nv">$processGroup</span><span class="p">[</span><span class="s1">'name'</span><span class="p">];</span>
++<span class="cp">?></span><span class="x"></span>
++</pre></div>
++</div>
+<p>Name it <tt class="docutils literal"><span class="pre">whoami.php</span></tt> and place it in your <tt class="docutils literal"><span class="pre">/var/www/html</span></tt> directory, and
+then open it in a Web browser, for example <tt class="docutils literal"><span class="pre">http://localhost/whoami.php</span></tt>. You
+should see a single line in your browser page with the HTTP user name.</p>
+<ul class="simple">
+<li>The HTTP user and group in Debian/Ubuntu is <tt class="docutils literal"><span class="pre">www-data</span></tt>.</li>
+<li>The HTTP user and group in Fedora/CentOS is <tt class="docutils literal"><span class="pre">apache</span></tt>.</li>
+<li>The HTTP user and group in Arch Linux is <tt class="docutils literal"><span class="pre">http</span></tt>.</li>
+<li>The HTTP user in openSUSE is <tt class="docutils literal"><span class="pre">wwwrun</span></tt>, and the HTTP group is <tt class="docutils literal"><span class="pre">www</span></tt>.</li>
+</ul>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">When using an NFS mount for the data directory, do not change its
+ownership from the default. The simple act of mounting the drive will set
+proper permissions for ownCloud to write to the directory. Changing
+ownership as above could result in some issues if the NFS mount is
+lost.</p>
+</div>
+<p>The easy way to set the correct permissions is to copy and run this script. Replace the <tt class="docutils literal"><span class="pre">ocpath</span></tt> variable with the path to your ownCloud directory, and replace the <tt class="docutils literal"><span class="pre">htuser</span></tt> and <tt class="docutils literal"><span class="pre">htgroup</span></tt> variables with your HTTP user and group:</p>
+<div class="highlight-python"><pre>#!/bin/bash
+ocpath='/var/www/owncloud'
+htuser='www-data'
+htgroup='www-data'
+
+find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
+find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
+
+chown -R root:${htuser} ${ocpath}/
+chown -R ${htuser}:${htgroup} ${ocpath}/apps/
+chown -R ${htuser}:${htgroup} ${ocpath}/config/
+chown -R ${htuser}:${htgroup} ${ocpath}/data/
+chown -R ${htuser}:${htgroup} ${ocpath}/themes/
+
+chown root:${htuser} ${ocpath}/.htaccess
+chown root:${htuser} ${ocpath}/data/.htaccess
+
+chmod 0644 ${ocpath}/.htaccess
+chmod 0644 ${ocpath}/data/.htaccess</pre>
+</div>
+<p>If you have customized your ownCloud installation and your filepaths are
+different than the standard installation, then modify this script accordingly.</p>
+<p>This lists the recommended modes and ownership for your ownCloud directories
+and files:</p>
+<ul class="simple">
+<li>All files should be read-write for the file owner, read-only for the
+group owner, and zero for the world</li>
+<li>All directories should be executable (because directories always need the
+executable bit set), read-write for the directory owner, and read-only for
+the group owner</li>
+<li>The <tt class="file docutils literal"><span class="pre">/</span></tt> directory should be owned by <tt class="docutils literal"><span class="pre">root:[HTTP</span> <span class="pre">group]</span></tt></li>
+<li>The <tt class="file docutils literal"><span class="pre">apps/</span></tt> directory should be owned by <tt class="docutils literal"><span class="pre">[HTTP</span> <span class="pre">user]:[HTTP</span> <span class="pre">group]</span></tt></li>
+<li>The <tt class="file docutils literal"><span class="pre">config/</span></tt> directory should be owned by <tt class="docutils literal"><span class="pre">[HTTP</span> <span class="pre">user]:[HTTP</span> <span class="pre">group]</span></tt></li>
+<li>The <tt class="file docutils literal"><span class="pre">themes/</span></tt> directory should be owned by <tt class="docutils literal"><span class="pre">[HTTP</span> <span class="pre">user]:[HTTP</span> <span class="pre">group]</span></tt></li>
+<li>The <tt class="file docutils literal"><span class="pre">data/</span></tt> directory should be owned by <tt class="docutils literal"><span class="pre">[HTTP</span> <span class="pre">user]:[HTTP</span> <span class="pre">group]</span></tt></li>
+<li>The <tt class="file docutils literal"><span class="pre">[ocpath]/.htaccess</span></tt> file should be owned by <tt class="docutils literal"><span class="pre">root:[HTTP</span> <span class="pre">group]</span></tt></li>
+<li>The <tt class="file docutils literal"><span class="pre">data/.htaccess</span></tt> file should be owned by <tt class="docutils literal"><span class="pre">root:[HTTP</span> <span class="pre">group]</span></tt></li>
+<li>Both <tt class="file docutils literal"><span class="pre">.htaccess</span></tt> files are read-write file owner, read-only group and
+world</li>
+</ul>
+</div>
+<div class="section" id="trusted-domains">
+<h2>Trusted Domains<a class="headerlink" href="#trusted-domains" title="Permalink to this headline">¶</a></h2>
+<p>ownCloud will take the URL used to access the Installation Wizard and insert
+that into the <tt class="docutils literal"><span class="pre">config.php</span></tt> file for the <tt class="docutils literal"><span class="pre">trusted_domains</span></tt> setting.
+All needed domain names of the ownCloud server go into the
+<tt class="docutils literal"><span class="pre">trusted_domains</span></tt> setting. Users will only be able to log into ownCloud when they point their browsers to a domain name listed in the <tt class="docutils literal"><span class="pre">trusted_domains</span></tt> setting. An IPv4 address can be
+specified instead of a domain name. A typical configuration looks like this:</p>
+<div class="highlight-python"><pre>'trusted_domains' =>
+ array (
+ 0 => 'localhost',
+ 1 => 'server1',
+ 2 => '192.168.1.50',
+),</pre>
+</div>
+<p>In the event that a load balancer is in place there will be no issues as long
+as it sends the correct X-Forwarded-Host header.</p>
+<p>The loopback address, <tt class="docutils literal"><span class="pre">127.0.0.1</span></tt>, is whitelisted and
+therefore users on the ownCloud server who access ownCloud with the loopback
+interface will be able to successfully login.
+In the event that an improper URL is used, the
+following error will appear:</p>
+<a class="reference internal image-reference" href="../_images/untrusted-domain.png"><img alt="../_images/untrusted-domain.png" src="../_images/untrusted-domain.png" style="width: 725.25px; height: 272.25px;" /></a>
+<p>For configuration examples, refer to the <tt class="file docutils literal"><span class="pre">config/config.sample.php</span></tt>
+document.</p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/installation/selinux_configuration.html
index 8e9f9fd,0000000..33b2891
mode 100644,000000..100644
--- a/core/doc/admin/release/installation/selinux_configuration.html
+++ b/core/doc/admin/release/installation/selinux_configuration.html
@@@ -1,203 -1,0 +1,226 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>SELinux Configuration — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="up" title="Installation" href="index.html" />
+ <link rel="next" title="Configuration" href="../configuration/index.html" />
+ <link rel="prev" title="Yaws Configuration" href="yaws_configuration.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Installation</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="linux_installation.html">Preferred Linux Installation Method</a></li>
+<li class="toctree-l2"><a class="reference internal" href="appliance_installation.html">ownCloud Appliances</a></li>
+<li class="toctree-l2"><a class="reference internal" href="apps_management_installation.html">Installing and Managing Apps</a></li>
+<li class="toctree-l2"><a class="reference internal" href="hiawatha_configuration.html">Hiawatha Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation_wizard.html">Installation Wizard</a></li>
+<li class="toctree-l2"><a class="reference internal" href="lighttpd_configuration.html">Lighttpd Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="macos_installation.html">Mac OS X</a></li>
+<li class="toctree-l2"><a class="reference internal" href="nginx_configuration.html">Nginx Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="others_installation.html">Other Installation Methods</a></li>
+<li class="toctree-l2"><a class="reference internal" href="source_installation.html">Manual Installation on Linux</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ucs_installation.html">Univention Corporate Server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="windows_installation.html">Windows 7 and Windows Server 2008</a></li>
+<li class="toctree-l2"><a class="reference internal" href="yaws_configuration.html">Yaws Configuration</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">SELinux Configuration</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#allow-access-to-a-remote-database">Allow access to a remote database</a></li>
++<li class="toctree-l3"><a class="reference internal" href="#allow-access-to-ldap-server">Allow access to LDAP server</a></li>
++<li class="toctree-l3"><a class="reference internal" href="#allow-access-to-remote-network">Allow access to remote network</a></li>
++<li class="toctree-l3"><a class="reference internal" href="#allow-access-to-smtp-sendmail">Allow access to SMTP/sendmail</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../configuration/index.html">Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="selinux-configuration">
- <h1>SELinux Configuration<a class="headerlink" href="#selinux-configuration" title="Permalink to this headline">¶</a></h1>
++<span id="selinux-config-label"></span><h1>SELinux Configuration<a class="headerlink" href="#selinux-configuration" title="Permalink to this headline">¶</a></h1>
+<p>When you have SELinux enabled on your Linux distribution, you may run into
+permissions problems after a new ownCloud installation, and see <tt class="docutils literal"><span class="pre">permission</span>
+<span class="pre">denied</span></tt> errors in your ownCloud logs.</p>
+<p>The following settings should work for most SELinux systems that use the
+default distro profiles. Run these commands as root, and remember to adjust the filepaths
+in these examples for your installation:</p>
+<div class="highlight-python"><pre>semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/data'
+restorecon '/var/www/html/owncloud/data'
+semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/config'
+restorecon '/var/www/html/owncloud/config'
+semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps'
+restorecon '/var/www/html/owncloud/apps'</pre>
+</div>
+<p>If you uninstall ownCloud you need to remove the ownCloud directory labels. To do
+this execute the following commands as root after uninstalling ownCloud:</p>
+<div class="highlight-python"><pre>semanage fcontext -d -t httpd_sys_rw_content_t '/var/www/html/owncloud/data'
+restorecon '/var/www/html/owncloud/data'
+semanage fcontext -d -t httpd_sys_rw_content_t '/var/www/html/owncloud/config'
+restorecon '/var/www/html/owncloud/config'
+semanage fcontext -d -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps'
+restorecon '/var/www/html/owncloud/apps'</pre>
+</div>
+<p>If you have customized SELinux policies and these examples do not work, you must give the
+HTTP server write access to these directories:</p>
+<div class="highlight-python"><pre>/var/www/html/owncloud/data
+/var/www/html/owncloud/config
+/var/www/html/owncloud/apps</pre>
+</div>
+<div class="section" id="allow-access-to-a-remote-database">
+<h2>Allow access to a remote database<a class="headerlink" href="#allow-access-to-a-remote-database" title="Permalink to this headline">¶</a></h2>
+<p>An additional setting is needed if your installation is connecting to a remote database:</p>
+<div class="highlight-python"><pre>setsebool -P httpd_can_network_connect_db on</pre>
+</div>
+</div>
++<div class="section" id="allow-access-to-ldap-server">
++<h2>Allow access to LDAP server<a class="headerlink" href="#allow-access-to-ldap-server" title="Permalink to this headline">¶</a></h2>
++<p>Use this setting to allow LDAP connections:</p>
++<div class="highlight-python"><pre>setsebool -P httpd_can_connect_ldap on</pre>
++</div>
++</div>
++<div class="section" id="allow-access-to-remote-network">
++<h2>Allow access to remote network<a class="headerlink" href="#allow-access-to-remote-network" title="Permalink to this headline">¶</a></h2>
++<p>ownCloud requires access to remote networks for functionalities such as Server-to-Server sharing, external storages or
++the app store. To allow this access use the following setting:</p>
++<div class="highlight-python"><pre>setsebool -P httpd_can_network_connect on</pre>
++</div>
++</div>
++<div class="section" id="allow-access-to-smtp-sendmail">
++<h2>Allow access to SMTP/sendmail<a class="headerlink" href="#allow-access-to-smtp-sendmail" title="Permalink to this headline">¶</a></h2>
++<p>If you want to allow ownCloud to send out e-mail notifications via sendmail you need
++to use the following setting:</p>
++<div class="highlight-python"><pre>setsebool -P httpd_can_sendmail on</pre>
++</div>
++</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/installation/source_installation.html
index 38b7529,0000000..4fbc988
mode 100644,000000..100644
--- a/core/doc/admin/release/installation/source_installation.html
+++ b/core/doc/admin/release/installation/source_installation.html
@@@ -1,549 -1,0 +1,550 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Manual Installation on Linux — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="up" title="Installation" href="index.html" />
+ <link rel="next" title="Univention Corporate Server" href="ucs_installation.html" />
+ <link rel="prev" title="Other Installation Methods" href="others_installation.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Installation</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="linux_installation.html">Preferred Linux Installation Method</a></li>
+<li class="toctree-l2"><a class="reference internal" href="appliance_installation.html">ownCloud Appliances</a></li>
+<li class="toctree-l2"><a class="reference internal" href="apps_management_installation.html">Installing and Managing Apps</a></li>
+<li class="toctree-l2"><a class="reference internal" href="hiawatha_configuration.html">Hiawatha Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation_wizard.html">Installation Wizard</a></li>
+<li class="toctree-l2"><a class="reference internal" href="lighttpd_configuration.html">Lighttpd Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="macos_installation.html">Mac OS X</a></li>
+<li class="toctree-l2"><a class="reference internal" href="nginx_configuration.html">Nginx Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="others_installation.html">Other Installation Methods</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Manual Installation on Linux</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#prerequisites">Prerequisites</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#example-installation-on-ubuntu-14-04-lts-server">Example installation on Ubuntu 14.04 LTS Server</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#installation-wizard">Installation Wizard</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#setting-strong-directory-permissions">Setting Strong Directory Permissions</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#selinux">SELinux</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#configuration-notes-to-php-ini-files">Configuration notes to php.ini files</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#apache-web-server-configuration">Apache Web Server Configuration</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#enabling-ssl">Enabling SSL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#configuring-owncloud">Configuring ownCloud</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#other-web-servers">Other Web Servers</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="ucs_installation.html">Univention Corporate Server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="windows_installation.html">Windows 7 and Windows Server 2008</a></li>
+<li class="toctree-l2"><a class="reference internal" href="yaws_configuration.html">Yaws Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="selinux_configuration.html">SELinux Configuration</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../configuration/index.html">Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="manual-installation-on-linux">
+<h1>Manual Installation on Linux<a class="headerlink" href="#manual-installation-on-linux" title="Permalink to this headline">¶</a></h1>
+<p>Installing ownCloud on Linux from the openSUSE Build Service packages is the preferred method (see <a class="reference internal" href="linux_installation.html"><em>Preferred Linux Installation Method</em></a>). These are maintained by ownCloud engineers, and you can use your package manager to keep your ownCloud server up-to-date.</p>
+<p>If there are no packages for your Linux distribution, or you prefer installing from sources, you can setup ownCloud from scratch using a classic LAMP stack (Linux, Apache, MySQL/MariaDB, PHP). This document provides a complete walk-through for installing ownCloud on Ubuntu
+14.04 LTS Server with Apache and MySQL.</p>
+<div class="section" id="prerequisites">
+<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">¶</a></h2>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">This tutorial assumes you have terminal access to the machine you want
+to install ownCloud on. Although this is not an absolute requirement,
+installation without it is likely to require contacting your
+hoster (e.g. for installing required modules). Consult the <a class="reference external" href="http://php.net/manual/en/extensions.php">PHP manual</a> for information on modules. Your Linux distribution should have packages for all required modules.</p>
+</div>
+<p>To run ownCloud, your web server must have the following installed:</p>
+<ul class="simple">
+<li>php5 (>= 5.3.8, minimum recommended 5.4)</li>
+<li>PHP module ctype</li>
+<li>PHP module dom</li>
+<li>PHP module GD</li>
+<li>PHP module iconv</li>
+<li>PHP module JSON</li>
+<li>PHP module libxml</li>
+<li>PHP module mb multibyte</li>
+<li>PHP module SimpleXML</li>
+<li>PHP module XMLWriter</li>
+<li>PHP module zip</li>
+<li>PHP module zlib</li>
+</ul>
+<p>Database connectors (pick at least one):</p>
+<ul class="simple">
+<li>PHP module sqlite (>= 3, usually not recommended for performance reasons)</li>
+<li>PHP module mysql</li>
+<li>PHP module pgsql (requires PostgreSQL >= 9.0)</li>
+</ul>
+<p><em>Recommended</em> packages:</p>
+<ul class="simple">
+<li>PHP module curl (highly recommended, some functionality, e.g. http user
+authentication, depends on this)</li>
+<li>PHP module fileinfo (highly recommended, enhances file analysis performance)</li>
+<li>PHP module bz2 (recommended, required for extraction of apps)</li>
+<li>PHP module intl (increases language translation performance and fixes sorting
+of non-ASCII characters)</li>
+<li>PHP module mcrypt (increases file encryption performance)</li>
+<li>PHP module openssl (required for accessing HTTPS resources)</li>
+</ul>
+<p>Required for specific apps:</p>
+<ul class="simple">
+<li>PHP module ldap (for LDAP integration)</li>
- <li>smbclient (for SMB storage)</li>
- <li>PHP module ftp (for FTP storage)</li>
++<li>smbclient (for SMB storage / external user authentication)</li>
++<li>PHP module ftp (for FTP storage / external user authentication)</li>
++<li>PHP module imap (for external user authentication)</li>
+</ul>
+<p>Recommended for specific apps (<em>optional</em>):</p>
+<ul class="simple">
+<li>PHP module exif (for image rotation in pictures app)</li>
+<li>PHP module gmp (for SFTP storage)</li>
+</ul>
+<p>For enhanced server performance (<em>optional</em> / select only one of the following):</p>
+<ul class="simple">
+<li>PHP module apc</li>
+<li>PHP module apcu</li>
+<li>PHP module xcache</li>
+</ul>
+<p>For preview generation (<em>optional</em>):</p>
+<ul class="simple">
+<li>PHP module imagick</li>
+<li>avconv or ffmpeg</li>
+<li>OpenOffice or LibreOffice</li>
+</ul>
+<p><strong>Remarks:</strong></p>
+<ul>
+<li><p class="first">Please check your distribution, operating system or hosting partner
+documentation on how to install and enable these modules.</p>
+</li>
+<li><p class="first">Make sure your distribution’s PHP version fulfills the version requirements
+specified above. If it doesn’t, there might be custom repositories you can
+use. If you are e.g. running Ubuntu 10.04 LTS, you can update your PHP using
+a custom <a class="reference external" href="https://launchpad.net/~ondrej/+archive/php5">PHP PPA</a>:</p>
+<div class="highlight-python"><pre>sudo add-apt-repository ppa:ondrej/php5
+sudo apt-get update
+sudo apt-get install php5</pre>
+</div>
+</li>
+<li><p class="first">You don’t need the WebDAV module for your web server (i.e. Apache’s
+<tt class="docutils literal"><span class="pre">mod_webdav</span></tt>) to access your ownCloud data via WebDAV. ownCloud has a built-in
+WebDAV server of its own, SabreDAV.</p>
+</li>
+</ul>
+</div>
+<div class="section" id="example-installation-on-ubuntu-14-04-lts-server">
+<h2>Example installation on Ubuntu 14.04 LTS Server<a class="headerlink" href="#example-installation-on-ubuntu-14-04-lts-server" title="Permalink to this headline">¶</a></h2>
+<p>On a machine running a pristine Ubuntu 14.04 LTS server, install the
+required and recommended modules for a typical ownCloud installation, using
+Apache and MariaDB, by issuing the following commands in a terminal:</p>
+<div class="highlight-python"><pre>apt-get install apache2 mariadb-server libapache2-mod-php5
+apt-get install php5-gd php5-json php5-mysql php5-curl
+apt-get install php5-intl php5-mcrypt php5-imagick</pre>
+</div>
+<ul class="simple">
+<li>This installs the packages for the ownCloud core system. If you are planning
+on running additional apps, keep in mind that they might require additional
+packages. See the Prerequisites section (above) for details.</li>
+<li>At the execution of each of the above commands you might be prompted whether
+you want to continue; press “Y” for Yes (that is if your system language is
+English. You might have to press a different key if you have a different
+system language).</li>
+<li>At the installation of the MySQL server, you will be prompted to create a root
+password. Be sure to remember the password you enter there for later use
+as you will need it during ownCloud database setup.</li>
+</ul>
+<p>Now download the archive of the latest ownCloud version:</p>
+<ul>
+<li><p class="first">Go to the <a class="reference external" href="http://owncloud.org/install">ownCloud Installation Page</a>.</p>
+</li>
+<li><p class="first">Click the <strong>Archive file for server owners</strong> button.</p>
+</li>
+<li><p class="first">Click <strong>Download Unix</strong>.</p>
+</li>
+<li><p class="first">This downloads a file named owncloud-x.y.z.tar.bz2 (where
+x.y.z is the version number of the current latest version).</p>
+</li>
+<li><p class="first">Save this file on the machine you want to install ownCloud on.</p>
+</li>
+<li><p class="first">Verify the MD5 or SHA256 sum:</p>
+<div class="highlight-python"><pre>md5sum owncloud-x.y.z.tar.bz2
+sha256sum owncloud-x.y.z.tar.bz2</pre>
+</div>
+</li>
+<li><p class="first">You may also verify the PGP signature:</p>
+<div class="highlight-python"><pre>wget https://download.owncloud.org/community/owncloud-x.y.z.tar.bz2.asc
+wget https://www.owncloud.org/owncloud.asc
+gpg --import owncloud.asc
+gpg --verify owncloud-x.y.z.tar.bz2.asc owncloud-x.y.z.tar.bz2</pre>
+</div>
+</li>
+<li><p class="first">Now you can extract the archive contents. Open a terminal, navigate to your
+download directory, and run:</p>
+<div class="highlight-python"><pre>tar -xjf owncloud-x.y.z.tar.bz2</pre>
+</div>
+</li>
+<li><p class="first">Copy the ownCloud files to their final destination in the document root of
+your web server:</p>
+<div class="highlight-python"><pre>cp -r owncloud /path/to/webserver/document-root</pre>
+</div>
+<p>where <tt class="docutils literal"><span class="pre">/path/to/webserver/document-root</span></tt> is replaced by the
+document root of your Web server. On Ubuntu systems this
+<tt class="docutils literal"><span class="pre">/var/www/owncloud</span></tt>, so your copying command is:</p>
+<div class="highlight-python"><pre>cp -r owncloud /var/www/</pre>
+</div>
+</li>
+</ul>
+</div>
+<div class="section" id="installation-wizard">
+<h2>Installation Wizard<a class="headerlink" href="#installation-wizard" title="Permalink to this headline">¶</a></h2>
+<p>Finish setting up your ownCloud server by following
+the <a class="reference internal" href="installation_wizard.html"><em>Installation Wizard</em></a>.</p>
+<p>After running the Installation Wizard your ownCloud installation is complete.
+However, you should perform the following steps to improve your server’s
+security.</p>
+</div>
+<div class="section" id="setting-strong-directory-permissions">
+<h2>Setting Strong Directory Permissions<a class="headerlink" href="#setting-strong-directory-permissions" title="Permalink to this headline">¶</a></h2>
+<p>We recommend setting the directory permissions in your ownCloud installation as
+strictly as possible for stronger security. Please refer to the <tt class="docutils literal"><span class="pre">Setting</span>
+<span class="pre">Strong</span> <span class="pre">Directory</span> <span class="pre">Permissions</span></tt> section of <a class="reference internal" href="installation_wizard.html"><em>Installation Wizard</em></a>.</p>
+</div>
+<div class="section" id="selinux">
+<h2>SELinux<a class="headerlink" href="#selinux" title="Permalink to this headline">¶</a></h2>
+<p>See <a class="reference internal" href="selinux_configuration.html"><em>SELinux Configuration</em></a> for a suggested configuration for SELinux-enabled distributions such as Fedora and CentOS.</p>
+<p>Apache is the recommended Web server.</p>
+</div>
+<div class="section" id="configuration-notes-to-php-ini-files">
+<h2>Configuration notes to php.ini files<a class="headerlink" href="#configuration-notes-to-php-ini-files" title="Permalink to this headline">¶</a></h2>
+<p>Keep in mind that changes to php.ini may have to be done on more than one ini file. This can be the case, as example, for the <tt class="docutils literal"><span class="pre">date.timezone</span></tt> setting.</p>
+<p><strong>php.ini - used by the webserver:</strong></p>
+<div class="highlight-python"><pre> /etc/php5/apache2/php.ini
+or
+ /etc/php5/fpm/php.ini
+or ...</pre>
+</div>
+<p><strong>php.ini - used by the php-cli and so by ownCloud CRON jobs:</strong></p>
+<div class="highlight-python"><pre>/etc/php5/cli/php.ini</pre>
+</div>
+</div>
+<div class="section" id="apache-web-server-configuration">
+<h2>Apache Web Server Configuration<a class="headerlink" href="#apache-web-server-configuration" title="Permalink to this headline">¶</a></h2>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">You can use ownCloud over plain http, but we strongly encourage you to
+use SSL/TLS to encrypt all of your server traffic, and to protect
+user’s logins and data in transit.</p>
+</div>
+</div>
+<div class="section" id="enabling-ssl">
+<h2>Enabling SSL<a class="headerlink" href="#enabling-ssl" title="Permalink to this headline">¶</a></h2>
+<p>An Apache installed under Ubuntu comes already set-up with a simple
+self-signed certificate. All you have to do is to enable the ssl module and
+the according site. Open a terminal and run:</p>
+<div class="highlight-python"><pre>a2enmod ssl
+a2ensite default-ssl
+service apache2 reload</pre>
+</div>
+<p>If you are using a different distribution, check your documentation on how to
+enable SSL.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Self-signed certificates have their drawbacks - especially when you
+plan to make your ownCloud server publicly accessible. You might want
+to consider getting a certificate signed by commercial signing
+authority. Check with your domain name registrar or hosting service,
+if you’re using one, for good deals on commercial certificates.</p>
+</div>
+</div>
+<div class="section" id="configuring-owncloud">
+<h2>Configuring ownCloud<a class="headerlink" href="#configuring-owncloud" title="Permalink to this headline">¶</a></h2>
+<p>Since there was a change in the way versions 2.2 and 2.4 are configured,
+you’ll have to find out which Apache version you are using.</p>
+<p>Usually you can do this by running one of the following commands:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">apachectl</span> <span class="o">-</span><span class="n">v</span>
+<span class="n">apache2</span> <span class="o">-</span><span class="n">v</span>
+</pre></div>
+</div>
+<p>Example output:</p>
+<div class="highlight-python"><pre>Server version: Apache/2.4.7 (Ubuntu)
+Server built: Jul 22 2014 14:36:38</pre>
+</div>
+<p>Example config for Apache 2.2:</p>
+<div class="highlight-xml"><pre><Directory /path/to/owncloud>
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Order allow,deny
+ allow from all
+</Directory></pre>
+</div>
+<p>Example config for Apache 2.4:</p>
+<div class="highlight-xml"><pre><Directory /path/to/owncloud>
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Require all granted
+</Directory></pre>
+</div>
+<ul>
+<li><p class="first">This configuration entry needs to go into the configuration file of the
+“site” you want to use.</p>
+</li>
+<li><p class="first">On a Ubuntu system, this typically is the “default-ssl” site (to be found in
+the <tt class="file docutils literal"><span class="pre">/etc/apache2/sites-available/default-ssl.conf</span></tt>).</p>
+</li>
+<li><p class="first">Add the entry shown above immediately before the line containing:</p>
+<div class="highlight-python"><pre></VirtualHost></pre>
+</div>
+<p>(this should be one of the last lines in the file).</p>
+</li>
+<li><p class="first">A minimal site configuration file on Ubuntu 14.04 might look like this:</p>
+</li>
+</ul>
+<div class="highlight-xml"><pre><IfModule mod_ssl.c>
+<VirtualHost _default_:443>
+ ServerName YourServerName
+ ServerAdmin webmaster at localhost
+ DocumentRoot /var/www
+ <Directory />
+ Options FollowSymLinks
+ AllowOverride None
+ </Directory>
+ <Directory /var/www/>
+ Options Indexes FollowSymLinks
+ AllowOverride None
+ Order allow,deny
+ allow from all
+ </Directory>
+ ErrorLog ${APACHE_LOG_DIR}/error.log
+ LogLevel warn
+ CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
+ SSLEngine on
+ SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
+ SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
+ <FilesMatch "\.(cgi|shtml|phtml|php)$">
+ SSLOptions +StdEnvVars
+ </FilesMatch>
+ <Directory /usr/lib/cgi-bin>
+ SSLOptions +StdEnvVars
+ </Directory>
+ BrowserMatch "MSIE [2-6]" \
+ nokeepalive ssl-unclean-shutdown \
+ downgrade-1.0 force-response-1.0
+ BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
+ <Directory /var/www/owncloud>
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Allow from all
+ Require all granted
+ Dav Off
+ Satisfy Any
+ </Directory>
+</VirtualHost>
+</IfModule></pre>
+</div>
+<ul>
+<li><p class="first">For ownCloud to work correctly, we need the module <tt class="docutils literal"><span class="pre">mod_rewrite</span></tt>. Enable it
+by running:</p>
+<div class="highlight-python"><pre>a2enmod rewrite</pre>
+</div>
+</li>
+<li><p class="first">In distributions that do not come with <tt class="docutils literal"><span class="pre">a2enmod</span></tt>, the module needs to be
+enabled manually by editing the Apache config files, usually
+<tt class="file docutils literal"><span class="pre">/etc/httpd/httpd.conf</span></tt>. Consult the Apache documentation or your Linux
+distribution’s documentation.</p>
+</li>
+<li><p class="first">In order for the maximum upload size to be configurable, the
+<tt class="file docutils literal"><span class="pre">.htaccess</span></tt> in the ownCloud folder needs to be made writable by the
+server (this should already be done, see section <tt class="docutils literal"><span class="pre">Set</span> <span class="pre">the</span> <span class="pre">Directory</span>
+<span class="pre">Permissions</span></tt>).</p>
+</li>
+<li><p class="first">You should make sure that any built-in WebDAV module of your web server is
+disabled (at least for the ownCloud directory), as it will interfere with
+ownCloud’s built-in WebDAV support.</p>
+<p>If you need the WebDAV support in the rest of your configuration, you can turn
+it off specifically for the ownCloud entry by adding the following line in
+the <tt class="docutils literal"><span class="pre"><Directory</span></tt> section for your ownCloud server. Add the following line
+directly after the <tt class="docutils literal"><span class="pre">allow</span> <span class="pre">from</span> <span class="pre">all</span></tt> / <tt class="docutils literal"><span class="pre">Require</span> <span class="pre">all</span> <span class="pre">granted</span></tt> line:</p>
+<div class="highlight-python"><pre>Dav Off</pre>
+</div>
+</li>
+<li><p class="first">You must disable any server-configured authentication for ownCloud, as it
+uses Basic authentication internally for DAV services. If you have turned on
+authentication on a parent folder (via e.g. an <tt class="docutils literal"><span class="pre">AuthType</span> <span class="pre">Basic</span></tt>
+directive), you can turn off the authentication specifically for the ownCloud
+entry. Following the above example configuration file, add the following line
+directly after the <tt class="docutils literal"><span class="pre">allow</span> <span class="pre">from</span> <span class="pre">all</span></tt> / <tt class="docutils literal"><span class="pre">Require</span> <span class="pre">all</span> <span class="pre">granted</span></tt> line in the
+<tt class="docutils literal"><span class="pre"><Directory</span></tt> section:</p>
+<div class="highlight-python"><pre>Satisfy Any</pre>
+</div>
+</li>
+<li><p class="first">When using ssl, take special note on the ServerName. You should specify one in
+the server configuration, as well as in the CommonName field of the
+certificate. If you want your ownCloud to be reachable via the internet, then
+set both of these to the domain you want to reach your ownCloud server.</p>
+</li>
+</ul>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">By default, the certificates’ CommonName will be set to the host name
+at the time the ssl-cert package was installed.</p>
+</div>
+<ul>
+<li><p class="first">Finally, restart Apache.</p>
+<ul>
+<li><p class="first">On Ubuntu systems run:</p>
+<div class="highlight-python"><pre>service apache2 restart</pre>
+</div>
+</li>
+<li><p class="first">On systemd systems (Fedora, Arch Linux, OpenSUSE), run:</p>
+<div class="highlight-python"><pre>systemctl restart httpd.service</pre>
+</div>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="other-web-servers">
+<h2>Other Web Servers<a class="headerlink" href="#other-web-servers" title="Permalink to this headline">¶</a></h2>
+<p><strong>Microsoft Internet Information Server (IIS)</strong></p>
+<p>See <a class="reference internal" href="windows_installation.html"><em>Windows 7 and Windows Server 2008</em></a> for further instructions.</p>
+<p><strong>Nginx Configuration</strong></p>
+<p>See <a class="reference internal" href="nginx_configuration.html"><em>Nginx Configuration</em></a></p>
+<p><strong>Lighttpd Configuration</strong></p>
+<p>See <a class="reference internal" href="lighttpd_configuration.html"><em>Lighttpd Configuration</em></a></p>
+<p><strong>Yaws Configuration</strong></p>
+<p>See <a class="reference internal" href="yaws_configuration.html"><em>Yaws Configuration</em></a></p>
+<p><strong>Hiawatha Configuration</strong></p>
+<p>See <a class="reference internal" href="hiawatha_configuration.html"><em>Hiawatha Configuration</em></a></p>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/issues/index.html
index c968d2b,0000000..9d4b75e
mode 100644,000000..100644
--- a/core/doc/admin/release/issues/index.html
+++ b/core/doc/admin/release/issues/index.html
@@@ -1,389 -1,0 +1,392 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Issues and Troubleshooting — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="prev" title="Converting From SQLite to MySQL, MariaDB, or PostgreSQL" href="../maintenance/convert_db.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../configuration/index.html">Configuration</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
+<li class="toctree-l1 current"><a class="current reference internal" href="">Issues and Troubleshooting</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#bugs">Bugs</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#general-troubleshooting">General Troubleshooting</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#debugging-the-issue">Debugging the issue</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#debugging-sync-issues">Debugging Sync-Issues</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#common-problems-error-messages">Common problems / error messages</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="#troubleshooting-webserver-and-php-problems">Troubleshooting Webserver and PHP problems</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#logfiles">Logfiles</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#webserver-and-php-modules">Webserver and PHP modules</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="#troubleshooting-webdav">Troubleshooting WebDAV</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#troubleshooting-contacts-calendar">Troubleshooting Contacts & Calendar</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#service-discovery">Service discovery</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#apple-ios">Apple iOS</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#unable-to-update-contacts-or-events">Unable to update Contacts or Events</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="issues-and-troubleshooting">
+<h1>Issues and Troubleshooting<a class="headerlink" href="#issues-and-troubleshooting" title="Permalink to this headline">¶</a></h1>
+<p>If you have trouble installing, configuring or maintaining ownCloud, please refer to our community support channels:</p>
+<ul class="simple">
+<li><a class="reference external" href="http://forum.owncloud.org">The ownCloud Forums</a></li>
+</ul>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">The ownCloud forums have a <a class="reference external" href="https://forum.owncloud.org/viewforum.php?f=17">FAQ page</a> where each topic corresponds to
+typical mistakes or frequently occurring issues</p>
+</div>
+<ul class="simple">
+<li><a class="reference external" href="https://mailman.owncloud.org/mailman/listinfo/user">The ownCloud User mailing list</a></li>
+<li>The ownCloud IRC chat channel <tt class="docutils literal"><span class="pre">irc://#owncloud@freenode.net</span></tt> on freenode.net, also
+accessible via <a class="reference external" href="http://webchat.freenode.net/?channels=owncloud">webchat</a></li>
+</ul>
+<p>Please understand that all these channels essentially consist of users like you helping each other out. Consider helping others out where you can, to contribute back for the help you get. This is the only way to keep a community like ownCloud healthy and sustainable!</p>
+<p>If you are using ownCloud in a business or otherwise large scale deployment, note that ownCloud Inc. offers the <a class="reference external" href="https://owncloud.com/lp/community-or-enterprise/">Enterprise Edition</a> with commercial support options.</p>
+<div class="section" id="bugs">
+<h2>Bugs<a class="headerlink" href="#bugs" title="Permalink to this headline">¶</a></h2>
+<p>If you think you have found a bug in ownCloud, please:</p>
+<ul class="simple">
+<li>Search for a solution (see the options above)</li>
+<li>Double check your configuration</li>
+</ul>
+<p>If you can’t find a solution, please use our <a class="reference external" href="http://doc.owncloud.org/server/7.0/developer_manual/bugtracker/index.html">bugtracker</a>.</p>
+</div>
+<div class="section" id="general-troubleshooting">
+<h2>General Troubleshooting<a class="headerlink" href="#general-troubleshooting" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="debugging-the-issue">
+<h3>Debugging the issue<a class="headerlink" href="#debugging-the-issue" title="Permalink to this headline">¶</a></h3>
+<p>In a standard ownCloud installation the log level is set to <tt class="docutils literal"><span class="pre">Normal</span></tt>. To find any issues
+you need to raise the log level to <tt class="docutils literal"><span class="pre">All</span></tt> from the Admin page. Please see <a class="reference internal" href="../configuration/logging_configuration.html"><em>Logging Configuration</em></a>
+for more informations on this log levels.</p>
+<p>Some logging - for example JavaScript console logging - needs manually editing the
+configuration file.
+Edit <tt class="file docutils literal"><span class="pre">config/config.php</span></tt> and add <tt class="docutils literal"><span class="pre">define('DEBUG',</span> <span class="pre">true);</span></tt>:</p>
+<div class="highlight-python"><pre><?php
+define('DEBUG',true);
+$CONFIG = array (
+ ... configuration goes here ...
+);</pre>
+</div>
+<p>For JavaScript issues you will also need to view the javascript console. All major browsers
+have decent developer tools for viewing the console, and you usually access them by
+pressing F-12. For Firefox it is recommended to install the <a class="reference external" href="https://getfirebug.com/">Firebug extension</a>.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">The logfile of ownCloud is located in the datadirectory <tt class="docutils literal"><span class="pre">/var/www/owncloud/data/owncloud.log</span></tt>.</p>
+</div>
+</div>
+<div class="section" id="debugging-sync-issues">
+<h3>Debugging Sync-Issues<a class="headerlink" href="#debugging-sync-issues" title="Permalink to this headline">¶</a></h3>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">The data directory on the server is exclusive to ownCloud and must not be modified manually.</p>
+</div>
+<p>Disregarding this can lead to unwanted behaviours like:</p>
+<ul class="simple">
+<li>Problems with sync clients</li>
+<li>Undetected changes due to caching in the database</li>
+</ul>
+<p>If you need to directly upload files from the same server please use a WebDAV command
+line client like <tt class="docutils literal"><span class="pre">cadaver</span></tt> to upload files to the WebDAV interface at:</p>
+<blockquote>
+<div><a class="reference external" href="https://example.org/owncloud/remote.php/webdav">https://example.org/owncloud/remote.php/webdav</a></div></blockquote>
+</div>
+<div class="section" id="common-problems-error-messages">
+<h3>Common problems / error messages<a class="headerlink" href="#common-problems-error-messages" title="Permalink to this headline">¶</a></h3>
+<p>Some common problems / error messages found in your logfiles as described above:</p>
+<ul class="simple">
+<li><tt class="docutils literal"><span class="pre">SQLSTATE[HY000]</span> <span class="pre">[1040]</span> <span class="pre">Too</span> <span class="pre">many</span> <span class="pre">connections</span></tt> -> You need to increase the
+connection limit of your database, please refer to the manual of your database
+for more informations.</li>
+<li><tt class="docutils literal"><span class="pre">SQLSTATE[HY000]:</span> <span class="pre">General</span> <span class="pre">error:</span> <span class="pre">5</span> <span class="pre">database</span> <span class="pre">is</span> <span class="pre">locked</span></tt> -> You’re using <tt class="docutils literal"><span class="pre">SQLite</span></tt>
+which can’t handle a lot of parallel requests. Please consider converting to
+another database like described in <a class="reference internal" href="../maintenance/convert_db.html"><em>Converting From SQLite to MySQL, MariaDB, or PostgreSQL</em></a>.</li>
+<li><tt class="docutils literal"><span class="pre">SQLSTATE[HY000]:</span> <span class="pre">General</span> <span class="pre">error:</span> <span class="pre">2006</span> <span class="pre">MySQL</span> <span class="pre">server</span> <span class="pre">has</span> <span class="pre">gone</span> <span class="pre">away</span></tt> -> The database
+request takes too long and therefore the MySQL server times out. Its also possible
+that the server is dropping a too large packet. Please refer to the manual of your
+database how to raise the config options <tt class="docutils literal"><span class="pre">wait_timeout</span></tt> and/or <tt class="docutils literal"><span class="pre">max_allowed_packet</span></tt>.</li>
+<li><tt class="docutils literal"><span class="pre">SQLSTATE[HY000]</span> <span class="pre">[2002]</span> <span class="pre">No</span> <span class="pre">such</span> <span class="pre">file</span> <span class="pre">or</span> <span class="pre">directory</span></tt> -> There is a problem
+accessing your SQLite database file in your datadirectory (<tt class="docutils literal"><span class="pre">data/owncloud.db</span></tt>).
+Please check the permissions of this folder/file or if it exists at all. If you’re
+using MySQL please start your database.</li>
++<li><tt class="docutils literal"><span class="pre">Connection</span> <span class="pre">closed</span> <span class="pre">/</span> <span class="pre">Operation</span> <span class="pre">cancelled</span></tt> -> This could be caused by wrong <tt class="docutils literal"><span class="pre">KeepAlive</span></tt>
++settings within your Apache config. Make sure that <tt class="docutils literal"><span class="pre">KeepAlive</span></tt> is set to <tt class="docutils literal"><span class="pre">On</span></tt> and
++also try to raise the limits of <tt class="docutils literal"><span class="pre">KeepAliveTimeout</span></tt> and <tt class="docutils literal"><span class="pre">MaxKeepAliveRequests</span></tt>.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="troubleshooting-webserver-and-php-problems">
+<h2>Troubleshooting Webserver and PHP problems<a class="headerlink" href="#troubleshooting-webserver-and-php-problems" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="logfiles">
+<h3>Logfiles<a class="headerlink" href="#logfiles" title="Permalink to this headline">¶</a></h3>
+<p>When having issues the first step is to check the logfiles provided by PHP, the Webserver
+and ownCloud itself.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">In the following the paths to the logfiles of a default Debian installation
+running Apache2 with mod_php is assumed. On other webservers, linux distros or
+operating systems they can differ.</p>
+</div>
+<ul class="simple">
+<li>The logfile of Apache2 is located in <tt class="docutils literal"><span class="pre">/var/log/apache2/error.log</span></tt>.</li>
+<li>The logfile of PHP can be configured in your <tt class="docutils literal"><span class="pre">/etc/php5/apache2/php.ini</span></tt>.
+You need to set the directive <tt class="docutils literal"><span class="pre">log_errors</span></tt> to <tt class="docutils literal"><span class="pre">On</span></tt> and choose the path
+to store the logfile in the <tt class="docutils literal"><span class="pre">error_log</span></tt> directive. After those changes you
+need to restart your Webserver.</li>
+<li>The logfile of ownCloud is located in the datadirectory <tt class="docutils literal"><span class="pre">/var/www/owncloud/data/owncloud.log</span></tt>.</li>
+</ul>
+</div>
+<div class="section" id="webserver-and-php-modules">
+<h3>Webserver and PHP modules<a class="headerlink" href="#webserver-and-php-modules" title="Permalink to this headline">¶</a></h3>
+<p>There are some Webserver or PHP modules which are known to cause various problems
+like broken up-/downloads. The following shows a draft overview over this modules:</p>
+<ol class="arabic simple">
+<li>Apache</li>
+</ol>
+<ul class="simple">
+<li>mod_pagespeed</li>
+<li>mod_evasive</li>
+<li>mod_security</li>
+<li>mod_reqtimeout</li>
+<li>mod_deflate</li>
+<li>libapache2-mod-php5filter (use libapache2-mod-php5 instead)</li>
+<li>mod_spdy together with libapache2-mod-php5 / mod_php (use fcgi or php-fpm instead)</li>
+<li>mod_dav</li>
+<li>mod_xsendfile / X-Sendfile (causing broken downloads if not configured correctly)</li>
+</ul>
+<ol class="arabic simple" start="2">
+<li>NginX</li>
+</ol>
+<ul class="simple">
+<li>ngx_pagespeed</li>
+<li>HttpDavModule</li>
+<li>X-Sendfile (causing broken downloads if not configured correctly)</li>
+</ul>
+<ol class="arabic simple" start="3">
+<li>Mac OS X server</li>
+</ol>
+<ul class="simple">
+<li>mod_auth_apple</li>
+<li>com.apple.webapp.webdavsharing</li>
+</ul>
+<ol class="arabic simple" start="4">
+<li>LigHTTPd</li>
+</ol>
+<ul class="simple">
+<li>ModWebDAV</li>
+<li>X-Sendfile2 (causing broken downloads if not configured correctly)</li>
+</ul>
+<ol class="arabic simple" start="5">
+<li>PHP</li>
+</ol>
+<ul class="simple">
+<li>eAccelerator</li>
+</ul>
+</div>
+</div>
+<div class="section" id="troubleshooting-webdav">
+<h2>Troubleshooting WebDAV<a class="headerlink" href="#troubleshooting-webdav" title="Permalink to this headline">¶</a></h2>
+<p>ownCloud uses SabreDAV, and the SabreDAV documentation is comprehensive and
+helpful. See:</p>
+<ul class="simple">
+<li><a class="reference external" href="http://sabre.io/dav/faq/">SabreDAV FAQ</a></li>
+<li><a class="reference external" href="http://sabre.io/dav/webservers">Webservers</a> (Lists lighttpd as not
+recommended)</li>
+<li><a class="reference external" href="http://sabre.io/dav/large-files/">Working with large files</a> (Shows a PHP
+bug in older SabreDAV versions and information for mod_security problems)</li>
+<li><a class="reference external" href="http://sabre.io/dav/0bytes">0 byte files</a> (Reasons for empty files on the
+server)</li>
+<li><a class="reference external" href="http://sabre.io/dav/clients/">Clients</a> (A comprehensive list of WebDAV
+clients, and possible problems with each one)</li>
+<li><a class="reference external" href="http://sabre.io/dav/clients/finder/">Finder, OS X’s built-in WebDAV client</a>
+(Describes problems with Finder on various webservers)</li>
+</ul>
+<p>There is also a well maintained FAQ thread available at the <a class="reference external" href="https://forum.owncloud.org/viewtopic.php?f=17&t=7536">ownCloud Forums</a>
+which contains various additional informations about WebDAV problems.</p>
+</div>
+<div class="section" id="troubleshooting-contacts-calendar">
+<h2>Troubleshooting Contacts & Calendar<a class="headerlink" href="#troubleshooting-contacts-calendar" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="service-discovery">
+<h3>Service discovery<a class="headerlink" href="#service-discovery" title="Permalink to this headline">¶</a></h3>
+<p>Some clients - especially iOS - have problems finding the proper sync URL, even when explicitly
+configured to use it.</p>
+<p>There are several techniques to remedy this, which are described extensively at the
+<a class="reference external" href="http://sabre.io/dav/service-discovery/">Sabre DAV website</a>.</p>
+</div>
+<div class="section" id="apple-ios">
+<h3>Apple iOS<a class="headerlink" href="#apple-ios" title="Permalink to this headline">¶</a></h3>
+<p>Below is what have proven to work with iOS including iOS 7.</p>
+<p>If your ownCloud instance is installed in a subfolder under the web server’s document root and
+the client has difficulties finding the Cal- or CardDAV end-points, configure your web server to
+redirect from a “well-know” URL to the one used by ownCloud.
+When using the Apache web server this is easily achieved using a <tt class="file docutils literal"><span class="pre">.htaccess</span></tt> file in the document
+root of your site.</p>
+<p>Say your instance is located in the <tt class="docutils literal"><span class="pre">owncloud</span></tt> folder, so the URL to it is <tt class="docutils literal"><span class="pre">ADDRESS/owncloud</span></tt>,
+create or edit the <tt class="file docutils literal"><span class="pre">.htaccess</span></tt> file and add the following lines:</p>
+<div class="highlight-python"><pre>Redirect 301 /.well-known/carddav /owncloud/remote.php/carddav
+Redirect 301 /.well-known/caldav /owncloud/remote.php/caldav</pre>
+</div>
+<p>If you use lighttpd as web server, the setting looks something like:</p>
+<div class="highlight-python"><pre>url.redirect = (
+ "^/.well-known/carddav" => "/owncloud/remote.php/carddav",
+ "^/.well-known/caldav" => "/owncloud/remote.php/caldav",
+)</pre>
+</div>
+<p>Now change the URL in the client settings to just use <tt class="docutils literal"><span class="pre">ADDRESS</span></tt> instead of e.g. <tt class="docutils literal"><span class="pre">ADDRESS/remote.php/carddav/principals/username</span></tt>.</p>
+<p>This problem is being discussed in the <a class="reference external" href="http://forum.owncloud.org/viewtopic.php?f=3&t=71&p=2211#p2197">forum</a>.</p>
+</div>
+<div class="section" id="unable-to-update-contacts-or-events">
+<h3>Unable to update Contacts or Events<a class="headerlink" href="#unable-to-update-contacts-or-events" title="Permalink to this headline">¶</a></h3>
+<p>If you get an error like <tt class="docutils literal"><span class="pre">PATCH</span> <span class="pre">https://ADDRESS/some_url</span> <span class="pre">HTTP/1.0</span> <span class="pre">501</span> <span class="pre">Not</span> <span class="pre">Implemented</span></tt> it is
+likely caused by one of the following reasons:</p>
+<dl class="docutils">
+<dt>Outdated lighttpd web server</dt>
+<dd>lighttpd in debian wheezy (1.4.31) doesn’t support the PATCH HTTP verb.
+Upgrade to lighttpd >= 1.4.33.</dd>
+<dt>Using Pound reverse-proxy/load balancer</dt>
+<dd>As of writing this Pound doesn’t support the HTTP/1.1 verb.
+Pound is easily <a class="reference external" href="http://www.apsis.ch/pound/pound_list/archive/2013/2013-08/1377264673000">patched</a> to support HTTP/1.1.</dd>
+</dl>
+</div>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/maintenance/restore.html
index fdc6281,0000000..4f95bba
mode 100644,000000..100644
--- a/core/doc/admin/release/maintenance/restore.html
+++ b/core/doc/admin/release/maintenance/restore.html
@@@ -1,204 -1,0 +1,206 @@@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>Restoring ownCloud — ownCloud Administrators Manual 7.0 documentation</title>
+
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/style.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
+
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../',
+ VERSION: '7.0',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../_static/jquery.js"></script>
+ <script type="text/javascript" src="../_static/underscore.js"></script>
+ <script type="text/javascript" src="../_static/doctools.js"></script>
+ <script type="text/javascript" src="../_static/bootstrap.js"></script>
+ <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
+ <link rel="up" title="Maintenance" href="index.html" />
+ <link rel="next" title="Migrating ownCloud Installations" href="migrating.html" />
+ <link rel="prev" title="Upgrading Your ownCloud Server" href="upgrade.html" />
+<script type="text/javascript">
+(function () {
+ /**
+ * Patch TOC list.
+ *
+ * Will mutate the underlying span to have a correct ul for nav.
+ *
+ * @param $span: Span containing nested UL's to mutate.
+ * @param minLevel: Starting level for nested lists. (1: global, 2: local).
+ */
+ var patchToc = function ($ul, minLevel) {
+ var findA;
+
+ // Find all a "internal" tags, traversing recursively.
+ findA = function ($elem, level) {
+ var level = level || 0,
+ $items = $elem.find("> li > a.internal, > ul, > li > ul");
+
+ // Iterate everything in order.
+ $items.each(function (index, item) {
+ var $item = $(item),
+ tag = item.tagName.toLowerCase(),
+ pad = 15 + ((level - minLevel) * 10);
+
+ if (tag === 'a' && level >= minLevel) {
+ // Add to existing padding.
+ $item.css('padding-left', pad + "px");
+ console.log(level, $item, 'padding-left', pad + "px");
+ } else if (tag === 'ul') {
+ // Recurse.
+ findA($item, level + 1);
+ }
+ });
+ };
+
+ console.log("HERE");
+ findA($ul);
+ };
+
+ $(document).ready(function () {
+ // Add styling, structure to TOC's.
+ $(".dropdown-menu").each(function () {
+ $(this).find("ul").each(function (index, item){
+ var $item = $(item);
+ $item.addClass('unstyled');
+ });
+ $(this).find("li").each(function () {
+ $(this).parent().append(this);
+ });
+ });
+
+ // Patch in level.
+ patchToc($("ul.globaltoc"), 2);
+ patchToc($("ul.localtoc"), 2);
+
+ // Enable dropdown.
+ $('.dropdown-toggle').dropdown();
+ });
+}());
+</script>
+
+ </head>
+ <body>
+
+
+<div class="container">
+ <div class="content">
+ <div class="page-header">
+ <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
+
+ </div>
+
+ <div class="row">
+ <div class="span3">
+ <div class="sidebar">
+ <div class="well">
+ <div class="menu-support-container">
+ <ul id="menu-support" class="menu">
+ <ul>
+ <li><a href="../contents.html">Table of Contents</a></li>
+ </ul>
+ <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+</ul>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../configuration/index.html">Configuration</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Maintenance</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="enable_maintenance.html">Maintenance Mode Configuration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="backup.html">Backing up ownCloud</a></li>
+<li class="toctree-l2"><a class="reference internal" href="update.html">Updating ownCloud with the Updater App</a></li>
+<li class="toctree-l2"><a class="reference internal" href="upgrade.html">Upgrading Your ownCloud Server</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="">Restoring ownCloud</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#restore-folders">Restore Folders</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#restore-database">Restore Database</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="migrating.html">Migrating ownCloud Installations</a></li>
+<li class="toctree-l2"><a class="reference internal" href="convert_db.html">Converting From SQLite to MySQL, MariaDB, or PostgreSQL</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
+</ul>
+
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="span9">
+ <div class="page-content">
+
+ <div class="section" id="restoring-owncloud">
+<h1>Restoring ownCloud<a class="headerlink" href="#restoring-owncloud" title="Permalink to this headline">¶</a></h1>
+<p>To restore an ownCloud installation there are three main things you need to restore:</p>
+<ol class="arabic simple">
+<li>The config folder</li>
+<li>The data folder</li>
+<li>The database</li>
+</ol>
++<p>When you have completed your restoration, see the <tt class="docutils literal"><span class="pre">Setting</span> <span class="pre">Strong</span> <span class="pre">Directory</span> <span class="pre">Permissions</span></tt> section of <a class="reference internal" href="../installation/installation_wizard.html"><em>Installation Wizard</em></a>.</p>
+<div class="section" id="restore-folders">
+<h2>Restore Folders<a class="headerlink" href="#restore-folders" title="Permalink to this headline">¶</a></h2>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">This guide assumes that your previous backup is called “owncloud-dirbkp”</p>
+</div>
+<p>Simply copy your config and data folder (or even your whole ownCloud install and data folder) to
+your ownCloud environment. You could use this command:</p>
+<div class="highlight-python"><pre>rsync -Aax owncloud-dirbkp/ owncloud/</pre>
+</div>
+</div>
+<div class="section" id="restore-database">
+<h2>Restore Database<a class="headerlink" href="#restore-database" title="Permalink to this headline">¶</a></h2>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">This guide assumes that your previous backup is called “owncloud-sqlbkp.bak”</p>
+</div>
+<div class="section" id="mysql">
+<h3>MySQL<a class="headerlink" href="#mysql" title="Permalink to this headline">¶</a></h3>
+<p>MySQL is the recommended database engine. To backup MySQL:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="n">mysql</span> <span class="o">-</span><span class="n">h</span> <span class="p">[</span><span class="n">server</span><span class="p">]</span> <span class="o">-</span><span class="n">u</span> <span class="p">[</span><span class="n">username</span><span class="p">]</span> <span class="o">-</span><span class="n">p</span><span class="p">[</span><span class="n">password</span><span class="p">]</span> <span class="p">[</s [...]
+</pre></div>
+</div>
+</div>
+<div class="section" id="sqlite">
+<h3>SQLite<a class="headerlink" href="#sqlite" title="Permalink to this headline">¶</a></h3>
- <div class="highlight-python"><pre>sqlite3 data/owncloud.db .dump < owncloud-sqlbkp.bak</pre>
++<div class="highlight-python"><pre>rm data/owncloud.db
++sqlite3 data/owncloud.db < owncloud-sqlbkp.bak</pre>
+</div>
+</div>
+<div class="section" id="postgresql">
+<h3>PostgreSQL<a class="headerlink" href="#postgresql" title="Permalink to this headline">¶</a></h3>
+<div class="highlight-python"><pre>PGPASSWORD="password" pg_restore -c -d owncloud -h [server] -U [username] owncloud-sqlbkp.bak</pre>
+</div>
+</div>
+</div>
+</div>
+
+
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+ </body>
+</html>
diff --cc core/doc/admin/release/objects.inv
index 1ec1140,0000000..8f9ac82
mode 100644,000000..100644
Binary files differ
diff --cc version.php
index 7ac7ec2,063c6bc..597952b
--- a/version.php
+++ b/version.php
@@@ -1,6 -1,19 +1,6 @@@
-<?php
-
-// We only can count up. The 4. digit is only for the internal patchlevel to trigger DB upgrades
-// between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel
-// when updating major/minor version number.
-$OC_Version=array(7, 0, 8, 2);
-
-// The human readable string
-$OC_VersionString='7.0.8';
-
-// The ownCloud edition
-$OC_Edition='';
-
-// The ownCloud channel
-$OC_Channel='git';
-
-// The build number
-$OC_Build='';
-
+<?php
- $OC_Version = array(7,0,7,2);
- $OC_VersionString = '7.0.7';
++$OC_Version = array(7,0,8,2);
++$OC_VersionString = '7.0.8';
+$OC_Edition = '';
+$OC_Channel = 'stable';
- $OC_Build = '2015-07-03T10:38:58+00:00 4df15bf573c1dd15bc838e742eefc2bc68740613';
++$OC_Build = '2015-08-08T00:32:39+00:00 ebe5c0576443c93fe75478d6df725475dde3dec7';
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list