From b61f6438ba7aeabe17b26123cdeb34e011ce0080 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 16 Apr 2012 10:06:52 +0200 Subject: [PATCH 01/23] return user specific paths from oc_filecache::getpath --- lib/filecache.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/filecache.php b/lib/filecache.php index e62fb2189f..19286ff746 100644 --- a/lib/filecache.php +++ b/lib/filecache.php @@ -335,7 +335,12 @@ class OC_FileCache{ $query=OC_DB::prepare('SELECT path FROM *PREFIX*fscache WHERE id=? AND user=?'); $result=$query->execute(array($id,$user)); $row=$result->fetchRow(); - return $row['path']; + $path=$row['path']; + $root='/'.$user.'/files'; + if(substr($path,0,strlen($root))!=$root){ + return false; + } + return substr($path,strlen($root)); } /** From fa97c59f9585cb6da1bd4885a7a9d349e2170b38 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 16 Apr 2012 10:36:21 +0200 Subject: [PATCH 02/23] fix group backend --- lib/group/backend.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/group/backend.php b/lib/group/backend.php index d0bc970da7..af6c53c803 100644 --- a/lib/group/backend.php +++ b/lib/group/backend.php @@ -89,7 +89,7 @@ abstract class OC_Group_Backend { * @return bool */ public function groupExists($gid){ - if(!$backend->implementsActions(OC_GROUP_BACKEND_GET_GROUPS)){ + if(!$this->implementsActions(OC_GROUP_BACKEND_GET_GROUPS)){ return false; } return in_array($gid, $this->getGroups()); From 464c751f30cb65702592f43c0836e343cfe4b40c Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 16 Apr 2012 10:58:40 +0200 Subject: [PATCH 03/23] fix creating unique filenames --- lib/helper.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/helper.php b/lib/helper.php index 412f0e6b76..eed9491776 100755 --- a/lib/helper.php +++ b/lib/helper.php @@ -502,6 +502,9 @@ class OC_Helper { */ public static function buildNotExistingFileName($path, $filename) { + if($path==='/'){ + $path=''; + } if ($pos = strrpos($filename, '.')) { $name = substr($filename, 0, $pos); $ext = substr($filename, $pos); @@ -518,6 +521,6 @@ class OC_Helper { $counter++; } - return $newname; + return $newpath; } } From 70d0103a675fca4896974f1d59f5e76365304159 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Mon, 16 Apr 2012 11:34:00 +0200 Subject: [PATCH 04/23] updated logos and icons --- apps/remoteStorage/auth.php | 2 +- apps/user_openid/templates/nomode.php | 2 +- core/css/styles.css | 2 +- core/img/favicon-touch.png | Bin 7272 -> 5703 bytes core/img/favicon-touch.svg | 787 +++++++++++++++++++++++ core/img/favicon.png | Bin 565 -> 1231 bytes core/img/favicon.svg | 796 +++++++++++++++++++++++ core/img/icon-error.png | Bin 0 -> 1573 bytes core/img/icon-error.svg | 813 +++++++++++++++++++++++ core/img/icon-sync.png | Bin 0 -> 1577 bytes core/img/icon-sync.svg | 815 +++++++++++++++++++++++ core/img/icon.png | Bin 0 -> 1344 bytes core/img/icon.svg | 821 ++++++++++++++++++++++++ core/img/logo-inverted.png | Bin 0 -> 8116 bytes core/img/logo-inverted.svg | 327 +++------- core/img/logo-sticker.svg | 764 ++++++++++++++++++++++ core/img/logo-wide.png | Bin 3559 -> 2293 bytes core/img/logo-wide.svg | 192 ++---- core/img/logo.png | Bin 0 -> 7356 bytes core/img/logo.svg | 325 +++------- core/img/owncloud-logo-medium-white.png | Bin 15478 -> 0 bytes core/templates/layout.guest.php | 2 +- 22 files changed, 5050 insertions(+), 598 deletions(-) create mode 100644 core/img/favicon-touch.svg create mode 100644 core/img/favicon.svg create mode 100644 core/img/icon-error.png create mode 100644 core/img/icon-error.svg create mode 100644 core/img/icon-sync.png create mode 100644 core/img/icon-sync.svg create mode 100644 core/img/icon.png create mode 100644 core/img/icon.svg create mode 100644 core/img/logo-inverted.png create mode 100644 core/img/logo-sticker.svg create mode 100644 core/img/logo.png delete mode 100644 core/img/owncloud-logo-medium-white.png diff --git a/apps/remoteStorage/auth.php b/apps/remoteStorage/auth.php index c00f9d5555..2be648642a 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_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..9c48ba3a2b 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+ */ diff --git a/core/img/favicon-touch.png b/core/img/favicon-touch.png index 20af826523cfdb9da47ba1208c81df38ecb3973c..cfaaa4399acd8eba0ef6cc417d77779667adb5cf 100644 GIT binary patch literal 5703 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 literal 7272 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 + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/img/favicon.png b/core/img/favicon.png index a7ee766dfa8931c9a707520176aa02aee76bb7b0..c1b1cb65460c7e61dac7eed23697bf558db2868b 100644 GIT binary patch literal 1231 zcmV;=1Tg!FP)nVePG+{$=0?;;HJdHBT;*ylGv6?~28Jjo5L~-}q@V@^duY(Csnm| zbX@QBh}rCREY?PZ5SWtUiH-_q{puGn8VwvQDkgVp0e$_pVFA4S!(!jLTkv{k7g~*m zi11*_Dr(3~OQpG`jlJLeNXNBKBEmxO)@ms|Q%z}kHIJGS3GnwNAufiH;6RQSpB@(A zuA4A@ZVI~!wqVff0I007a_CqI)27C=Pw&02 zfS<3CuXpbxz~9&H*&Pn9{MpXR)%Mo%+TmLV^Q55)T~tg>|c!4>=ov7jhQzZvHMdZ+Mk8tCj*#UTNX2x8LV- zOPeZR2GDqUvFD?0d|I%D70aGxd_<@!(dl%e@$woLK&#adGa(AS&d2S|o@wHTFAE6@ z3>X|>&8nqjrKSGsCR&fAuI`&ehKCGW{2%FcKG^Jb4=?B;e{$EqJUBqk;&cyFr}L(( z`z8P_tykH9*vyT;xi0#T1!K zd1^r#{(ioUR8E%*Ns?5)!JuQ)8?SKsr>}V8@mY7wXj7IrTXkLxRA*PWSev`uJ+5zT z5)FSesqzNu_xg)s|6%i>v7(ig{*nhAQTAxu~kK^6->N9=;54;$%5_+Y3Ez-q&xVsxB383 z6v3&AY8F2K8fUA|s|uVsS4;M@t0_5kPW8BT_w=%E<9q1!I-E`y9oIW4_~Z*Egc-c5!HDdq(002ovPDHLkV1gcPJ0k!9 literal 565 zcmV-50?Pe~P)DIjMx)t9GwcAt+GZ6TXd%MR5}-u1ufw^9W05Xl zLB@PCA>3+uz8XU;un2?&!a~A=7-GRQpB5G{i;760?)^;{LL6n)RWF=0Jm00000NkvXXu0mjf DEtdZN 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 0000000000000000000000000000000000000000..ed438a32fd8844543f76e1f10180aaef6f257bbf GIT binary patch literal 1573 zcmV+=2HN?FP)Hsl!m}xdE-e|3d)YwX9}FX~|t& z%s|Q^B4rb$^n!HC^OSboiHdxF%dJ`$t`y+15{%mR%V2E10$fsA`8wgenGizCW2g{R z8%Em#rCR{}>q-GGxdS7P)6Rq#qK3hEFgW2C3e(zkdoP*DFh259sgpjX%+Px8UD@oZ z{{`TZJ0MrB3h7iTW!Bb?+tKJ)_TQnxkX}+K zbo!q6&}b<1*G=j4TfYTx$uhjIuP-TTYQ}Tt&UMcoIPjRgV#P7dIRdfR2cog@Krx-J z%N#$xA#?orhEgiE0#c@}j*i3Bw!s2{0JW^AMjWU8w*Y=sf_?S%k&;qx5Yw!sj8RPp zVS&JZoc4C4#>RTJ>qZGHrWdJ$NAC|8V3;Pi&M1k z8Gq)PlV^ADegXg*@4feLoiDtwZ(kzu5MeAfKRNlSn@;~pyY3y-FtlXM8*OYHB1*lo z@!Yw^ivUJiTDDQn@8^s$BN+6&Vo{U_iE#LYm(6xS29i@C${wQC0QTvQI24!zwCH6Di&0Z-(Q@NIcE~ zxB%QpJkAZrkr(Dj>H38NS@xHW3PD*od<)8&83$vraw6aNF4uJ6)RVMs0szP zm`pYs!QezGlUbtyMEm=9bPW#9?ux}C0I>O+Z)T5e+qPrsz4x9b0E}R8!dqBa33_pr zQ_dSkIy(N2&d#(=>8qRtgR_15B+k*hGr@MRG#xK7dPESm9&YwPgj}ZzTEzZwBO!&n`CaSB?`kr^E z@_nnI6sT-y_^ezjPzp#XXAd3>_)5izX&S^dMSgnvIx`YEOq4n{x_b3iZ5TV4ZPzo~ zuGfaKV|4ZEtwgC~W+ZZWab~6iob!wFGUgE>W;CT0R0zf_YaQ)+{`r6MaQH-dAfXh5 z^LoQ^lFPnVD&1bw)3Y<1OeUC=k8>#{7$abea498|^6_jknW*XM*{QU?p8WUXoNK46 zYiJ>vyqhovP>PDy)&uO%+qciRJ@CL6bK~Ph<+_9ju~^aC`bqWLweMHmaKn+p`SX>U z5M7-}>|XQYi$g0PeRMoOJw5A}N=2nLp{AL!>gv9zyXmIkzSmxRv+m}bzY@XVWOiz* zQUel<`63)X(X?sPKh_Kmz74IXO4%%`6Nz`*pM3I-@>X06pmM1 + + +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 0000000000000000000000000000000000000000..99a43d4c69ab2a93bd94655c0b74494e0abe537c GIT binary patch literal 1577 zcmV+^2G;qBP)=Wty07qQ>@@yAB56A6cs@qgfuVa2zLAC=|M-l=kfcuv=~Fy8bGqbOQi56%`flF~(LRB9>|tMImKnWvd7w-2m{x zKL%h~R+FylkCv5{QPVUNwrzJfj)Q+9M_t$NGfmS+2%%ESFLJru*xv$ZY;5$U)9G{| z5Eu=GLgz1EzPu)#P6Ggdq9{3^&o^FOUHuaPKq{3AE-o$#M2y(B-Qv3LHlNS8KaKsi`$ruU_qFYioOVc6N4sU0vPRQc7=fa$)CeY%&swoIG{v)H6Z|0s!yDtW-1_?eFU9x|B#H`0?Y%*T!P8HK|mpZFqRt>Fn(MIGfE@x~`iI27_VO zbuT58$+=rbptiQQQwR|iLY&n!t(P&T6h)NMyk%LRr&6h{nx_47=+L3(E?l@Uy>H*X z2N1D(*REY(Qc42{4jkwcLI}U#e<+j5Jmxr#C4`Vd2p0g33L)N{nwpyb9Y9@O-Aja! zCn%-VG|hJw78af@75V-Cv$d?hX4s7K=SAOY%-uty;B3)3k2GFjUSt({gu~$h z#u#wU9ox3?w;DxJh~MvjptPAWN@+tWk>`1>mSy!93WeI$t5<(x+cv#+?b=GyG-KIp z_FhEX#W_zqjw7U$WT{5%?(Xhmd-v{bB7}fxnz6aLxz!~d`=&9*g3Zm%eJw358A8Zg z%rwoP3x$GF8kLEOiN`l?+}JxfIJjwHVWAlSWGEE+FrUxg%NWyk?%etOvSrJludi>D zX`0y`J9d2A)6+8}gm{}V20owf;_U3~(~SN8kyTYyO}ei8u;+Q25CT{*82m0CkJpuo zIOlwLc-Rm^w5qB~005?^r|+t%sW~$BNeC&Ylma4l(t&}2_~77R=i=gGH6lXMRaKo-Rn_OZu7!x; zy6(#L>({@Y&*x3swj%&=|H#P5Bd1TF-a-g@NLAIUU@$lo4u|{4$H$*S#In-!D5bKs zwe?6W7JHBoQh|t2Utj+ zr<8hrzyH$a&70rZvuDpSDdj{imxK29_Ahtu-hH^V6$b#I0&aB28~~)@Mkibj02}~* zUUFE{`2av)TF(PO1^}|fECN6f01UV>b>#tI8UW@1Km&m4rSHsbO+^2O{Xd7&I{~4vVKp + + +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 0000000000000000000000000000000000000000..24a4b1c3e83ba7e9b247f3ff9fec33f4b26c4630 GIT binary patch literal 1344 zcmV-G1;6@Ag2CXYrBdmuhX&ZY zcW?gu`SYXG)6<=klao8s>Ga8Rx%^ThkvQwRu6y(5&2*tq*Z}|_Nm4N!4(DRA*yQ;5 zcspZEu2!q>heDw%w{PDb+6Z9XCTwhMtOtO8Q4||6#snb*s;YjSOeTe)p`mWi^BM>t zWVs(W=iGH&4`V#DXV0GB1_uY2_Y*% zD5Yi2ImQ^bV2tnAhyVbHF}6LI%l$exH@Dw$oL5Cr507|K2+cu{3oaJD06it8Dg+f!V>+bVBPiBk(j>qEzYilS;k~}alP{$bSkR(ZvBuSi|osCB#k<0&8 z|N8p+OZj|0EeHZ#yG97{1VOlkF|HFuk;t-~!AFlCJrxWFudNkRN*i@u&o7T{+kScX z?%k(jvDn4?1&_z$7c!YlKLDiH*$+B8I=(9u3i}BmfH8(dB5{HA_4Snx95`_K>eZ`N z$8nG-iVKNE;`d#xm?Z<06s#97YqikWwY5YjvYI8hI5{qpPz@WuC5=C z969pM>YFeM0Df4!8|DF^1dBIeBLMgS;MS7Ek}d!M%F=iN01N;ym&QH-hy#EMi?6N< z02BbA3;;3!L;&Cp02rHk5j_d}e?CgL0JZ=gr~L~oV%(uP=txZf0000 + + +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 0000000000000000000000000000000000000000..d9fd119dc1883d2c7d384ede0fed4ceb58f1898d GIT binary patch literal 8116 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 literal 0 HcmV?d00001 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.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 b2c16a0f60a6991eb6a98109d017b48e3b3a3a3b..ea10828db5e9ce5e002f0e5f0bd07f96456960ea 100644 GIT binary patch delta 2243 zcmV;!2t4=a8}$((iBL{Q4GJ0x0000DNk~Le0001!0000W2nGNE02aGS&XFNZe+Y6( zL_t(|ob8-{uvJwR$3O1}@I-!Q2{IWBNPzLfcn?7Za*SlmihfW;6O?I2R054=VuM+O z=!^|gQ`0aRWz>ixD9kjD+DJNsKmr4zqN4E(%psa65fxCr{qfyz-o1x&?mhS1dmryP z_cOC+?%QYYb=Em&oxRsyd!1J&e~BtG75FsJ0$c$63)luc1>6lBspiRRbS!mMGNv1#GN_0yR3GY8ca5z!u=V6m1180#;O7i5eYGImT263fAr}GJW9JE z0rUn=09R+!qXig~v2Tq|LKb8CE-)yjehZ$iveE)v0?YwM1C3?Ks&N{~VoVcb>fQui z2i{+XF3myqJ-}`}b>0Rvl_9f62a@IOKbZ6THJ}xE8aP>`-*I3s@Q)y405BLB4s-*0 zl5aRoz)iqRU^cKlgRV6?e~>K3v;jB@{2Dj_j0Z;HfaFmeW6I@m;P=1-*g#r<5x`pP zc)x`Mn{NZtW6n1mSdW9A|IVOqjgCT6mNHk;bCTXwJ71Lac+TJZB+ZaCR?<322Nch% zk{*;aUec8CcN~9~RF_fTTIqmNYKH;xgO6jKr0L=Jqmuecx=GTpe}wi?PDr{%(jZ9> zC$wp)=FO;;jx(k{@@SL9NlB9>{Xo(PNt+9_EyT9ae_hP6#aS=33zwOahI9fwik0h2 z@tKwbLkb+P18xL95Bv@LI9X`M{?s(=j}6W_c5z0TU74BKS8P4adK4qIF?|yFMv8WK z153zmNNs!sSb$e?f6IYK@P_aqU<&Yj_+6tDQ7q2X59kieO(AP5@K3y)uLL*XaKk(t z#C#aXpPs-g$NhMPIKD#XJDv0buEa0mdc0ZQ<%lz;%kgIIOTb~^Y|=fjn}MGJ4HeR@ z0jIH?1$++2qH_5l@L3#rUqaW7n13ADLHl&J6yNtQNA3gYe}y03w{q&<5OH(7pxu5U>ka2Q0>`(kKJ*o?skviJ!7t$j{?yqYme@ z--oCCN3b8)KSBNk;Gu+Lr7{kOPd0_JJk&)gbiKI@f5yINly1OxfHinpZjF==)KfeM z>8rql_yd4k4&iLeIXG=(TM9+9u#NZ!m_#%1D!w6iVt;TuaA~C75R#Mm7UNMa$~53( zk-7oEV|W2@7dE(s!2fW#>mJpA6xY%>_@G`H*67h+7Dx+6UCkNQV{mXMwQT~H_!*K z01sm4{eB$3nM8gHO(pmZewkL~)IArUP5jW%A!&u2sU zy{63bGzJ+z#c{nv>Vf~H5V!za_LuR^Spn?Cf5tQ!8`>zGuT)9)hVzyZyE?$BzR1(S z9oRvyBv;~e;(f-+5+qrh9QK}yJEl$5p!@(To zqV&VQ!!`K9mBUf&i>;!xhrbW_Wx}zZe|SndQJ!jfG?9PflQ>3xO7gA1FUURxrJX8= zhPL1pSeh8zSn^+xeZYs)DAndOeKSpC{5BQxi>Bid>RPg|R*nPT#w&`rC2kVJ%kwxN z0^n2R=aIjGBhXPA@f03+Y(VH&E}QYj^-of?jni`%UN!bD(64W3vn%}lCSFC3e=X3b z9=kEQI}TfcFBH+S4{$O!x#DC~I>JxNbWx+3U3N78OdS4(Z4B4nJ(P)|Zl&T4ZDBay4B3bq#^pd0- zB@NE0?<;54wn`cj_j!0vyh>@oF^mR0-)_Od%eGINhT*i63HbA+2e1Pkw?)uB46iM; zf1UCIcK)~HrTejjA+$H1f1)PhIMMl`?^8IV^IqDg)NVLjF&+C0hr>B;BRNxXHjbH{ z6J-7ze^E06=VndD8{VsN5Hxo$?b>kN#S-@8<^m#Zgk$MPK|c0H)#{hPu#p8B>te`hR`;yKq&c R(xm_Z002ovPDHLkV1hYlI=lb? delta 3519 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 tyiQkfp!iN%Le8n3do6UljaK0Q6#<%S6!@ 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 0000000000000000000000000000000000000000..8177c4cdba196fe6fc2521dd46f8bd06a257beb3 GIT binary patch literal 7356 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 idK`ER8R@Jf)c+5S%rA>GHd6Qi0000image/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 d4d06fdd62d6a1cfe82170b3009fd8a9f36e0a1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15478 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 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 @@
    From 5720bd296dbd5f0459ea53c12d488999193801da Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 16 Apr 2012 12:21:12 +0200 Subject: [PATCH 05/23] merge log into admin --- lib/app.php | 2 -- lib/log/owncloud.php | 12 +++++++++--- lib/util.php | 34 +++++++++++++++++----------------- settings/admin.php | 9 +++++++++ settings/js/log.js | 7 ++++--- settings/templates/admin.php | 23 +++++++++++++++++++++-- settings/templates/log.php | 30 ------------------------------ 7 files changed, 60 insertions(+), 57 deletions(-) delete mode 100644 settings/templates/log.php diff --git a/lib/app.php b/lib/app.php index bd432109b2..9f7d23872f 100755 --- a/lib/app.php +++ b/lib/app.php @@ -303,8 +303,6 @@ class OC_App{ $settings[] = array( "id" => "core_users", "order" => 2, "href" => OC_Helper::linkTo( "settings", "users.php" ), "name" => $l->t("Users"), "icon" => OC_Helper::imagePath( "settings", "users.svg" )); // admin apps menu $settings[] = array( "id" => "core_apps", "order" => 3, "href" => OC_Helper::linkTo( "settings", "apps.php" ).'?installed', "name" => $l->t("Apps"), "icon" => OC_Helper::imagePath( "settings", "apps.svg" )); - // admin log menu - $settings[] = array( "id" => "core_log", "order" => 4, "href" => OC_Helper::linkTo( "settings", "log.php" ), "name" => $l->t("Log"), "icon" => OC_Helper::imagePath( "settings", "log.svg" )); $settings[]=array( "id" => "admin", "order" => 1000, "href" => OC_Helper::linkTo( "settings", "admin.php" ), "name" => $l->t("Admin"), "icon" => OC_Helper::imagePath( "settings", "admin.svg" )); } diff --git a/lib/log/owncloud.php b/lib/log/owncloud.php index 0ed3051013..881c67d266 100644 --- a/lib/log/owncloud.php +++ b/lib/log/owncloud.php @@ -44,7 +44,7 @@ class OC_Log_Owncloud { * @param int level */ public static function write($app, $message, $level) { - $minLevel=OC_Config::getValue( "loglevel", 2 ); + $minLevel=min(OC_Config::getValue( "loglevel", OC_Log::WARN ),OC_Log::ERROR); if($level>=$minLevel){ $entry=array('app'=>$app, 'message'=>$message, 'level'=>$level,'time'=>time()); $fh=fopen(self::$logFile, 'a'); @@ -61,6 +61,7 @@ class OC_Log_Owncloud { */ public static function getEntries($limit=50, $offset=0){ self::init(); + $minLevel=OC_Config::getValue( "loglevel", OC_Log::WARN ); $entries=array(); if(!file_exists(self::$logFile)) { return array(); @@ -71,8 +72,13 @@ class OC_Log_Owncloud { } $end=max(count($contents)-$offset-1, 0); $start=max($end-$limit,0); - for($i=$end;$i>$start;$i--) { - $entries[]=json_decode($contents[$i]); + $i=$end; + while(count($entries)<$limit){ + $entry=json_decode($contents[$i]); + if($entry->level>=$minLevel){ + $entries[]=$entry; + } + $i--; } return $entries; } diff --git a/lib/util.php b/lib/util.php index 2ea392ec31..02ac2e505f 100644 --- a/lib/util.php +++ b/lib/util.php @@ -129,23 +129,23 @@ class OC_Util { self::$headers[]=array('tag'=>$tag,'attributes'=>$attributes,'text'=>$text); } - /** - * formats a timestamp in the "right" way - * - * @param int timestamp $timestamp - * @param bool dateOnly option to ommit time from the result - */ - public static function formatDate( $timestamp,$dateOnly=false){ - if(isset($_SESSION['timezone'])){//adjust to clients timezone if we know it - $systemTimeZone = intval(date('O')); - $systemTimeZone=(round($systemTimeZone/100,0)*60)+($systemTimeZone%100); - $clientTimeZone=$_SESSION['timezone']*60; - $offset=$clientTimeZone-$systemTimeZone; - $timestamp=$timestamp+$offset*60; - } - $timeformat=$dateOnly?'F j, Y':'F j, Y, H:i'; - return date($timeformat,$timestamp); - } + /** + * formats a timestamp in the "right" way + * + * @param int timestamp $timestamp + * @param bool dateOnly option to ommit time from the result + */ + public static function formatDate( $timestamp,$dateOnly=false){ + if(isset($_SESSION['timezone'])){//adjust to clients timezone if we know it + $systemTimeZone = intval(date('O')); + $systemTimeZone=(round($systemTimeZone/100,0)*60)+($systemTimeZone%100); + $clientTimeZone=$_SESSION['timezone']*60; + $offset=$clientTimeZone-$systemTimeZone; + $timestamp=$timestamp+$offset*60; + } + $timeformat=$dateOnly?'F j, Y':'F j, Y, H:i'; + return date($timeformat,$timestamp); + } /** * Shows a pagenavi widget where you can jump to different pages. diff --git a/settings/admin.php b/settings/admin.php index 9ee79002b5..a997bad4e3 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -10,11 +10,20 @@ OC_Util::checkAdminUser(); OC_Util::addStyle( "settings", "settings" ); OC_Util::addScript( "settings", "admin" ); +OC_Util::addScript( "settings", "log" ); OC_App::setActiveNavigationEntry( "admin" ); $tmpl = new OC_Template( 'settings', 'admin', 'user'); $forms=OC_App::getForms('admin'); + +$entries=OC_Log_Owncloud::getEntries(3); +function compareEntries($a,$b){ + return $b->time - $a->time; +} +usort($entries, 'compareEntries'); + $tmpl->assign('loglevel',OC_Config::getValue( "loglevel", 2 )); +$tmpl->assign('entries',$entries); $tmpl->assign('forms',array()); foreach($forms as $form){ $tmpl->append('forms',$form); diff --git a/settings/js/log.js b/settings/js/log.js index ae83f0a628..bccf2c8826 100644 --- a/settings/js/log.js +++ b/settings/js/log.js @@ -6,14 +6,15 @@ OC.Log={ levels:['Debug','Info','Warning','Error','Fatal'], - loaded:50,//are initially loaded + loaded:3,//are initially loaded getMore:function(){ - $.get(OC.filePath('settings','ajax','getlog.php'),{offset:OC.Log.loaded},function(result){ + $.get(OC.filePath('settings','ajax','getlog.php'),{offset:OC.Log.loaded,count:10},function(result){ if(result.status=='success'){ OC.Log.addEntries(result.data); + $('html, body').animate({scrollTop: $(document).height()}, 800); } }); - OC.Log.loaded+=50; + OC.Log.loaded+=10; }, addEntries:function(entries){ for(var i=0;i
    - t('Log level');?> - @@ -19,4 +19,23 @@ $levels=array('Debug','Info','Warning','Error','Fatal'); + + + + + + + + + +
    + level];?> + + app;?> + + message;?> + + time);?> +
    +...'>
    diff --git a/settings/templates/log.php b/settings/templates/log.php deleted file mode 100644 index da5defc320..0000000000 --- a/settings/templates/log.php +++ /dev/null @@ -1,30 +0,0 @@ - - * This file is licensed under the Affero General Public License version 3 or later. - * See the COPYING-README file. - */ -$levels=array('Debug','Info','Warning','Error','Fatal'); -?> - -
    - -
    - - - - - - - - - -
    - level];?> - - app;?> - - message;?> - - l('datetime',$entry->time);?> -
    -...'> From e59c87ee3691b85ef747dc50518f250fdd00af37 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 16 Apr 2012 12:27:21 +0200 Subject: [PATCH 06/23] reload log after changing log level --- settings/js/admin.js | 4 +++- settings/js/log.js | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/settings/js/admin.js b/settings/js/admin.js index a3585f7e1c..4f295ab6f5 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -1,5 +1,7 @@ $(document).ready(function(){ $('#loglevel').change(function(){ - $.post(OC.filePath('settings','ajax','setloglevel.php'), { level: $(this).val() } ); + $.post(OC.filePath('settings','ajax','setloglevel.php'), { level: $(this).val() },function(){ + OC.Log.reload(); + } ); }) }); \ No newline at end of file diff --git a/settings/js/log.js b/settings/js/log.js index bccf2c8826..5dd9c94ae0 100644 --- a/settings/js/log.js +++ b/settings/js/log.js @@ -5,16 +5,27 @@ */ OC.Log={ + reload:function(count){ + if(!count){ + count=OC.Log.loaded; + } + OC.Log.loaded=0; + $('#log tbody').empty(); + OC.Log.getMore(count); + }, levels:['Debug','Info','Warning','Error','Fatal'], loaded:3,//are initially loaded - getMore:function(){ - $.get(OC.filePath('settings','ajax','getlog.php'),{offset:OC.Log.loaded,count:10},function(result){ + getMore:function(count){ + if(!count){ + count=10; + } + $.get(OC.filePath('settings','ajax','getlog.php'),{offset:OC.Log.loaded,count:count},function(result){ if(result.status=='success'){ OC.Log.addEntries(result.data); $('html, body').animate({scrollTop: $(document).height()}, 800); } }); - OC.Log.loaded+=10; + OC.Log.loaded+=count; }, addEntries:function(entries){ for(var i=0;i Date: Mon, 16 Apr 2012 12:52:48 +0200 Subject: [PATCH 07/23] improving leftcontent display, increasing item height --- core/css/styles.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/css/styles.css b/core/css/styles.css index 9c48ba3a2b..afb0204112 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -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 } From 3c182bdb351cd0f7938c9f9f022b44b4e530664d Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Mon, 16 Apr 2012 12:57:17 +0200 Subject: [PATCH 08/23] adding sticker logo jpg --- core/img/logo-sticker.jpg | Bin 0 -> 73423 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 core/img/logo-sticker.jpg diff --git a/core/img/logo-sticker.jpg b/core/img/logo-sticker.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad2bf63ca37aa064d4f7c05c6e293bcafcb5e702 GIT binary patch literal 73423 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 Date: Mon, 16 Apr 2012 12:59:08 +0200 Subject: [PATCH 09/23] fix 2 potential xss problems --- core/templates/404.php | 2 +- files/templates/index.php | 2 +- files/templates/part.breadcrumb.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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/files/templates/index.php b/files/templates/index.php index f423b96ba1..639bdeaead 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -15,7 +15,7 @@
    - + diff --git a/files/templates/part.breadcrumb.php b/files/templates/part.breadcrumb.php index ab81cc5c03..16da6bb97b 100644 --- a/files/templates/part.breadcrumb.php +++ b/files/templates/part.breadcrumb.php @@ -1,6 +1,6 @@
    svg" data-dir='' style='background-image:url("")'> - "> + ">
    \ No newline at end of file From 6af808edc9b1550881708b9d0e034649d95c2131 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 16 Apr 2012 13:11:41 +0200 Subject: [PATCH 10/23] fix delete button not always disapearing --- files/js/fileactions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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(); }); }, From c3187e938889d8e025532e206ff41f1da7a2dcdb Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 16 Apr 2012 13:14:41 +0200 Subject: [PATCH 11/23] dont show action text for folders bold --- files/css/files.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/css/files.css b/files/css/files.css index cf5b35364c..fd573bba42 100644 --- a/files/css/files.css +++ b/files/css/files.css @@ -56,7 +56,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; } From 02f4e78f3eb5166ea1ae806a9aba77e35f2524a4 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Mon, 16 Apr 2012 11:47:36 +0200 Subject: [PATCH 12/23] a string be a string --- apps/user_ldap/lib_ldap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/user_ldap/lib_ldap.php b/apps/user_ldap/lib_ldap.php index 5188ef9402..417a4719f0 100644 --- a/apps/user_ldap/lib_ldap.php +++ b/apps/user_ldap/lib_ldap.php @@ -21,7 +21,7 @@ * */ -define(LDAP_GROUP_MEMBER_ASSOC_ATTR,'memberUid'); +define('LDAP_GROUP_MEMBER_ASSOC_ATTR','memberUid'); class OC_LDAP { static protected $ldapConnectionRes = false; From e1948c651bcd51597ff231e154efacc38d090f26 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Mon, 16 Apr 2012 13:26:54 +0200 Subject: [PATCH 13/23] use the right attribute for member retrieval --- apps/user_ldap/group_ldap.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php index 92e3b53d24..ce87b074ab 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); } /** From 899c7631d53605ec40ef4dcaf049edef56d7ce3e Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Mon, 16 Apr 2012 13:27:20 +0200 Subject: [PATCH 14/23] minor code beautification --- apps/user_ldap/lib_ldap.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/user_ldap/lib_ldap.php b/apps/user_ldap/lib_ldap.php index 417a4719f0..be85c5debe 100644 --- a/apps/user_ldap/lib_ldap.php +++ b/apps/user_ldap/lib_ldap.php @@ -38,14 +38,15 @@ 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 conf($key) { - $availableProperties = array('ldapUserDisplayName'); + $availableProperties = array( + 'ldapUserDisplayName', + ); if(in_array($key, $availableProperties)) { return self::$$key; From 320fde9eec72e958df81da33678e7306fc1d6e96 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Mon, 16 Apr 2012 15:04:10 +0200 Subject: [PATCH 15/23] OC_Group does expect object, not string --- apps/user_ldap/appinfo/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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( From ed54de1bbfe0c137ddaec35085b240b07e825c0a Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Mon, 16 Apr 2012 16:23:00 +0200 Subject: [PATCH 16/23] group LDAP: implement groupExists function, needed for Sharing --- apps/user_ldap/group_ldap.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php index ce87b074ab..e5948459dd 100644 --- a/apps/user_ldap/group_ldap.php +++ b/apps/user_ldap/group_ldap.php @@ -103,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); From 9cd5221d47c9b849f7f797a2075a5c310aec4ed3 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Mon, 16 Apr 2012 17:28:58 +0200 Subject: [PATCH 17/23] group ldap: check configuration --- apps/user_ldap/lib_ldap.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/apps/user_ldap/lib_ldap.php b/apps/user_ldap/lib_ldap.php index be85c5debe..eb6a7214c1 100644 --- a/apps/user_ldap/lib_ldap.php +++ b/apps/user_ldap/lib_ldap.php @@ -144,8 +144,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; + } } } @@ -153,6 +164,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)) { From 86192c2f8df27d2d4fd4e68b231861b8addcee70 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Mon, 16 Apr 2012 17:31:39 +0200 Subject: [PATCH 18/23] checked, works for me --- apps/user_ldap/lib_ldap.php | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/user_ldap/lib_ldap.php b/apps/user_ldap/lib_ldap.php index eb6a7214c1..ab815171b8 100644 --- a/apps/user_ldap/lib_ldap.php +++ b/apps/user_ldap/lib_ldap.php @@ -177,7 +177,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; From 66018b89b26313f168669bb1dd5c8b701964782a Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Mon, 16 Apr 2012 18:03:02 +0200 Subject: [PATCH 19/23] LDAP: don't forget to unbind --- apps/user_ldap/lib_ldap.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/apps/user_ldap/lib_ldap.php b/apps/user_ldap/lib_ldap.php index ab815171b8..eea4a82011 100644 --- a/apps/user_ldap/lib_ldap.php +++ b/apps/user_ldap/lib_ldap.php @@ -23,6 +23,13 @@ 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; static protected $configured = false; @@ -43,6 +50,10 @@ class OC_LDAP { self::establishConnection(); } + static public function destruct() { + @ldap_unbind(self::$ldapConnectionRes); + } + static public function conf($key) { $availableProperties = array( 'ldapUserDisplayName', From d8761d7edd8277fd5aeec145bf80e7d3c7968084 Mon Sep 17 00:00:00 2001 From: Jan-Christoph Borchardt Date: Tue, 17 Apr 2012 14:29:02 +0200 Subject: [PATCH 20/23] upload arrow has full opacity, button is highlighted for new users and empty folders --- files/css/files.css | 3 ++- files/templates/index.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/files/css/files.css b/files/css/files.css index fd573bba42..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; } diff --git a/files/templates/index.php b/files/templates/index.php index 639bdeaead..b21cf0aeb0 100644 --- a/files/templates/index.php +++ b/files/templates/index.php @@ -2,7 +2,7 @@
    -
    +
    t('New');?>