don't allow editing if pad type is wrong
This commit is contained in:
parent
eddfb936f2
commit
852c028822
@ -173,7 +173,7 @@ define([
|
|||||||
var titleCfg = { getHeadingText: CodeMirror.getHeadingText };
|
var titleCfg = { getHeadingText: CodeMirror.getHeadingText };
|
||||||
Title = Cryptpad.createTitle(titleCfg, config.onLocal, Cryptpad);
|
Title = Cryptpad.createTitle(titleCfg, config.onLocal, Cryptpad);
|
||||||
|
|
||||||
Metadata = Cryptpad.createMetadata(UserList, Title);
|
Metadata = Cryptpad.createMetadata(UserList, Title, null, Cryptpad);
|
||||||
|
|
||||||
var configTb = {
|
var configTb = {
|
||||||
displayed: ['title', 'useradmin', 'spinner', 'lag', 'state', 'share', 'userlist', 'newpad', 'limit', 'upgrade'],
|
displayed: ['title', 'useradmin', 'spinner', 'lag', 'state', 'share', 'userlist', 'newpad', 'limit', 'upgrade'],
|
||||||
@ -308,7 +308,8 @@ define([
|
|||||||
if(userDoc !== "") {
|
if(userDoc !== "") {
|
||||||
var hjson = JSON.parse(userDoc);
|
var hjson = JSON.parse(userDoc);
|
||||||
|
|
||||||
if (typeof (hjson) !== 'object' || Array.isArray(hjson)) {
|
if (typeof (hjson) !== 'object' || Array.isArray(hjson) ||
|
||||||
|
(typeof(hjson.type) !== 'undefined' && hjson.type !== 'code')) {
|
||||||
var errorText = Messages.typeError;
|
var errorText = Messages.typeError;
|
||||||
Cryptpad.errorLoadingScreen(errorText);
|
Cryptpad.errorLoadingScreen(errorText);
|
||||||
throw new Error(errorText);
|
throw new Error(errorText);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
define(function () {
|
define(function () {
|
||||||
var module = {};
|
var module = {};
|
||||||
|
|
||||||
module.create = function (UserList, Title, cfg) {
|
module.create = function (UserList, Title, cfg, Cryptpad) {
|
||||||
var exp = {};
|
var exp = {};
|
||||||
|
|
||||||
exp.update = function (shjson) {
|
exp.update = function (shjson) {
|
||||||
@ -15,6 +15,14 @@ define(function () {
|
|||||||
metadata = json.metadata;
|
metadata = json.metadata;
|
||||||
}
|
}
|
||||||
if (typeof metadata === "object") {
|
if (typeof metadata === "object") {
|
||||||
|
if (Cryptpad) {
|
||||||
|
if (typeof(metadata.type) === 'undefined') {
|
||||||
|
// initialize pad type by location.pathname
|
||||||
|
metadata.type = Cryptpad.getAppType();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log("Cryptpad should exist but it does not");
|
||||||
|
}
|
||||||
if (metadata.users) {
|
if (metadata.users) {
|
||||||
var userData = metadata.users;
|
var userData = metadata.users;
|
||||||
// Update the local user data
|
// Update the local user data
|
||||||
|
|||||||
@ -139,5 +139,12 @@ define([], function () {
|
|||||||
return Math.floor(Math.random() * Number.MAX_SAFE_INTEGER);
|
return Math.floor(Math.random() * Number.MAX_SAFE_INTEGER);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Util.getAppType = function () {
|
||||||
|
var parts = window.location.pathname.split('/')
|
||||||
|
.filter(function (x) { return x; });
|
||||||
|
if (!parts[0]) { return ''; }
|
||||||
|
return parts[0];
|
||||||
|
};
|
||||||
|
|
||||||
return Util;
|
return Util;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -83,6 +83,7 @@ define([
|
|||||||
common.fetch = Util.fetch;
|
common.fetch = Util.fetch;
|
||||||
common.throttle = Util.throttle;
|
common.throttle = Util.throttle;
|
||||||
common.createRandomInteger = Util.createRandomInteger;
|
common.createRandomInteger = Util.createRandomInteger;
|
||||||
|
common.getAppType = Util.getAppType;
|
||||||
|
|
||||||
// import hash utilities for export
|
// import hash utilities for export
|
||||||
var createRandomHash = common.createRandomHash = Hash.createRandomHash;
|
var createRandomHash = common.createRandomHash = Hash.createRandomHash;
|
||||||
@ -906,18 +907,12 @@ define([
|
|||||||
common.getPinnedUsage(todo);
|
common.getPinnedUsage(todo);
|
||||||
};
|
};
|
||||||
|
|
||||||
var getAppSuffix = function () {
|
|
||||||
var parts = window.location.pathname.split('/')
|
|
||||||
.filter(function (x) { return x; });
|
|
||||||
|
|
||||||
if (!parts[0]) { return ''; }
|
|
||||||
return '_' + parts[0].toUpperCase();
|
|
||||||
};
|
|
||||||
|
|
||||||
var prepareFeedback = common.prepareFeedback = function (key) {
|
var prepareFeedback = common.prepareFeedback = function (key) {
|
||||||
if (typeof(key) !== 'string') { return $.noop; }
|
if (typeof(key) !== 'string') { return $.noop; }
|
||||||
|
|
||||||
|
var type = common.getAppType();
|
||||||
return function () {
|
return function () {
|
||||||
feedback(key.toUpperCase() + getAppSuffix());
|
feedback((key + (type? '_' + type: '')).toUpperCase());
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -306,7 +306,8 @@ define([
|
|||||||
hjson[3] = {
|
hjson[3] = {
|
||||||
metadata: {
|
metadata: {
|
||||||
users: UserList.userData,
|
users: UserList.userData,
|
||||||
defaultTitle: Title.defaultTitle
|
defaultTitle: Title.defaultTitle,
|
||||||
|
type: 'pad'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (!initializing) {
|
if (!initializing) {
|
||||||
@ -450,7 +451,7 @@ define([
|
|||||||
var titleCfg = { getHeadingText: getHeadingText };
|
var titleCfg = { getHeadingText: getHeadingText };
|
||||||
Title = Cryptpad.createTitle(titleCfg, realtimeOptions.onLocal, Cryptpad);
|
Title = Cryptpad.createTitle(titleCfg, realtimeOptions.onLocal, Cryptpad);
|
||||||
|
|
||||||
Metadata = Cryptpad.createMetadata(UserList, Title);
|
Metadata = Cryptpad.createMetadata(UserList, Title, null, Cryptpad);
|
||||||
|
|
||||||
var configTb = {
|
var configTb = {
|
||||||
displayed: ['title', 'useradmin', 'spinner', 'lag', 'state', 'share', 'userlist', 'newpad', 'limit', 'upgrade'],
|
displayed: ['title', 'useradmin', 'spinner', 'lag', 'state', 'share', 'userlist', 'newpad', 'limit', 'upgrade'],
|
||||||
|
|||||||
@ -430,6 +430,7 @@ define([
|
|||||||
});
|
});
|
||||||
|
|
||||||
proxy.version = 1;
|
proxy.version = 1;
|
||||||
|
proxy.type = 'poll';
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -475,6 +476,16 @@ var ready = function (info, userid, readOnly) {
|
|||||||
var userDoc = JSON.stringify(proxy);
|
var userDoc = JSON.stringify(proxy);
|
||||||
if (userDoc === "" || userDoc === "{}") { isNew = true; }
|
if (userDoc === "" || userDoc === "{}") { isNew = true; }
|
||||||
|
|
||||||
|
if (!isNew && typeof(proxy.type) !== 'undefined' && proxy.type !== 'poll') {
|
||||||
|
var errorText = Messages.typeError;
|
||||||
|
Cryptpad.errorLoadingScreen(errorText);
|
||||||
|
throw new Error(errorText);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof(proxy.type) === 'undefined') {
|
||||||
|
proxy.type = 'poll';
|
||||||
|
}
|
||||||
|
|
||||||
var uncommitted = APP.uncommitted = {};
|
var uncommitted = APP.uncommitted = {};
|
||||||
prepareProxy(proxy, copyObject(Render.Example));
|
prepareProxy(proxy, copyObject(Render.Example));
|
||||||
prepareProxy(uncommitted, copyObject(Render.Example));
|
prepareProxy(uncommitted, copyObject(Render.Example));
|
||||||
|
|||||||
@ -343,7 +343,7 @@ define([
|
|||||||
};
|
};
|
||||||
Title = Cryptpad.createTitle(titleCfg, config.onLocal, Cryptpad);
|
Title = Cryptpad.createTitle(titleCfg, config.onLocal, Cryptpad);
|
||||||
|
|
||||||
Metadata = Cryptpad.createMetadata(UserList, Title, metadataCfg);
|
Metadata = Cryptpad.createMetadata(UserList, Title, metadataCfg, Cryptpad);
|
||||||
|
|
||||||
var configTb = {
|
var configTb = {
|
||||||
displayed: ['title', 'useradmin', 'spinner', 'lag', 'state', 'share', 'userlist', 'newpad', 'limit', 'upgrade'],
|
displayed: ['title', 'useradmin', 'spinner', 'lag', 'state', 'share', 'userlist', 'newpad', 'limit', 'upgrade'],
|
||||||
@ -557,7 +557,8 @@ define([
|
|||||||
var hjson = JSON.parse(userDoc);
|
var hjson = JSON.parse(userDoc);
|
||||||
newDoc = hjson.content;
|
newDoc = hjson.content;
|
||||||
|
|
||||||
if (typeof (hjson) !== 'object' || Array.isArray(hjson)) {
|
if (typeof (hjson) !== 'object' || Array.isArray(hjson) ||
|
||||||
|
(typeof(hjson.type) !== 'undefined' && hjson.type !== 'slide')) {
|
||||||
var errorText = Messages.typeError;
|
var errorText = Messages.typeError;
|
||||||
Cryptpad.errorLoadingScreen(errorText);
|
Cryptpad.errorLoadingScreen(errorText);
|
||||||
throw new Error(errorText);
|
throw new Error(errorText);
|
||||||
|
|||||||
@ -293,7 +293,7 @@ window.canvas = canvas;
|
|||||||
|
|
||||||
Title = Cryptpad.createTitle({}, config.onLocal, Cryptpad);
|
Title = Cryptpad.createTitle({}, config.onLocal, Cryptpad);
|
||||||
|
|
||||||
Metadata = Cryptpad.createMetadata(UserList, Title, metadataCfg);
|
Metadata = Cryptpad.createMetadata(UserList, Title, metadataCfg, Cryptpad);
|
||||||
|
|
||||||
var configTb = {
|
var configTb = {
|
||||||
displayed: ['title', 'useradmin', 'spinner', 'lag', 'state', 'share', 'userlist', 'newpad', 'limit', 'upgrade'],
|
displayed: ['title', 'useradmin', 'spinner', 'lag', 'state', 'share', 'userlist', 'newpad', 'limit', 'upgrade'],
|
||||||
@ -384,7 +384,8 @@ window.canvas = canvas;
|
|||||||
metadata: {
|
metadata: {
|
||||||
users: UserList.userData,
|
users: UserList.userData,
|
||||||
palette: palette,
|
palette: palette,
|
||||||
defaultTitle: Title.defaultTitle
|
defaultTitle: Title.defaultTitle,
|
||||||
|
type: 'whiteboard',
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (!initializing) {
|
if (!initializing) {
|
||||||
@ -413,6 +414,14 @@ window.canvas = canvas;
|
|||||||
var isNew = false;
|
var isNew = false;
|
||||||
var userDoc = module.realtime.getUserDoc();
|
var userDoc = module.realtime.getUserDoc();
|
||||||
if (userDoc === "" || userDoc === "{}") { isNew = true; }
|
if (userDoc === "" || userDoc === "{}") { isNew = true; }
|
||||||
|
else {
|
||||||
|
var hjson = JSON.parse(userDoc);
|
||||||
|
if (typeof(hjson) !== 'object' || Array.isArray(hjson) ||
|
||||||
|
(typeof(hjson.type) !== 'undefined' && hjson.type !== whiteboard)) {
|
||||||
|
Cryptpad.errorLoadingScreen(Messages.typeError);
|
||||||
|
throw new Error(Messages.typeError);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Cryptpad.removeLoadingScreen();
|
Cryptpad.removeLoadingScreen();
|
||||||
setEditable(true);
|
setEditable(true);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user