From 27eaa5add5ddfc97053afe41fb44c1116c36addb Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Mon, 12 Oct 2015 12:22:25 +0000 Subject: [PATCH 01/22] implement new user content auth for preview --- plugins/c9.preview/preview.handler.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/plugins/c9.preview/preview.handler.js b/plugins/c9.preview/preview.handler.js index d59b24bd..3bf1f351 100644 --- a/plugins/c9.preview/preview.handler.js +++ b/plugins/c9.preview/preview.handler.js @@ -39,7 +39,13 @@ define(function(require, exports, module) { session.ws = {}; req.projectSession = session.ws[ws]; - if (!req.projectSession || !req.projectSession.expires || req.projectSession.expires <= Date.now()) { + + if ( + !req.projectSession || + !req.projectSession.expires || + req.projectSession.expires <= Date.now() || + req.projectSession.uid != req.user.id + ) { req.projectSession = session.ws[ws] = { expires: Date.now() + 10000 }; @@ -77,6 +83,7 @@ define(function(require, exports, module) { } req.projectSession.role = role; req.projectSession.pid = project.id; + req.projectSession.uid = req.user.id; var type = project.scm; req.projectSession.type = type; @@ -137,8 +144,8 @@ define(function(require, exports, module) { var path = req.params.path; var url = req.proxyUrl + path; - if (req.session.token) - url += "?access_token=" + encodeURIComponent(req.session.token.id || req.session.token); + if (req.user.code) + url += "?access_token=" + encodeURIComponent(req.user.code); var parsedUrl = parseUrl(url); var httpModule = parsedUrl.protocol == "https:" ? https : http; From cf02d0a1b8989a733521268f879f733da79688a4 Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Tue, 13 Oct 2015 11:55:31 +0000 Subject: [PATCH 02/22] add user-content to server.js --- server.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/server.js b/server.js index 2711230c..3c8463e9 100755 --- a/server.js +++ b/server.js @@ -23,14 +23,12 @@ var DEFAULT_CONFIG = "s"; var DEFAULT_SETTINGS = getDefaultSettings(); var shortcuts = { - "dev" : ["ide", "preview", "vfs", "api", "sapi", "proxy", "redis", "profile", "oldclient", "homepage", "apps-proxy", "-s", "devel"], - "odev" : ["ide", "preview", "vfs", "api", "proxy", "oldclient", "homepage", "apps-proxy", "profile", "worker", "-s", "onlinedev"], - "bill" : ["ide", "preview", "vfs", "api", "proxy", "oldclient", "homepage", "apps-proxy", "profile", "-s", "billing"], - "beta" : ["ide", "preview", "vfs", "proxy", "-s", "beta"], - "ci" : ["ide", "preview", "vfs", "proxy", "-s", "ci"], + "dev" : ["ide", "preview", "user-content", "vfs", "api", "sapi", "proxy", "redis", "profile", "oldclient", "homepage", "apps-proxy", "-s", "devel"], + "odev" : ["ide", "preview", "user-content", "vfs", "api", "proxy", "oldclient", "homepage", "apps-proxy", "profile", "worker", "-s", "onlinedev"], + "beta" : ["ide", "preview", "user-content", "vfs", "proxy", "-s", "beta"], "s" : ["standalone", "-s", "standalone"] }; -var delayLoadConfigs = ["preview", "api", "oldclient", "apps-proxy", "worker"]; +var delayLoadConfigs = ["preview", "user-content", "api", "oldclient", "apps-proxy", "worker"]; module.exports = main; From 95012eb90a9d7df1005722f093a64af5b7465729 Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Tue, 13 Oct 2015 11:56:55 +0000 Subject: [PATCH 03/22] add to makefile --- node_modules/c9/object.js | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 node_modules/c9/object.js diff --git a/node_modules/c9/object.js b/node_modules/c9/object.js new file mode 100644 index 00000000..875dc338 --- /dev/null +++ b/node_modules/c9/object.js @@ -0,0 +1,9 @@ +/* + * Swap keys and values of an object + */ +exports.invert = function(obj) { + return Object.keys(obj).reduce(function(res, key) { + res[obj[key]] = key; + return res; + }, {}); +}; \ No newline at end of file From 02f401d368c5b4a3d2cbb82c3b8399df4f36e43e Mon Sep 17 00:00:00 2001 From: Ruben Daniels Date: Mon, 12 Oct 2015 23:48:34 +0000 Subject: [PATCH 04/22] small fixes for sync --- plugins/c9.ide.layout.classic/icons/sync.png | Bin 0 -> 1889 bytes plugins/c9.ide.layout.classic/icons/sync@2x.png | Bin 0 -> 1895 bytes plugins/c9.ide.ui/lib_apf.js | 2 ++ plugins/c9.ide.ui/menus.js | 15 +++++++++++++++ 4 files changed, 17 insertions(+) create mode 100644 plugins/c9.ide.layout.classic/icons/sync.png create mode 100644 plugins/c9.ide.layout.classic/icons/sync@2x.png diff --git a/plugins/c9.ide.layout.classic/icons/sync.png b/plugins/c9.ide.layout.classic/icons/sync.png new file mode 100644 index 0000000000000000000000000000000000000000..76bdbab81bf0d9f648bda32ad08d56b7953eb081 GIT binary patch literal 1889 zcmbVNc~BE~6pjiMq}~>k(z2{aHJWTTC#;DOa!6ECj#N=Dmt;c%BpWuH5NNH6_XUiI zwhB0+sCc1L6h>zZB4t1*AQrE7a6qNlC>|X|MeIhz_7BI-bZ2*e$G-1--+RCJW;cf` z7mOM0Gnz)DjZuV3BdO7wdH{Df>iy!It_o_HO3I?iC|paXqXb41Yw$!2P#Dl8ED}RC z8EN&HkVYG&)2pJ%=&;3z8aFUerw!9)Fi~h4O&DY|q3RTj1QM|%y-@`Ap1%kJdW{HN z$_rzKnIxD_ADT&EQJG4WIx|Hbr~!lK140`@5g0HM1#E^?qZzS@z_+{zHFs`9An?|N zOc8-YqN2mX0SQiE0FTLGs97)!@cB%b%j5Imxd595vmq9B^BFJ~;qei+0C;zSls7`7 zMIxp0cfP2V2-K0J34x&W^mJxAhlvwO5F8j7=;UCt8I%RXoM9wU8^dUxHq0Q!%xXe! zBK5cta5AEaxP=sfl+vLP45qNK_ryl?yF^hbgKVe?f|)GHU~tCu*4j))V*kkaptV_* zVZxwD%#2$IHFX}^X~SSDcOQ4;G^ErZUlV%jP|#Ehp;kkAV(k$kn(u~9t_KPfiku%gu@Mxg|K-N z0S6w&DvV|lHL9^;zk15=JFMiRSVTf#D2Wp)98VptfN&j7;$|Ig0whs|DFdAZcXy? z>hqsAtp;={ro}Ex-0|$r{OFpyQ>BU26`(hDmJR@-A>@x31 zJ9etN`9a2#5@y0$q|iu7=|u_!J6}-&7hE1UGGAwrT$#M9t|M5XsGsD}3WdUg@|&s4 zCw9#6Syh`=2`*A9&z2lK_``UelAeEZMp}jLLXKy3XIEGKo0Zd*yx`8!t(AG6t+`_6 z-Pae(YyEwq)`N~Gwosw?$b^Z#UfYw_gYyFdX36rk0OJjpJ`taY1*hfyu3uxZTD1pq zf4b|%S{TB(Gw1W>=M6nIDK{;-;-zSF&g!~LVmIR%_H%5WU9_r` z$K!3+_3w6A=jAlur`J{%xnab!R>I^yi(s7}1&UwsyZUIhl^Me7SIe-Awr302{_8Ka21@IX3z)yFHli zL*gj9Kd|Ld(B+YfWtIsSTt#I5W4eV2!%vK9X=!Z>nX&{s@053{8h+syS5#JZ^ytyX z#zt~O=2G&^BWOy=pQV+RmASoJvOETH+E+cM;w9&ncP{jDbS<(>um0YXMaxT=HQ+l1 Qa{feV3Yk)RGGs;8-@wuA0RR91 literal 0 HcmV?d00001 diff --git a/plugins/c9.ide.layout.classic/icons/sync@2x.png b/plugins/c9.ide.layout.classic/icons/sync@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9197db117e408b7d52e8f98977d18020e1811568 GIT binary patch literal 1895 zcmV-t2blPYP)KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4{Q&k2kgNVo|1qcff zJ_s=cNG>fZg9jx8g8+jTgC9dB!zzXcjM9uzjPn?uG8r;8FkNESU~Xi-%VNVakCmA< zoAoN26WbJk(nbKDkms+R=!8UN0C?Yg3=V_C>14@ z*Q#698rA(YWHsJu?$es6ovLH4E2R5M?}+|ghuuQb_ zv9_>LwH2{rvHNQO+~Kz41*c=qdtJ7=u6JAMzSLup=R&Uq-V1#e`!4fa<-a~)YvA6X zW5MS`ZiPMz`x3zvDHx>`Z5-nk8x@xq-;yvpadXny#c{8Bv*4S+lbD&|w7H};LTeNub$E6O-CMYHnI*EOxbxzS)#$L0rHt+q|w{$Z!@u2p+D_NMPUen9P!e)1|n}r>^TY4rKi~dU{r?XDE({%upgajN0000WV@Og>004R=004l4 z008;_004mL004C`008P>0026e000+nl3&F}000BVNklTWC~A7=XWwR-wHbprI)GsDhU$rG&O1^%4-Xo3h-)1l7@TpV)O&DVTe8r9|s;M+5{dqIyPKIzoj*KaR08mk;f=T^QjrU zyJqgYE*!ECfM)8s!f7h?S2JZ^BEEjlF?P5YY~k75G@wK z1o8+nz0*s!x$Dj0FrSd5WpQ89(%8mo-}Aq_E6qRu!{p1qRGE9lkBsDwVk>mk*aR*W z?-TcyJA!h>^o#SA3ZF~17QaCEcGqE#VknW}gD6)#+gU;}@C6)^)S$CE0{t#^8a;R7fziY9wlP9W;u+gKr~gIN}ae@|~OSXFBA`>E2n<_x8hx-<-z zy?Iv)Z=+2+zf&6LIAa9a1f>va6Hhwty@unGI!!3iqml zy36oLfR7mrA{HfVHlYEc2bt Date: Mon, 12 Oct 2015 17:17:24 -0700 Subject: [PATCH 05/22] Moved images --- configs/client-default.js | 13 +++++++++++++ configs/standalone.js | 4 +++- plugins/c9.ide.layout.classic/icons/sync.png | Bin 1889 -> 0 bytes plugins/c9.ide.layout.classic/icons/sync@2x.png | Bin 1895 -> 0 bytes 4 files changed, 16 insertions(+), 1 deletion(-) delete mode 100644 plugins/c9.ide.layout.classic/icons/sync.png delete mode 100644 plugins/c9.ide.layout.classic/icons/sync@2x.png diff --git a/configs/client-default.js b/configs/client-default.js index c71e359d..83aad55e 100644 --- a/configs/client-default.js +++ b/configs/client-default.js @@ -712,6 +712,19 @@ module.exports = function(options) { "plugins/c9.ide.scm/log", "plugins/c9.ide.scm/git", "plugins/c9.ide.scm/editor", + + // DO NOT COMMIT + { + packagePath: "plugins/salesforce.sync/plugin", + staticPrefix: staticPrefix + "/plugins/salesforce.sync" + }, + // "plugins/salesforce.sync/test", + "plugins/salesforce.sync/api-standalone", + // "plugins/salesforce.sync/immediateapex", + // "plugins/salesforce.sync/immediatequery", + // "plugins/salesforce.sync/preview_visualforce", + // "plugins/salesforce.sync/preview_lightning", + // "plugins/salesforce.language/apex_language" ]; if (!options.sdk) { diff --git a/configs/standalone.js b/configs/standalone.js index 01115eb1..6ebce587 100644 --- a/configs/standalone.js +++ b/configs/standalone.js @@ -155,7 +155,9 @@ module.exports = function(config, optimist) { "c9.cli.bridge": true, "c9.nodeapi": true, "c9.ide.experiment": true, - "saucelabs.preview": true + "saucelabs.preview": true, + "salesforce.sync": true, + "salesforce.language": true } }, "./c9.preview/statics", diff --git a/plugins/c9.ide.layout.classic/icons/sync.png b/plugins/c9.ide.layout.classic/icons/sync.png deleted file mode 100644 index 76bdbab81bf0d9f648bda32ad08d56b7953eb081..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1889 zcmbVNc~BE~6pjiMq}~>k(z2{aHJWTTC#;DOa!6ECj#N=Dmt;c%BpWuH5NNH6_XUiI zwhB0+sCc1L6h>zZB4t1*AQrE7a6qNlC>|X|MeIhz_7BI-bZ2*e$G-1--+RCJW;cf` z7mOM0Gnz)DjZuV3BdO7wdH{Df>iy!It_o_HO3I?iC|paXqXb41Yw$!2P#Dl8ED}RC z8EN&HkVYG&)2pJ%=&;3z8aFUerw!9)Fi~h4O&DY|q3RTj1QM|%y-@`Ap1%kJdW{HN z$_rzKnIxD_ADT&EQJG4WIx|Hbr~!lK140`@5g0HM1#E^?qZzS@z_+{zHFs`9An?|N zOc8-YqN2mX0SQiE0FTLGs97)!@cB%b%j5Imxd595vmq9B^BFJ~;qei+0C;zSls7`7 zMIxp0cfP2V2-K0J34x&W^mJxAhlvwO5F8j7=;UCt8I%RXoM9wU8^dUxHq0Q!%xXe! zBK5cta5AEaxP=sfl+vLP45qNK_ryl?yF^hbgKVe?f|)GHU~tCu*4j))V*kkaptV_* zVZxwD%#2$IHFX}^X~SSDcOQ4;G^ErZUlV%jP|#Ehp;kkAV(k$kn(u~9t_KPfiku%gu@Mxg|K-N z0S6w&DvV|lHL9^;zk15=JFMiRSVTf#D2Wp)98VptfN&j7;$|Ig0whs|DFdAZcXy? z>hqsAtp;={ro}Ex-0|$r{OFpyQ>BU26`(hDmJR@-A>@x31 zJ9etN`9a2#5@y0$q|iu7=|u_!J6}-&7hE1UGGAwrT$#M9t|M5XsGsD}3WdUg@|&s4 zCw9#6Syh`=2`*A9&z2lK_``UelAeEZMp}jLLXKy3XIEGKo0Zd*yx`8!t(AG6t+`_6 z-Pae(YyEwq)`N~Gwosw?$b^Z#UfYw_gYyFdX36rk0OJjpJ`taY1*hfyu3uxZTD1pq zf4b|%S{TB(Gw1W>=M6nIDK{;-;-zSF&g!~LVmIR%_H%5WU9_r` z$K!3+_3w6A=jAlur`J{%xnab!R>I^yi(s7}1&UwsyZUIhl^Me7SIe-Awr302{_8Ka21@IX3z)yFHli zL*gj9Kd|Ld(B+YfWtIsSTt#I5W4eV2!%vK9X=!Z>nX&{s@053{8h+syS5#JZ^ytyX z#zt~O=2G&^BWOy=pQV+RmASoJvOETH+E+cM;w9&ncP{jDbS<(>um0YXMaxT=HQ+l1 Qa{feV3Yk)RGGs;8-@wuA0RR91 diff --git a/plugins/c9.ide.layout.classic/icons/sync@2x.png b/plugins/c9.ide.layout.classic/icons/sync@2x.png deleted file mode 100644 index 9197db117e408b7d52e8f98977d18020e1811568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1895 zcmV-t2blPYP)KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4{Q&k2kgNVo|1qcff zJ_s=cNG>fZg9jx8g8+jTgC9dB!zzXcjM9uzjPn?uG8r;8FkNESU~Xi-%VNVakCmA< zoAoN26WbJk(nbKDkms+R=!8UN0C?Yg3=V_C>14@ z*Q#698rA(YWHsJu?$es6ovLH4E2R5M?}+|ghuuQb_ zv9_>LwH2{rvHNQO+~Kz41*c=qdtJ7=u6JAMzSLup=R&Uq-V1#e`!4fa<-a~)YvA6X zW5MS`ZiPMz`x3zvDHx>`Z5-nk8x@xq-;yvpadXny#c{8Bv*4S+lbD&|w7H};LTeNub$E6O-CMYHnI*EOxbxzS)#$L0rHt+q|w{$Z!@u2p+D_NMPUen9P!e)1|n}r>^TY4rKi~dU{r?XDE({%upgajN0000WV@Og>004R=004l4 z008;_004mL004C`008P>0026e000+nl3&F}000BVNklTWC~A7=XWwR-wHbprI)GsDhU$rG&O1^%4-Xo3h-)1l7@TpV)O&DVTe8r9|s;M+5{dqIyPKIzoj*KaR08mk;f=T^QjrU zyJqgYE*!ECfM)8s!f7h?S2JZ^BEEjlF?P5YY~k75G@wK z1o8+nz0*s!x$Dj0FrSd5WpQ89(%8mo-}Aq_E6qRu!{p1qRGE9lkBsDwVk>mk*aR*W z?-TcyJA!h>^o#SA3ZF~17QaCEcGqE#VknW}gD6)#+gU;}@C6)^)S$CE0{t#^8a;R7fziY9wlP9W;u+gKr~gIN}ae@|~OSXFBA`>E2n<_x8hx-<-z zy?Iv)Z=+2+zf&6LIAa9a1f>va6Hhwty@unGI!!3iqml zy36oLfR7mrA{HfVHlYEc2bt Date: Tue, 13 Oct 2015 07:32:18 -0700 Subject: [PATCH 06/22] Fix splitbutton moveleft behavior --- plugins/c9.ide.ui/lib_apf.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/c9.ide.ui/lib_apf.js b/plugins/c9.ide.ui/lib_apf.js index daa1efbc..25988dc1 100644 --- a/plugins/c9.ide.ui/lib_apf.js +++ b/plugins/c9.ide.ui/lib_apf.js @@ -33555,7 +33555,9 @@ apf.splitbutton = function(struct, tagName) { var diff = apf.getAbsolutePosition(split.$button2.$ext)[0] - apf.getAbsolutePosition(split.$button1.$ext)[0]; - this.$ext.style.marginLeft = "-" + diff + "px"; + this.$ext.style.marginLeft = ~this.$ext.className.indexOf("moveleft") + ? 0 + : "-" + diff + "px"; }); menu.$splitInited = true; } From b6d0c1cdb6cff3cf94c0e88172f4c0a9bb8ed9ae Mon Sep 17 00:00:00 2001 From: Ruben Daniels Date: Tue, 13 Oct 2015 22:59:27 -0700 Subject: [PATCH 07/22] Cleanup --- configs/client-default.js | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/configs/client-default.js b/configs/client-default.js index 83aad55e..b04c8dbd 100644 --- a/configs/client-default.js +++ b/configs/client-default.js @@ -711,20 +711,7 @@ module.exports = function(options) { "plugins/c9.ide.scm/detail", "plugins/c9.ide.scm/log", "plugins/c9.ide.scm/git", - "plugins/c9.ide.scm/editor", - - // DO NOT COMMIT - { - packagePath: "plugins/salesforce.sync/plugin", - staticPrefix: staticPrefix + "/plugins/salesforce.sync" - }, - // "plugins/salesforce.sync/test", - "plugins/salesforce.sync/api-standalone", - // "plugins/salesforce.sync/immediateapex", - // "plugins/salesforce.sync/immediatequery", - // "plugins/salesforce.sync/preview_visualforce", - // "plugins/salesforce.sync/preview_lightning", - // "plugins/salesforce.language/apex_language" + "plugins/c9.ide.scm/editor" ]; if (!options.sdk) { From 9bba201da479685898539540f0446ba93bb44dde Mon Sep 17 00:00:00 2001 From: Lennart kats Date: Wed, 14 Oct 2015 09:16:18 +0000 Subject: [PATCH 08/22] Don't ignore _ for unused variable detection --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6d7808e1..5e8ab448 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "c9.ide.language.html.diff": "#24f3608d26", "c9.ide.language.javascript": "#2b77bdb96a", "c9.ide.language.javascript.immediate": "#0535804ada", - "c9.ide.language.javascript.eslint": "#df7e424b54", + "c9.ide.language.javascript.eslint": "#3ec4557969", "c9.ide.language.javascript.tern": "#40cf04bded", "c9.ide.language.javascript.infer": "#8478e3c702", "c9.ide.language.jsonalyzer": "#8401c240b3", From 8224fb8c661aa63bb6602b9ef79903b81e8aed08 Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Wed, 14 Oct 2015 13:31:30 +0000 Subject: [PATCH 09/22] add user content moved page --- node_modules/c9/urls.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/node_modules/c9/urls.js b/node_modules/c9/urls.js index a1b000af..8f5fc472 100644 --- a/node_modules/c9/urls.js +++ b/node_modules/c9/urls.js @@ -22,6 +22,14 @@ function main(options, imports, register) { }); } +plugin.getHost = function(req) { + return (req.headers && req.headers.host + || req.host + || req.url && req.url.replace(/^https?:\/\/([^/]*).*/, "$1") + || req + ); +}; + /** * Get a desired base URL, given some context. * @@ -30,10 +38,8 @@ function main(options, imports, register) { * @param {String} targetBaseUrlPattern The target URL pattern, e.g. https://$DOMAIN */ plugin.getBaseUrl = function(req, sourceBaseUrlPattern, targetBaseUrlPattern) { - var sourceHost = req.headers && req.headers.host - || req.host - || req.url && req.url.replace(/^https?:\/\/([^/]*).*/, "$1") - || req; + var sourceHost = plugin.getHost(req); + if (typeof sourceHost !== "string") throw new Error("Not a valid request object: " + req); if (!sourceBaseUrlPattern) From b0e10d15b5c5dba7927be2bf5f180183bfdcf79f Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Wed, 14 Oct 2015 14:53:53 +0000 Subject: [PATCH 10/22] secure redirect --- node_modules/c9/string.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/node_modules/c9/string.js b/node_modules/c9/string.js index 5e3714ce..2a28f65c 100644 --- a/node_modules/c9/string.js +++ b/node_modules/c9/string.js @@ -43,5 +43,14 @@ exports.repeat = function(str, times) { exports.count = function(str, substr){ return str.split(substr).length - 1; }; + +exports.endsWith = function(subjectString, searchString, position) { + if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { + position = subjectString.length; + } + position -= searchString.length; + var lastIndex = subjectString.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +}; }); \ No newline at end of file From 4a1d16e351ec29b07dc2ef434f40811a94c5062a Mon Sep 17 00:00:00 2001 From: c9bot Date: Sat, 17 Oct 2015 23:41:49 +0200 Subject: [PATCH 11/22] c9-auto-bump 3.1.24 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3f643434..45971115 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.23", + "version": "3.1.24", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 7a08bfa464c0a6fc6be9c081516507ec28adc657 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 19 Oct 2015 00:12:00 +0200 Subject: [PATCH 12/22] c9-auto-bump 3.1.25 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 45971115..eb9ba65d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.24", + "version": "3.1.25", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From be0197a56e16175161dc26367a6bf4ed36f02036 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 19 Oct 2015 09:30:34 +0200 Subject: [PATCH 13/22] c9-auto-bump 3.1.26 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index eb9ba65d..85317563 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.25", + "version": "3.1.26", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From e98d859adb9e7a9625ae2af47c10ba1b0a0c428b Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 19 Oct 2015 10:22:24 +0200 Subject: [PATCH 14/22] c9-auto-bump 3.1.27 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 85317563..c4b64c09 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.26", + "version": "3.1.27", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 487102f58d4e7668c463af3596aa549dc1a09a56 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 19 Oct 2015 10:51:35 +0200 Subject: [PATCH 15/22] c9-auto-bump 3.1.28 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c4b64c09..9c9e6b8f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.27", + "version": "3.1.28", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 3d938c39bb76fbd59db19998ae907a45dbb6c2db Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 19 Oct 2015 11:23:06 +0200 Subject: [PATCH 16/22] c9-auto-bump 3.1.29 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9c9e6b8f..7c6a2b2d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.28", + "version": "3.1.29", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From d8c19752a4ec6a322f5f5abb7825139e9d27b40c Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 19 Oct 2015 12:18:56 +0200 Subject: [PATCH 17/22] c9-auto-bump 3.1.30 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7c6a2b2d..51939a9d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.29", + "version": "3.1.30", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 663677be9f309840b8493dce1597edb3b5703345 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 19 Oct 2015 12:38:56 +0200 Subject: [PATCH 18/22] c9-auto-bump 3.1.31 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 51939a9d..f58c0b78 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.30", + "version": "3.1.31", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 76577edb8a1028230ecb32c81d9f6254dfc3c1f1 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 19 Oct 2015 12:47:01 +0200 Subject: [PATCH 19/22] c9-auto-bump 3.1.32 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f58c0b78..1fab5b24 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.31", + "version": "3.1.32", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From bee22480da4f5dc7302eac8c968e5a248b3807a3 Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 19 Oct 2015 13:47:21 +0200 Subject: [PATCH 20/22] c9-auto-bump 3.1.33 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1fab5b24..dcb1705e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.32", + "version": "3.1.33", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", From 043984c8e1dc2ea96cca39f25f8971395fe49efe Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Mon, 19 Oct 2015 17:22:19 +0200 Subject: [PATCH 21/22] Revert "Put user content on a different domain" --- node_modules/c9/object.js | 9 --------- node_modules/c9/string.js | 9 --------- node_modules/c9/urls.js | 14 ++++---------- plugins/c9.preview/preview.handler.js | 13 +++---------- server.js | 10 ++++++---- 5 files changed, 13 insertions(+), 42 deletions(-) delete mode 100644 node_modules/c9/object.js diff --git a/node_modules/c9/object.js b/node_modules/c9/object.js deleted file mode 100644 index 875dc338..00000000 --- a/node_modules/c9/object.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Swap keys and values of an object - */ -exports.invert = function(obj) { - return Object.keys(obj).reduce(function(res, key) { - res[obj[key]] = key; - return res; - }, {}); -}; \ No newline at end of file diff --git a/node_modules/c9/string.js b/node_modules/c9/string.js index 2a28f65c..5e3714ce 100644 --- a/node_modules/c9/string.js +++ b/node_modules/c9/string.js @@ -43,14 +43,5 @@ exports.repeat = function(str, times) { exports.count = function(str, substr){ return str.split(substr).length - 1; }; - -exports.endsWith = function(subjectString, searchString, position) { - if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { - position = subjectString.length; - } - position -= searchString.length; - var lastIndex = subjectString.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; -}; }); \ No newline at end of file diff --git a/node_modules/c9/urls.js b/node_modules/c9/urls.js index 8f5fc472..a1b000af 100644 --- a/node_modules/c9/urls.js +++ b/node_modules/c9/urls.js @@ -22,14 +22,6 @@ function main(options, imports, register) { }); } -plugin.getHost = function(req) { - return (req.headers && req.headers.host - || req.host - || req.url && req.url.replace(/^https?:\/\/([^/]*).*/, "$1") - || req - ); -}; - /** * Get a desired base URL, given some context. * @@ -38,8 +30,10 @@ plugin.getHost = function(req) { * @param {String} targetBaseUrlPattern The target URL pattern, e.g. https://$DOMAIN */ plugin.getBaseUrl = function(req, sourceBaseUrlPattern, targetBaseUrlPattern) { - var sourceHost = plugin.getHost(req); - + var sourceHost = req.headers && req.headers.host + || req.host + || req.url && req.url.replace(/^https?:\/\/([^/]*).*/, "$1") + || req; if (typeof sourceHost !== "string") throw new Error("Not a valid request object: " + req); if (!sourceBaseUrlPattern) diff --git a/plugins/c9.preview/preview.handler.js b/plugins/c9.preview/preview.handler.js index 3bf1f351..d59b24bd 100644 --- a/plugins/c9.preview/preview.handler.js +++ b/plugins/c9.preview/preview.handler.js @@ -39,13 +39,7 @@ define(function(require, exports, module) { session.ws = {}; req.projectSession = session.ws[ws]; - - if ( - !req.projectSession || - !req.projectSession.expires || - req.projectSession.expires <= Date.now() || - req.projectSession.uid != req.user.id - ) { + if (!req.projectSession || !req.projectSession.expires || req.projectSession.expires <= Date.now()) { req.projectSession = session.ws[ws] = { expires: Date.now() + 10000 }; @@ -83,7 +77,6 @@ define(function(require, exports, module) { } req.projectSession.role = role; req.projectSession.pid = project.id; - req.projectSession.uid = req.user.id; var type = project.scm; req.projectSession.type = type; @@ -144,8 +137,8 @@ define(function(require, exports, module) { var path = req.params.path; var url = req.proxyUrl + path; - if (req.user.code) - url += "?access_token=" + encodeURIComponent(req.user.code); + if (req.session.token) + url += "?access_token=" + encodeURIComponent(req.session.token.id || req.session.token); var parsedUrl = parseUrl(url); var httpModule = parsedUrl.protocol == "https:" ? https : http; diff --git a/server.js b/server.js index 3c8463e9..2711230c 100755 --- a/server.js +++ b/server.js @@ -23,12 +23,14 @@ var DEFAULT_CONFIG = "s"; var DEFAULT_SETTINGS = getDefaultSettings(); var shortcuts = { - "dev" : ["ide", "preview", "user-content", "vfs", "api", "sapi", "proxy", "redis", "profile", "oldclient", "homepage", "apps-proxy", "-s", "devel"], - "odev" : ["ide", "preview", "user-content", "vfs", "api", "proxy", "oldclient", "homepage", "apps-proxy", "profile", "worker", "-s", "onlinedev"], - "beta" : ["ide", "preview", "user-content", "vfs", "proxy", "-s", "beta"], + "dev" : ["ide", "preview", "vfs", "api", "sapi", "proxy", "redis", "profile", "oldclient", "homepage", "apps-proxy", "-s", "devel"], + "odev" : ["ide", "preview", "vfs", "api", "proxy", "oldclient", "homepage", "apps-proxy", "profile", "worker", "-s", "onlinedev"], + "bill" : ["ide", "preview", "vfs", "api", "proxy", "oldclient", "homepage", "apps-proxy", "profile", "-s", "billing"], + "beta" : ["ide", "preview", "vfs", "proxy", "-s", "beta"], + "ci" : ["ide", "preview", "vfs", "proxy", "-s", "ci"], "s" : ["standalone", "-s", "standalone"] }; -var delayLoadConfigs = ["preview", "user-content", "api", "oldclient", "apps-proxy", "worker"]; +var delayLoadConfigs = ["preview", "api", "oldclient", "apps-proxy", "worker"]; module.exports = main; From 699e96e85de2ecdfb7cd2ea640a4bae7d8a74b9c Mon Sep 17 00:00:00 2001 From: c9bot Date: Mon, 19 Oct 2015 18:36:22 +0200 Subject: [PATCH 22/22] c9-auto-bump 3.1.34 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 049a7a7d..1b933791 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.33", + "version": "3.1.34", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9",