diff --git a/apps/files_archive/tests/data/data.tar.gz b/apps/files_archive/tests/data/data.tar.gz new file mode 100644 index 0000000000..39f2cdada0 Binary files /dev/null and b/apps/files_archive/tests/data/data.tar.gz differ diff --git a/apps/files_archive/tests/data/data.zip b/apps/files_archive/tests/data/data.zip new file mode 100644 index 0000000000..eccef53eb4 Binary files /dev/null and b/apps/files_archive/tests/data/data.zip differ diff --git a/apps/files_archive/tests/data/lorem.txt b/apps/files_archive/tests/data/lorem.txt new file mode 100644 index 0000000000..b62c3fb2ff --- /dev/null +++ b/apps/files_archive/tests/data/lorem.txt @@ -0,0 +1,4 @@ +Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. +Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. +Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. \ No newline at end of file diff --git a/apps/remoteStorage/auth.php b/apps/remoteStorage/auth.php index d2b9eece35..69d7cfc3b9 100644 --- a/apps/remoteStorage/auth.php +++ b/apps/remoteStorage/auth.php @@ -77,7 +77,7 @@ if(count($pathParts) == 2 && $pathParts[0] == '') {
diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php index 4e4da56f05..113c8d6b7b 100644 --- a/apps/user_ldap/appinfo/app.php +++ b/apps/user_ldap/appinfo/app.php @@ -35,7 +35,7 @@ define('OC_USER_BACKEND_LDAP_DEFAULT_DISPLAY_NAME', 'uid'); // register user backend OC_User::useBackend( 'LDAP' ); -OC_Group::useBackend( 'LDAP' ); +OC_Group::useBackend( new OC_GROUP_LDAP() ); // add settings page to navigation $entry = array( diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php index 92e3b53d24..e5948459dd 100644 --- a/apps/user_ldap/group_ldap.php +++ b/apps/user_ldap/group_ldap.php @@ -29,6 +29,7 @@ class OC_GROUP_LDAP extends OC_Group_Backend { public function __construct() { $this->ldapGroupFilter = OC_Appconfig::getValue('user_ldap', 'ldap_group_filter', '(objectClass=posixGroup)'); $this->ldapGroupDisplayName = OC_Appconfig::getValue('user_ldap', 'ldap_group_display_name', 'cn'); + $this->ldapGroupMemberAttr = OC_Appconfig::getValue('user_ldap', 'ldap_group_member_attr', 'memberUid'); } /** @@ -83,7 +84,7 @@ class OC_GROUP_LDAP extends OC_Group_Backend { $this->ldapGroupDisplayName.'='.$gid )); - return $this->retrieveList($filter, OC_LDAP::conf('ldapUserDisplayName')); + return $this->retrieveList($filter, $this->ldapGroupMemberAttr); } /** @@ -102,6 +103,15 @@ class OC_GROUP_LDAP extends OC_Group_Backend { } } + /** + * check if a group exists + * @param string $gid + * @return bool + */ + public function groupExists($gid){ + return in_array($gid, $this->getGroups()); + } + private function retrieveList($filter, $attr) { $list = OC_LDAP::search($filter, $attr); diff --git a/apps/user_ldap/lib_ldap.php b/apps/user_ldap/lib_ldap.php index 5188ef9402..eea4a82011 100644 --- a/apps/user_ldap/lib_ldap.php +++ b/apps/user_ldap/lib_ldap.php @@ -21,7 +21,14 @@ * */ -define(LDAP_GROUP_MEMBER_ASSOC_ATTR,'memberUid'); +define('LDAP_GROUP_MEMBER_ASSOC_ATTR','memberUid'); + +//needed to unbind, because we use OC_LDAP only statically +class OC_LDAP_DESTRUCTOR { + public function __destruct() { + OC_LDAP::destruct(); + } +} class OC_LDAP { static protected $ldapConnectionRes = false; @@ -38,14 +45,19 @@ class OC_LDAP { // user and group settings, that are needed in both backends static public $ldapUserDisplayName; - static public function init() { self::readConfiguration(); self::establishConnection(); } + static public function destruct() { + @ldap_unbind(self::$ldapConnectionRes); + } + static public function conf($key) { - $availableProperties = array('ldapUserDisplayName'); + $availableProperties = array( + 'ldapUserDisplayName', + ); if(in_array($key, $availableProperties)) { return self::$$key; @@ -143,8 +155,19 @@ class OC_LDAP { self::$ldapNoCase = OC_Appconfig::getValue('user_ldap', 'ldap_nocase', 0); self::$ldapUserDisplayName = OC_Appconfig::getValue('user_ldap', 'ldap_display_name', OC_USER_BACKEND_LDAP_DEFAULT_DISPLAY_NAME); - //TODO: sanity checking - self::$configured = true; + if( + !empty(self::$ldapHost) + && !empty(self::$ldapPort) + && ( + (!empty(self::$ldapAgentName) && !empty(self::$ldapAgentPassword)) + || ( empty(self::$ldapAgentName) && empty(self::$ldapAgentPassword)) + ) + && !empty(self::$ldapBase) + && !empty(self::$ldapUserDisplayName) + ) + { + self::$configured = true; + } } } @@ -152,6 +175,9 @@ class OC_LDAP { * Connects and Binds to LDAP */ static private function establishConnection() { + if(!self::$configured) { + return false; + } if(!self::$ldapConnectionRes) { self::$ldapConnectionRes = ldap_connect(self::$ldapHost, self::$ldapPort); if(ldap_set_option(self::$ldapConnectionRes, LDAP_OPT_PROTOCOL_VERSION, 3)) { @@ -162,7 +188,6 @@ class OC_LDAP { } } - //TODO: Check if it works. Before, it was outside the resource-condition $ldapLogin = @ldap_bind(self::$ldapConnectionRes, self::$ldapAgentName, self::$ldapAgentPassword ); if(!$ldapLogin) { return false; diff --git a/apps/user_openid/templates/nomode.php b/apps/user_openid/templates/nomode.php index f85d28cdc9..3bab4c2edd 100644 --- a/apps/user_openid/templates/nomode.php +++ b/apps/user_openid/templates/nomode.php @@ -5,7 +5,7 @@ global $profile; ?>
- " alt="ownCloud" /> + " alt="ownCloud" />
  • diff --git a/core/css/styles.css b/core/css/styles.css index 6380a3d74c..afb0204112 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -17,7 +17,7 @@ body { background:#fefefe; font:normal .8em/1.6em "Lucida Grande", Arial, Verdan /* HEADERS */ #body-user #header, #body-settings #header { position:fixed; top:0; z-index:100; width:100%; height:2.5em; padding:.5em; background:#1d2d44; -moz-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; } -#body-login #header { margin: -2em auto 0; text-align:center; height:10em; +#body-login #header { margin: -2em auto 0; text-align:center; height:10em; padding:1em 0 .5em; -moz-box-shadow:0 0 1em rgba(0, 0, 0, .5); -webkit-box-shadow:0 0 1em rgba(0, 0, 0, .5); box-shadow:0 0 1em rgba(0, 0, 0, .5); background: #1d2d44; /* Old browsers */ background: -moz-linear-gradient(top, #35537a 0%, #1d2d42 100%); /* FF3.6+ */ @@ -58,8 +58,10 @@ input[type="submit"].highlight{ background:#ffc100; border:1px solid #db0; text- #controls .button { display:inline-block; } #content { top: 3.5em; left: 12.5em; position: absolute; } #leftcontent, .leftcontent { position:fixed; overflow: auto; top:6.4em; width:20em; background:#f8f8f8; border-right:1px solid #ddd; } -#leftcontent li, .leftcontent li { background:#f8f8f8; padding:.3em .8em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; -webkit-transition:background-color 500ms; -moz-transition:background-color 500ms; -o-transition:background-color 500ms; transition:background-color 500ms; } +#leftcontent li, .leftcontent li { background:#f8f8f8; padding:.5em .8em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; -webkit-transition:background-color 200ms; -moz-transition:background-color 200ms; -o-transition:background-color 200ms; transition:background-color 200ms; } #leftcontent li:hover, #leftcontent li:active, #leftcontent li.active, .leftcontent li:hover, .leftcontent li:active, .leftcontent li.active { background:#eee; } +#leftcontent li.active, .leftcontent li.active { font-weight:bold; } +#leftcontent li:hover, .leftcontent li:hover { color:#333; background:#ddd; } #rightcontent, .rightcontent { position:fixed; top: 6.4em; left: 32.5em; overflow: auto } diff --git a/core/img/favicon-touch.png b/core/img/favicon-touch.png index 20af826523..cfaaa4399a 100644 Binary files a/core/img/favicon-touch.png and b/core/img/favicon-touch.png differ diff --git a/core/img/favicon-touch.svg b/core/img/favicon-touch.svg new file mode 100644 index 0000000000..6d766d3ced --- /dev/null +++ b/core/img/favicon-touch.svg @@ -0,0 +1,787 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/img/favicon.png b/core/img/favicon.png index a7ee766dfa..c1b1cb6546 100644 Binary files a/core/img/favicon.png and b/core/img/favicon.png differ diff --git a/core/img/favicon.svg b/core/img/favicon.svg new file mode 100644 index 0000000000..f055c32efb --- /dev/null +++ b/core/img/favicon.svg @@ -0,0 +1,796 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/img/icon-error.png b/core/img/icon-error.png new file mode 100644 index 0000000000..ed438a32fd Binary files /dev/null and b/core/img/icon-error.png differ diff --git a/core/img/icon-error.svg b/core/img/icon-error.svg new file mode 100644 index 0000000000..6392d819ad --- /dev/null +++ b/core/img/icon-error.svg @@ -0,0 +1,813 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/img/icon-sync.png b/core/img/icon-sync.png new file mode 100644 index 0000000000..99a43d4c69 Binary files /dev/null and b/core/img/icon-sync.png differ diff --git a/core/img/icon-sync.svg b/core/img/icon-sync.svg new file mode 100644 index 0000000000..f9ebec4a5b --- /dev/null +++ b/core/img/icon-sync.svg @@ -0,0 +1,815 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/img/icon.png b/core/img/icon.png new file mode 100644 index 0000000000..24a4b1c3e8 Binary files /dev/null and b/core/img/icon.png differ diff --git a/core/img/icon.svg b/core/img/icon.svg new file mode 100644 index 0000000000..95eac44548 --- /dev/null +++ b/core/img/icon.svg @@ -0,0 +1,821 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/img/logo-inverted.png b/core/img/logo-inverted.png new file mode 100644 index 0000000000..d9fd119dc1 Binary files /dev/null and b/core/img/logo-inverted.png differ diff --git a/core/img/logo-inverted.svg b/core/img/logo-inverted.svg index 427531bc7a..9ac167cc41 100644 --- a/core/img/logo-inverted.svg +++ b/core/img/logo-inverted.svg @@ -14,94 +14,97 @@ id="Layer_1" x="0px" y="0px" - width="595.275px" - height="311.111px" - viewBox="0 0 595.275 311.111" + width="250.00002" + height="118.22803" + viewBox="0 0 250.00001 118.22802" enable-background="new 0 0 595.275 311.111" xml:space="preserve" - inkscape:version="0.48.1 r9760" - sodipodi:docname="logo inverted.svg">image/svg+xml + x1="346.77341" + y1="55.888199" + x2="346.77341" + y2="339.22119" /> @@ -132,10 +135,10 @@ + inkscape:current-layer="Layer_1" + units="mm" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + showguides="true" + inkscape:guide-bbox="true" /> - - - - - - - - - - - + inkscape:export-filename="/home/user/owncloud/core/img/logo.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" + inkscape:connector-curvature="0" /> + + + + + + + + + + \ No newline at end of file diff --git a/core/img/logo-sticker.jpg b/core/img/logo-sticker.jpg new file mode 100644 index 0000000000..ad2bf63ca3 Binary files /dev/null and b/core/img/logo-sticker.jpg differ diff --git a/core/img/logo-sticker.svg b/core/img/logo-sticker.svg new file mode 100644 index 0000000000..e48f7a78c7 --- /dev/null +++ b/core/img/logo-sticker.svg @@ -0,0 +1,764 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/img/logo-wide.png b/core/img/logo-wide.png index b2c16a0f60..ea10828db5 100644 Binary files a/core/img/logo-wide.png and b/core/img/logo-wide.png differ diff --git a/core/img/logo-wide.svg b/core/img/logo-wide.svg index 73b37cc7aa..37fc000747 100644 --- a/core/img/logo-wide.svg +++ b/core/img/logo-wide.svg @@ -14,16 +14,16 @@ id="Layer_1" x="0px" y="0px" - width="140" + width="147.33263" height="32" - viewBox="0 0 139.99999 32" + viewBox="0 0 147.33262 32" enable-background="new 0 0 595.275 311.111" xml:space="preserve" - inkscape:version="0.48.1 r9760" + inkscape:version="0.48.2 r9819" sodipodi:docname="logo-wide.svg">image/svg+xml + inkscape:guide-bbox="true" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> \ No newline at end of file + id="g4811" + transform="matrix(0.49975595,0,0,0.49975595,82.761244,31.693374)"> \ No newline at end of file diff --git a/core/img/logo.png b/core/img/logo.png new file mode 100644 index 0000000000..8177c4cdba Binary files /dev/null and b/core/img/logo.png differ diff --git a/core/img/logo.svg b/core/img/logo.svg index c1df6cb715..bd928cccfa 100644 --- a/core/img/logo.svg +++ b/core/img/logo.svg @@ -14,94 +14,97 @@ id="Layer_1" x="0px" y="0px" - width="595.275px" - height="311.111px" - viewBox="0 0 595.275 311.111" + width="250.00002" + height="118.22803" + viewBox="0 0 250.00001 118.22802" enable-background="new 0 0 595.275 311.111" xml:space="preserve" - inkscape:version="0.48.1 r9760" - sodipodi:docname="owncloud-logo.svg">image/svg+xml + x1="346.77341" + y1="55.888199" + x2="346.77341" + y2="339.22119" /> @@ -132,10 +135,10 @@ + inkscape:current-layer="Layer_1" + units="mm" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + showguides="true" + inkscape:guide-bbox="true" /> - - - - - - - - - - - - + inkscape:connector-curvature="0" /> + + + + + + + + + + \ No newline at end of file diff --git a/core/img/owncloud-logo-medium-white.png b/core/img/owncloud-logo-medium-white.png deleted file mode 100644 index d4d06fdd62..0000000000 Binary files a/core/img/owncloud-logo-medium-white.png and /dev/null differ diff --git a/core/templates/404.php b/core/templates/404.php index 13a8101034..cd4f2b40bb 100644 --- a/core/templates/404.php +++ b/core/templates/404.php @@ -10,6 +10,6 @@ if(!isset($_)){//also provide standalone error page
    • t( 'Cloud not found' ); ?>
      -

      +

    diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php index e1f8928fc9..2bd2e20df7 100644 --- a/core/templates/layout.guest.php +++ b/core/templates/layout.guest.php @@ -28,7 +28,7 @@
    diff --git a/files/css/files.css b/files/css/files.css index cf5b35364c..713adf7b5f 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -28,13 +28,14 @@ .file_upload_start { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; z-index:1; position:absolute; left:0; top:0; width:100%; cursor:pointer;} .file_upload_filename.active { border-bottom-right-radius:0 } .file_upload_filename { position: relative; z-index:100; padding-left: 0.8em; padding-right: 0.8em; cursor:pointer; border-top-left-radius:0; border-bottom-left-radius:0; } -.file_upload_filename img { position: absolute; top: 0.4em; left: 0.4em; } +.file_upload_filename img { position: absolute; top: 0.4em; left: 0.4em; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; } .file_upload_form, .file_upload_wrapper, .file_upload_start, .file_upload_filename, #file_upload_submit { cursor:pointer; } /* FILE TABLE */ #emptyfolder { position:absolute; margin:10em 0 0 10em; font-size:1.5em; font-weight:bold; color:#888; text-shadow:#fff 0 1px 0; } +.emptyfolder #new, .emptyfolder .file_upload_filename { background:#66f866; border:1px solid #5e5; -moz-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; } table { position:relative; top:37px; width:100%; } tbody tr { background-color:#fff; height:2.5em; } tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#f8f8f8; } @@ -56,7 +57,7 @@ table th#headerSize, table td.filesize { width:3em; padding:0 1em; text-align:ri table th#headerDate, table td.date { width:11em; padding:0 .1em 0 1em; text-align:left; } table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; } table td.filename a.name { display:block; height:1.5em; vertical-align:middle; margin-left:3em; } -table tr[data-type="dir"] td.filename a.name {font-weight:bold; } +table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; } table td.filename a.name input, table td.filename a.name form { width:100%; cursor:text; } table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:.2em .5em .5em 0; } table td.filename .nametext, .modified { float:left; padding:.3em 0; } diff --git a/files/js/fileactions.js b/files/js/fileactions.js index 5c6dc65d49..80e918a455 100644 --- a/files/js/fileactions.js +++ b/files/js/fileactions.js @@ -53,7 +53,7 @@ FileActions={ }, display:function(parent){ FileActions.currentFile=parent; - $('#fileList .action').remove(); + $('#fileList span.fileactions, #fileList td.date a.action').remove(); var actions=FileActions.get(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); var file=FileActions.getCurrentFile(); if($('tr').filterAttr('data-file',file).data('renaming')){ @@ -113,7 +113,7 @@ FileActions={ return false; }, hide:function(){ - $('#fileList span.fileactions').fadeOut(200,function(){ + $('#fileList span.fileactions, #fileList td.date a.action').fadeOut(200,function(){ $(this).remove(); }); }, diff --git a/files/templates/index.php b/files/templates/index.php index f423b96ba1..b21cf0aeb0 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -2,7 +2,7 @@
    -
    +
    t('New');?>