diff options
40 files changed, 587 insertions, 35 deletions
diff --git a/.htaccess b/.htaccess index ec33fe31e15..085467e91ca 100644 --- a/.htaccess +++ b/.htaccess @@ -65,7 +65,6 @@ RewriteCond %{REQUEST_FILENAME} !/updater/ RewriteCond %{REQUEST_FILENAME} !/ocs-provider/ RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/.* - RewriteRule .* index.php [PT,E=PATH_INFO:$1] </IfModule> <IfModule mod_mime.c> AddType image/svg+xml svg svgz diff --git a/apps/comments/appinfo/info.xml b/apps/comments/appinfo/info.xml index 9ae084945c7..c61b4a0fc7c 100644 --- a/apps/comments/appinfo/info.xml +++ b/apps/comments/appinfo/info.xml @@ -4,7 +4,7 @@ <name>Comments</name> <description>Files app plugin to add comments to files</description> <licence>AGPL</licence> - <author>Arthur Shiwon, Vincent Petry</author> + <author>Arthur Schiwon, Vincent Petry</author> <default_enable/> <version>0.3.0</version> <dependencies> diff --git a/apps/comments/l10n/de.js b/apps/comments/l10n/de.js index 636d9b88f2e..be0c332740f 100644 --- a/apps/comments/l10n/de.js +++ b/apps/comments/l10n/de.js @@ -2,16 +2,16 @@ OC.L10N.register( "comments", { "<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien", - "%1$s commented" : "%1$s kommentiert", - "%1$s commented on %2$s" : "%1$s kommentiert %2$s", + "%1$s commented" : "%1$s kommentierte", + "%1$s commented on %2$s" : "%1$s kommentierte %2$s", "Comments" : "Kommentare", - "Type in a new comment..." : "Gebe bitte einen neuen Kommentar ein...", + "Type in a new comment..." : "Bitte gib einen neuen Kommentar ein...", "Delete comment" : "Kommentar löschen", "Post" : "Speichern", "Cancel" : "Abbrechen", "Edit comment" : "Kommentar bearbeiten", "[Deleted user]" : "[Gelöschter Benutzer]", - "No other comments available" : "Keine andere Kommentare vorhanden", + "No other comments available" : "Keine anderen Kommentare vorhanden", "More comments..." : "Weitere Kommentare...", "Save" : "Speichern", "Allowed characters {count} of {max}" : "Erlaubte Zeichen {count} von {max}", diff --git a/apps/comments/l10n/de.json b/apps/comments/l10n/de.json index 67c5352ab46..5981609711e 100644 --- a/apps/comments/l10n/de.json +++ b/apps/comments/l10n/de.json @@ -1,15 +1,15 @@ { "translations": { "<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien", - "%1$s commented" : "%1$s kommentiert", - "%1$s commented on %2$s" : "%1$s kommentiert %2$s", + "%1$s commented" : "%1$s kommentierte", + "%1$s commented on %2$s" : "%1$s kommentierte %2$s", "Comments" : "Kommentare", - "Type in a new comment..." : "Gebe bitte einen neuen Kommentar ein...", + "Type in a new comment..." : "Bitte gib einen neuen Kommentar ein...", "Delete comment" : "Kommentar löschen", "Post" : "Speichern", "Cancel" : "Abbrechen", "Edit comment" : "Kommentar bearbeiten", "[Deleted user]" : "[Gelöschter Benutzer]", - "No other comments available" : "Keine andere Kommentare vorhanden", + "No other comments available" : "Keine anderen Kommentare vorhanden", "More comments..." : "Weitere Kommentare...", "Save" : "Speichern", "Allowed characters {count} of {max}" : "Erlaubte Zeichen {count} von {max}", diff --git a/apps/dav/command/migratecalendars.php b/apps/dav/command/migratecalendars.php index 5e7f6e9b697..d887309ac3e 100644 --- a/apps/dav/command/migratecalendars.php +++ b/apps/dav/command/migratecalendars.php @@ -61,8 +61,8 @@ class MigrateCalendars extends Command { protected function execute(InputInterface $input, OutputInterface $output) { $this->service->setup(); - if ($input->hasArgument('user')) { - $user = $input->getArgument('user'); + $user = $input->getArgument('user'); + if (!is_null($user)) { if (!$this->userManager->userExists($user)) { throw new \InvalidArgumentException("User <$user> in unknown."); } diff --git a/apps/dav/command/syncbirthdaycalendar.php b/apps/dav/command/syncbirthdaycalendar.php index 5a2baa31d93..90a73a3eeb3 100644 --- a/apps/dav/command/syncbirthdaycalendar.php +++ b/apps/dav/command/syncbirthdaycalendar.php @@ -61,8 +61,8 @@ class SyncBirthdayCalendar extends Command { * @param OutputInterface $output */ protected function execute(InputInterface $input, OutputInterface $output) { - if ($input->getArgument('user') !== null) { - $user = $input->getArgument('user'); + $user = $input->getArgument('user'); + if (!is_null($user)) { if (!$this->userManager->userExists($user)) { throw new \InvalidArgumentException("User <$user> in unknown."); } diff --git a/apps/dav/lib/caldav/calendar.php b/apps/dav/lib/caldav/calendar.php index 55f1acec396..1e87f9b4333 100644 --- a/apps/dav/lib/caldav/calendar.php +++ b/apps/dav/lib/caldav/calendar.php @@ -22,11 +22,20 @@ namespace OCA\DAV\CalDAV; use OCA\DAV\DAV\Sharing\IShareable; +use Sabre\CalDAV\Backend\BackendInterface; use Sabre\DAV\Exception\Forbidden; use Sabre\DAV\PropPatch; class Calendar extends \Sabre\CalDAV\Calendar implements IShareable { + public function __construct(BackendInterface $caldavBackend, $calendarInfo) { + parent::__construct($caldavBackend, $calendarInfo); + + if ($this->getName() === BirthdayService::BIRTHDAY_CALENDAR_URI) { + $this->calendarInfo['{http://sabredav.org/ns}read-only'] = true; + } + } + /** * Updates the list of shares. * @@ -100,10 +109,6 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable { } function delete() { - if ($this->getName() === BirthdayService::BIRTHDAY_CALENDAR_URI) { - throw new Forbidden(); - } - if (isset($this->calendarInfo['{http://owncloud.org/ns}owner-principal'])) { $principal = 'principal:' . parent::getOwner(); $shares = $this->getShares(); diff --git a/apps/dav/tests/unit/caldav/calendartest.php b/apps/dav/tests/unit/caldav/calendartest.php index c41070ea435..e7f4d57067c 100644 --- a/apps/dav/tests/unit/caldav/calendartest.php +++ b/apps/dav/tests/unit/caldav/calendartest.php @@ -32,7 +32,7 @@ class CalendarTest extends TestCase { /** @var \PHPUnit_Framework_MockObject_MockObject | CalDavBackend $backend */ $backend = $this->getMockBuilder('OCA\DAV\CalDAV\CalDavBackend')->disableOriginalConstructor()->getMock(); $backend->expects($this->once())->method('updateShares'); - $backend->method('getShares')->willReturn([ + $backend->expects($this->any())->method('getShares')->willReturn([ ['href' => 'principal:user2'] ]); $calendarInfo = [ @@ -52,7 +52,7 @@ class CalendarTest extends TestCase { /** @var \PHPUnit_Framework_MockObject_MockObject | CalDavBackend $backend */ $backend = $this->getMockBuilder('OCA\DAV\CalDAV\CalDavBackend')->disableOriginalConstructor()->getMock(); $backend->expects($this->never())->method('updateShares'); - $backend->method('getShares')->willReturn([ + $backend->expects($this->any())->method('getShares')->willReturn([ ['href' => 'principal:group2'] ]); $calendarInfo = [ @@ -90,7 +90,8 @@ class CalendarTest extends TestCase { $calendarInfo = [ '{http://owncloud.org/ns}owner-principal' => 'user1', 'principaluri' => 'user2', - 'id' => 666 + 'id' => 666, + 'uri' => 'default' ]; $c = new Calendar($backend, $calendarInfo); diff --git a/apps/files_external/tests/env/stop-amazons3-ceph.sh b/apps/files_external/tests/env/stop-amazons3-ceph.sh index dcf30d8c515..f559f8f9058 100755 --- a/apps/files_external/tests/env/stop-amazons3-ceph.sh +++ b/apps/files_external/tests/env/stop-amazons3-ceph.sh @@ -27,6 +27,7 @@ fi; for container in `cat $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.amazons3`; do echo "Stopping and removing docker container $container" # kills running container and removes it + docker stop $container docker rm -f $container done; diff --git a/apps/files_external/tests/env/stop-ftp-morrisjobke.sh b/apps/files_external/tests/env/stop-ftp-morrisjobke.sh index e30ec2e594a..eedf8f82a50 100755 --- a/apps/files_external/tests/env/stop-ftp-morrisjobke.sh +++ b/apps/files_external/tests/env/stop-ftp-morrisjobke.sh @@ -27,6 +27,7 @@ fi; for container in `cat $thisFolder/dockerContainerMorrisJobke.$EXECUTOR_NUMBER.ftp`; do echo "Stopping and removing docker container $container" # kills running container and removes it + docker stop $container docker rm -f $container done; diff --git a/apps/files_external/tests/env/stop-sftp-atmoz.sh b/apps/files_external/tests/env/stop-sftp-atmoz.sh index 0c2fd0b5bc6..44380152340 100755 --- a/apps/files_external/tests/env/stop-sftp-atmoz.sh +++ b/apps/files_external/tests/env/stop-sftp-atmoz.sh @@ -27,6 +27,7 @@ fi; for container in `cat $thisFolder/dockerContainerAtmoz.$EXECUTOR_NUMBER.sftp`; do echo "Stopping and removing docker container $container" # kills running container and removes it + docker stop $container docker rm -f $container done; diff --git a/apps/files_external/tests/env/stop-smb-silvershell.sh b/apps/files_external/tests/env/stop-smb-silvershell.sh index 40147b89106..56866f13b1f 100755 --- a/apps/files_external/tests/env/stop-smb-silvershell.sh +++ b/apps/files_external/tests/env/stop-smb-silvershell.sh @@ -27,6 +27,7 @@ fi; for container in `cat $thisFolder/dockerContainerSilvershell.$EXECUTOR_NUMBER.smb`; do echo "Stopping and removing docker container $container" # kills running container and removes it + docker stop $container docker rm -f $container done; diff --git a/apps/files_external/tests/env/stop-swift-ceph.sh b/apps/files_external/tests/env/stop-swift-ceph.sh index 9f15fb05a7d..418f96e63f6 100755 --- a/apps/files_external/tests/env/stop-swift-ceph.sh +++ b/apps/files_external/tests/env/stop-swift-ceph.sh @@ -29,6 +29,7 @@ for container in `cat $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.swift`; d echo "Stopping and removing docker container $container" # kills running container and removes it + docker stop $container docker rm -f $container done; diff --git a/apps/files_external/tests/env/stop-webdav-ownCloud.sh b/apps/files_external/tests/env/stop-webdav-ownCloud.sh index 8eaf1ba754f..613a22efb8c 100755 --- a/apps/files_external/tests/env/stop-webdav-ownCloud.sh +++ b/apps/files_external/tests/env/stop-webdav-ownCloud.sh @@ -27,6 +27,7 @@ fi; for container in `cat $thisFolder/dockerContainerOwnCloud.$EXECUTOR_NUMBER.webdav`; do echo "Stopping and removing docker container $container" # kills running container and removes it + docker stop $container docker rm -f $container done; diff --git a/apps/files_sharing/l10n/hu_HU.js b/apps/files_sharing/l10n/hu_HU.js index aee9a893a19..d76fa12435e 100644 --- a/apps/files_sharing/l10n/hu_HU.js +++ b/apps/files_sharing/l10n/hu_HU.js @@ -80,8 +80,8 @@ OC.L10N.register( "Federated Cloud" : "Egyesített felhő", "Your Federated Cloud ID:" : "Egyesített felhő azonosító:", "Share it:" : "Ossza meg:", - "Add to your website" : "Add hozzá saját weboldaladhoz", + "Add to your website" : "Adja hozzá saját weboldalához", "Share with me via ownCloud" : "Ossza meg velem ownCloud-on keresztül", - "HTML Code:" : "HTML Code:" + "HTML Code:" : "HTML kód:" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/hu_HU.json b/apps/files_sharing/l10n/hu_HU.json index a91d017d0fd..242961a1960 100644 --- a/apps/files_sharing/l10n/hu_HU.json +++ b/apps/files_sharing/l10n/hu_HU.json @@ -78,8 +78,8 @@ "Federated Cloud" : "Egyesített felhő", "Your Federated Cloud ID:" : "Egyesített felhő azonosító:", "Share it:" : "Ossza meg:", - "Add to your website" : "Add hozzá saját weboldaladhoz", + "Add to your website" : "Adja hozzá saját weboldalához", "Share with me via ownCloud" : "Ossza meg velem ownCloud-on keresztül", - "HTML Code:" : "HTML Code:" + "HTML Code:" : "HTML kód:" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/updatenotification/js/notification.js b/apps/updatenotification/js/notification.js index 9d22bcb2309..810b9c168af 100644 --- a/apps/updatenotification/js/notification.js +++ b/apps/updatenotification/js/notification.js @@ -18,7 +18,7 @@ $(document).ready(function(){ version = oc_updateState.updateVersion, docLink = oc_updateState.updateLink, text = t('core', '{version} is available. Get more information on how to update.', {version: version}), - element = $('<a>').attr('href', docLink).text(text); + element = $('<a>').attr('href', docLink).attr('target','_blank').text(text); OC.Notification.showTemporary( element, diff --git a/apps/updatenotification/l10n/et_EE.js b/apps/updatenotification/l10n/et_EE.js index e0ff9695157..e22082ff92e 100644 --- a/apps/updatenotification/l10n/et_EE.js +++ b/apps/updatenotification/l10n/et_EE.js @@ -1,6 +1,7 @@ OC.L10N.register( "updatenotification", { + "Updated channel" : "Uuendatud kanal", "{version} is available. Get more information on how to update." : "{version} on saadaval. Vaata lisainfot uuendamise kohta.", "Updater" : "Uuendaja", "A new version is available: %s" : "Saadaval on uus versioon: %s", diff --git a/apps/updatenotification/l10n/et_EE.json b/apps/updatenotification/l10n/et_EE.json index 6a7a80ab08e..9ab8d224a7c 100644 --- a/apps/updatenotification/l10n/et_EE.json +++ b/apps/updatenotification/l10n/et_EE.json @@ -1,4 +1,5 @@ { "translations": { + "Updated channel" : "Uuendatud kanal", "{version} is available. Get more information on how to update." : "{version} on saadaval. Vaata lisainfot uuendamise kohta.", "Updater" : "Uuendaja", "A new version is available: %s" : "Saadaval on uus versioon: %s", diff --git a/apps/user_ldap/l10n/he.js b/apps/user_ldap/l10n/he.js index b0ef6a5c0a3..49de89877b0 100644 --- a/apps/user_ldap/l10n/he.js +++ b/apps/user_ldap/l10n/he.js @@ -123,10 +123,12 @@ OC.L10N.register( "The LDAP attribute to use to generate the user's display name." : "תכונת LDAP לשימוש כדי להפיק את שם התצוגה של המשתמש.", "2nd User Display Name Field" : "שדה שני לשם תצוגת משתמש", "Base User Tree" : "עץ משתמש בסיסי", + "One User Base DN per line" : "משתמש DN בסיסי אחד לשורה", "User Search Attributes" : "מאפייני חיפוש משתמש", "Optional; one attribute per line" : "אופציונאלי; מאפיין אחד בשורה", "Group Display Name Field" : "שדה שם תצוגה לקבוצה", "Base Group Tree" : "עץ קבוצה בסיסי", + "One Group Base DN per line" : "קבוצת DN בסיסית לשורה", "Group Search Attributes" : "מאפייני חיפוש קבוצה", "Group-Member association" : "שיוך חברי-קבוצה", "Dynamic Group Member URL" : "נתיב חבר קבוצה דינמית", diff --git a/apps/user_ldap/l10n/he.json b/apps/user_ldap/l10n/he.json index bfa91e63aba..cf55f7e4a60 100644 --- a/apps/user_ldap/l10n/he.json +++ b/apps/user_ldap/l10n/he.json @@ -121,10 +121,12 @@ "The LDAP attribute to use to generate the user's display name." : "תכונת LDAP לשימוש כדי להפיק את שם התצוגה של המשתמש.", "2nd User Display Name Field" : "שדה שני לשם תצוגת משתמש", "Base User Tree" : "עץ משתמש בסיסי", + "One User Base DN per line" : "משתמש DN בסיסי אחד לשורה", "User Search Attributes" : "מאפייני חיפוש משתמש", "Optional; one attribute per line" : "אופציונאלי; מאפיין אחד בשורה", "Group Display Name Field" : "שדה שם תצוגה לקבוצה", "Base Group Tree" : "עץ קבוצה בסיסי", + "One Group Base DN per line" : "קבוצת DN בסיסית לשורה", "Group Search Attributes" : "מאפייני חיפוש קבוצה", "Group-Member association" : "שיוך חברי-קבוצה", "Dynamic Group Member URL" : "נתיב חבר קבוצה דינמית", diff --git a/autotest.sh b/autotest.sh index ba6ec383866..33c4ad50de8 100755 --- a/autotest.sh +++ b/autotest.sh @@ -122,6 +122,7 @@ function cleanup_config { if [ ! -z "$DOCKER_CONTAINER_ID" ]; then echo "Kill the docker $DOCKER_CONTAINER_ID" + docker stop "$DOCKER_CONTAINER_ID" docker rm -f "$DOCKER_CONTAINER_ID" fi @@ -288,6 +289,7 @@ function execute_tests { if [ ! -z "$DOCKER_CONTAINER_ID" ] ; then echo "Kill the docker $DOCKER_CONTAINER_ID" + docker stop $DOCKER_CONTAINER_ID docker rm -f $DOCKER_CONTAINER_ID unset DOCKER_CONTAINER_ID fi diff --git a/composer.json b/composer.json new file mode 100644 index 00000000000..98fdb3aa31c --- /dev/null +++ b/composer.json @@ -0,0 +1,8 @@ +{ + "config" : { + "vendor-dir": "lib/composer" + }, + "autoload" : { + "psr-4": {"OC\\": "lib/private"} + } +} diff --git a/core/js/files/iedavclient.js b/core/js/files/iedavclient.js index e5b3968a197..9e83f5b9a22 100644 --- a/core/js/files/iedavclient.js +++ b/core/js/files/iedavclient.js @@ -39,7 +39,12 @@ for(ii in headers) { xhr.setRequestHeader(ii, headers[ii]); } - xhr.send(body); + + if (body === undefined) { + xhr.send(); + } else { + xhr.send(body); + } return new Promise(function(fulfill, reject) { diff --git a/core/l10n/hu_HU.js b/core/l10n/hu_HU.js index c99f7bbbe0b..d372a6c40ef 100644 --- a/core/l10n/hu_HU.js +++ b/core/l10n/hu_HU.js @@ -213,7 +213,7 @@ OC.L10N.register( "File not found" : "Fájl nem található", "The specified document has not been found on the server." : "A meghatározott dokumentum nem található a szerveren.", "You can click here to return to %s." : "Ide kattintva visszatérhetsz ide: %s.", - "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Üdv!\\n\n\\n\nÉrtesítjük, hogy %s megosztotta Önnel a következőt: %s.\\n\nItt lehet megnézni: %s\\n\n\\n", + "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Üdvözöljük!\n\nÉrtesítjük, hogy %s megosztotta Önnel a következőt: %s.\nItt nézheti meg: %s\n\n", "The share will expire on %s." : "A megosztás lejár ekkor %s", "Cheers!" : "Üdv.", "Internal Server Error" : "Belső szerver hiba", @@ -253,7 +253,7 @@ OC.L10N.register( "Finishing …" : "Befejezés ...", "Need help?" : "Segítségre van szüksége?", "See the documentation" : "Nézze meg a dokumentációt", - "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Üdvözöljük!<br><br>\n\nÉrtesítjük, hogy %s megosztotta Önnel ezt az állományt: <strong>%s</strong><br>\n<a href=\"%s\">Itt lehet megnézni!</a><br><br>", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Üdvözöljük!<br /><br />\n\nÉrtesítjük, hogy %s megosztotta Önnel a következőt: <strong>%s</strong><br />\n<a href=\"%s\">Itt nézheti meg.</a><br /><br />", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Az alkalmazás megfelelő működéséhez JavaScript szükséges. Kérem {linkstart}engedélyezze a JavaScript-et{linkend} és frissítse a lapot.", "Log out" : "Kilépés", "Search" : "Keresés", diff --git a/core/l10n/hu_HU.json b/core/l10n/hu_HU.json index 99f3e448e63..a8f5da8d898 100644 --- a/core/l10n/hu_HU.json +++ b/core/l10n/hu_HU.json @@ -211,7 +211,7 @@ "File not found" : "Fájl nem található", "The specified document has not been found on the server." : "A meghatározott dokumentum nem található a szerveren.", "You can click here to return to %s." : "Ide kattintva visszatérhetsz ide: %s.", - "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Üdv!\\n\n\\n\nÉrtesítjük, hogy %s megosztotta Önnel a következőt: %s.\\n\nItt lehet megnézni: %s\\n\n\\n", + "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Üdvözöljük!\n\nÉrtesítjük, hogy %s megosztotta Önnel a következőt: %s.\nItt nézheti meg: %s\n\n", "The share will expire on %s." : "A megosztás lejár ekkor %s", "Cheers!" : "Üdv.", "Internal Server Error" : "Belső szerver hiba", @@ -251,7 +251,7 @@ "Finishing …" : "Befejezés ...", "Need help?" : "Segítségre van szüksége?", "See the documentation" : "Nézze meg a dokumentációt", - "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Üdvözöljük!<br><br>\n\nÉrtesítjük, hogy %s megosztotta Önnel ezt az állományt: <strong>%s</strong><br>\n<a href=\"%s\">Itt lehet megnézni!</a><br><br>", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Üdvözöljük!<br /><br />\n\nÉrtesítjük, hogy %s megosztotta Önnel a következőt: <strong>%s</strong><br />\n<a href=\"%s\">Itt nézheti meg.</a><br /><br />", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Az alkalmazás megfelelő működéséhez JavaScript szükséges. Kérem {linkstart}engedélyezze a JavaScript-et{linkend} és frissítse a lapot.", "Log out" : "Kilépés", "Search" : "Keresés", diff --git a/lib/base.php b/lib/base.php index 70498f31567..7db4ec4a8fa 100644 --- a/lib/base.php +++ b/lib/base.php @@ -518,6 +518,9 @@ class OC { exit(); } + // Add default composer PSR-4 autoloader + require_once OC::$SERVERROOT . '/lib/composer/autoload.php'; + // setup the basic server self::$server = new \OC\Server(\OC::$WEBROOT, self::$config); \OC::$server->getEventLogger()->log('autoloader', 'Autoloader', $loaderStart, $loaderEnd); diff --git a/lib/composer/autoload.php b/lib/composer/autoload.php new file mode 100644 index 00000000000..610dbf34bca --- /dev/null +++ b/lib/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer' . '/autoload_real.php'; + +return ComposerAutoloaderInit53792487c5a8370acc0b06b1a864ff4c::getLoader(); diff --git a/lib/composer/composer/ClassLoader.php b/lib/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..ff6ecfb822f --- /dev/null +++ b/lib/composer/composer/ClassLoader.php @@ -0,0 +1,413 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + + private $classMapAuthoritative = false; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731 + if ('\\' == $class[0]) { + $class = substr($class, 1); + } + + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative) { + return false; + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if ($file === null && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if ($file === null) { + // Remember that this class does not exist. + return $this->classMap[$class] = false; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) { + if (0 === strpos($class, $prefix)) { + foreach ($this->prefixDirsPsr4[$prefix] as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/lib/composer/composer/LICENSE b/lib/composer/composer/LICENSE new file mode 100644 index 00000000000..c8d57af8b27 --- /dev/null +++ b/lib/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) 2015 Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..71dd9c179b2 --- /dev/null +++ b/lib/composer/composer/autoload_classmap.php @@ -0,0 +1,9 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = dirname(dirname($vendorDir)); + +return array( +); diff --git a/lib/composer/composer/autoload_namespaces.php b/lib/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..4a9c20beed0 --- /dev/null +++ b/lib/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = dirname(dirname($vendorDir)); + +return array( +); diff --git a/lib/composer/composer/autoload_psr4.php b/lib/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..a4b49f0f55f --- /dev/null +++ b/lib/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = dirname(dirname($vendorDir)); + +return array( + 'OC\\' => array($baseDir . '/lib/private'), +); diff --git a/lib/composer/composer/autoload_real.php b/lib/composer/composer/autoload_real.php new file mode 100644 index 00000000000..5fbea76758b --- /dev/null +++ b/lib/composer/composer/autoload_real.php @@ -0,0 +1,45 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInit53792487c5a8370acc0b06b1a864ff4c +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInit53792487c5a8370acc0b06b1a864ff4c', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInit53792487c5a8370acc0b06b1a864ff4c', 'loadClassLoader')); + + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + + $loader->register(true); + + return $loader; + } +} diff --git a/lib/composer/composer/installed.json b/lib/composer/composer/installed.json new file mode 100644 index 00000000000..fe51488c706 --- /dev/null +++ b/lib/composer/composer/installed.json @@ -0,0 +1 @@ +[] diff --git a/lib/l10n/hu_HU.js b/lib/l10n/hu_HU.js index 3c96c9770e2..69f23c14997 100644 --- a/lib/l10n/hu_HU.js +++ b/lib/l10n/hu_HU.js @@ -74,7 +74,7 @@ OC.L10N.register( "Can't create or write into the data directory %s" : "Nem sikerült létrehozni vagy irni a \"data\" könyvtárba %s", "Invalid Federated Cloud ID" : "Érvénytelen Egyesített Felhő Azonosító", "%s shared »%s« with you" : "%s megosztotta Önnel ezt: »%s«", - "%s via %s" : "%s über %s", + "%s via %s" : "%s - %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "%s megosztása sikertelen, mert a megosztási alrendszer nem engedi a %l típus megosztását", "Sharing %s failed, because the file does not exist" : "%s megosztása sikertelen, mert a fájl nem létezik", "You are not allowed to share %s" : "Önnek nincs jogosultsága %s megosztására", diff --git a/lib/l10n/hu_HU.json b/lib/l10n/hu_HU.json index e73e82cc283..cd934efe99d 100644 --- a/lib/l10n/hu_HU.json +++ b/lib/l10n/hu_HU.json @@ -72,7 +72,7 @@ "Can't create or write into the data directory %s" : "Nem sikerült létrehozni vagy irni a \"data\" könyvtárba %s", "Invalid Federated Cloud ID" : "Érvénytelen Egyesített Felhő Azonosító", "%s shared »%s« with you" : "%s megosztotta Önnel ezt: »%s«", - "%s via %s" : "%s über %s", + "%s via %s" : "%s - %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "%s megosztása sikertelen, mert a megosztási alrendszer nem engedi a %l típus megosztását", "Sharing %s failed, because the file does not exist" : "%s megosztása sikertelen, mert a fájl nem létezik", "You are not allowed to share %s" : "Önnek nincs jogosultsága %s megosztására", diff --git a/lib/private/server.php b/lib/private/Server.php index 81187cdd715..81187cdd715 100644 --- a/lib/private/server.php +++ b/lib/private/Server.php diff --git a/lib/private/setup.php b/lib/private/setup.php index b9f8828227e..8a10a9cfbec 100644 --- a/lib/private/setup.php +++ b/lib/private/setup.php @@ -422,8 +422,9 @@ class Setup { // Add rewrite base $webRoot = !empty(\OC::$WEBROOT) ? \OC::$WEBROOT : '/'; - $content.="\n<IfModule mod_rewrite.c>"; - $content.="\n RewriteBase ".$webRoot; + $content .= "\n<IfModule mod_rewrite.c>"; + $content .= "\n RewriteRule .* index.php [PT,E=PATH_INFO:$1]"; + $content .= "\n RewriteBase ".$webRoot; $content .= "\n <IfModule mod_env.c>"; $content .= "\n SetEnv front_controller_active true"; $content .= "\n <IfModule mod_dir.c>"; diff --git a/tests/objectstore/stop-swift-ceph.sh b/tests/objectstore/stop-swift-ceph.sh index 23423e73d6a..afc5f712ab4 100755 --- a/tests/objectstore/stop-swift-ceph.sh +++ b/tests/objectstore/stop-swift-ceph.sh @@ -31,6 +31,7 @@ if [ -e $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.swift ]; then fi echo "Stopping and removing docker container $container" # kills running container and removes it + docker stop $container docker rm -f $container done; fi; |