aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/etherpad/src/etherpad/sessions.js
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/etherpad/src/etherpad/sessions.js')
-rw-r--r--trunk/etherpad/src/etherpad/sessions.js203
1 files changed, 0 insertions, 203 deletions
diff --git a/trunk/etherpad/src/etherpad/sessions.js b/trunk/etherpad/src/etherpad/sessions.js
deleted file mode 100644
index c218da8..0000000
--- a/trunk/etherpad/src/etherpad/sessions.js
+++ /dev/null
@@ -1,203 +0,0 @@
-/**
- * Copyright 2009 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS-IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import("sessions");
-import("stringutils.randomHash");
-import("funhtml.*");
-
-import("etherpad.log");
-import("etherpad.globals.*");
-import("etherpad.pro.pro_utils");
-import("etherpad.utils.*");
-import("cache_utils.syncedWithCache");
-
-jimport("java.lang.System.out.println");
-
-var _TRACKING_COOKIE_NAME = "ET";
-var _SESSION_COOKIE_NAME = "ES";
-
-function _updateInitialReferrer(data) {
-
- if (data.initialReferer) {
- return;
- }
-
- var ref = request.headers["Referer"];
-
- if (!ref) {
- return;
- }
- if (ref.indexOf('http://'+request.host) == 0) {
- return;
- }
- if (ref.indexOf('https://'+request.host) == 0) {
- return;
- }
-
- data.initialReferer = ref;
- log.custom("referers", {referer: ref});
-}
-
-function _getScopedDomain(subDomain) {
- var d = request.domain;
- if (d.indexOf(".") == -1) {
- // special case for "localhost". For some reason, firefox does not like cookie domains
- // to be ".localhost".
- return undefined;
- }
- if (subDomain) {
- d = subDomain + "." + d;
- }
- return "." + d;
-}
-//--------------------------------------------------------------------------------
-
-// pass in subDomain to get the session data for a particular subdomain --
-// intended for debugging.
-function getSession(subDomain) {
- var sessionData = sessions.getSession({
- cookieName: _SESSION_COOKIE_NAME,
- domain: _getScopedDomain(subDomain)
- });
- _updateInitialReferrer(sessionData);
- return sessionData;
-}
-
-function getSessionId() {
- return sessions.getSessionId(_SESSION_COOKIE_NAME, false, _getScopedDomain());
-}
-
-function _getGlobalSessionId() {
- return (request.isDefined && request.cookies[_SESSION_COOKIE_NAME]) || null;
-}
-
-function isAnEtherpadAdmin() {
- var sessionId = _getGlobalSessionId();
- if (! sessionId) {
- return false;
- }
-
- return syncedWithCache("isAnEtherpadAdmin", function(c) {
- return !! c[sessionId];
- });
-}
-
-function setIsAnEtherpadAdmin(v) {
- var sessionId = _getGlobalSessionId();
- if (! sessionId) {
- return;
- }
-
- syncedWithCache("isAnEtherpadAdmin", function(c) {
- if (v) {
- c[sessionId] = true;
- }
- else {
- delete c[sessionId];
- }
- });
-}
-
-//--------------------------------------------------------------------------------
-
-function setTrackingCookie() {
- if (request.cookies[_TRACKING_COOKIE_NAME]) {
- return;
- }
-
- var trackingVal = randomHash(16);
- var expires = new Date(32503708800000); // year 3000
-
- response.setCookie({
- name: _TRACKING_COOKIE_NAME,
- value: trackingVal,
- path: "/",
- domain: _getScopedDomain(),
- expires: expires
- });
-}
-
-function getTrackingId() {
- // returns '-' if no tracking ID (caller can assume)
- return (request.cookies[_TRACKING_COOKIE_NAME] || response.getCookie(_TRACKING_COOKIE_NAME) || '-');
-}
-
-//--------------------------------------------------------------------------------
-
-function preRequestCookieCheck() {
- if (isStaticRequest()) {
- return;
- }
-
- // If this function completes without redirecting, then it means
- // there is a valid session cookie and tracking cookie.
-
- if (request.cookies[_SESSION_COOKIE_NAME] &&
- request.cookies[_TRACKING_COOKIE_NAME]) {
-
- if (request.params.cookieShouldBeSet) {
- response.redirect(qpath({cookieShouldBeSet: null}));
- }
- return;
- }
-
- // Only superdomains can set cookies.
- var isSuperdomain = SUPERDOMAINS[request.domain];
-
- if (isSuperdomain) {
- // superdomain without cookies
-
- getSession();
- setTrackingCookie();
-
- // check if we need to redirect back to a subdomain.
- if ((request.path == "/") &&
- (request.params.setCookie) &&
- (request.params.contUrl)) {
-
- var contUrl = request.params.contUrl;
- if (contUrl.indexOf("?") == -1) {
- contUrl += "?";
- }
- contUrl += "&cookieShouldBeSet=1";
- response.redirect(contUrl);
- }
- } else {
- var parts = request.domain.split(".");
- if (parts.length < 3) {
- // invalid superdomain
- response.write("invalid superdomain");
- response.stop();
- }
- // subdomain without cookies
- if (request.params.cookieShouldBeSet) {
- log.warn("Cookie failure!");
- renderFramedHtml(DIV({style: "border: 1px solid #ccc; padding: 1em; width: 600px; margin: 1em auto; font-size: 1.4em;"},
- P("Please enable cookies in your browser in order to access this site."),
- BR(),
- P(A({href: "/"}, "Continue"))));
- response.stop();
- } else {
- var contUrl = request.url;
- var p = request.host.split(':')[1];
- p = (p ? (":"+p) : "");
- response.redirect(request.scheme+"://"+pro_utils.getRequestSuperdomain()+p+
- "/?setCookie=1&contUrl="+encodeURIComponent(contUrl));
- }
- }
-}
-
-