commit
bf398889bf
43
ChangeLog
43
ChangeLog
|
@ -1,3 +1,46 @@
|
||||||
|
commit 4359b05da8ba291b9bbc00e330d65575a4dbb253
|
||||||
|
Author: Jean Raby <jraby@inverse.ca>
|
||||||
|
Date: Thu Jun 27 11:33:44 2013 -0400
|
||||||
|
|
||||||
|
updated NEWS
|
||||||
|
|
||||||
|
M NEWS
|
||||||
|
|
||||||
|
commit 25dbd4849de23b9ceb747ff061dffd0f1cf98cde
|
||||||
|
Author: Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||||
|
Date: Thu Jun 27 11:06:07 2013 -0400
|
||||||
|
|
||||||
|
Properly escape the foldername to avoid XSS issues
|
||||||
|
|
||||||
|
M UI/WebServerResources/SchedulerUI.js
|
||||||
|
M UI/WebServerResources/UIxContactsUserFolders.js
|
||||||
|
|
||||||
|
commit a2a89e8720cfd44f885c34d5626d78b6b20a6b3b
|
||||||
|
Author: Jean Raby <jraby@inverse.ca>
|
||||||
|
Date: Wed Jun 26 16:55:39 2013 -0400
|
||||||
|
|
||||||
|
Fix loading of MSExchangeFreeBusySOAPResponseMap
|
||||||
|
|
||||||
|
M SoObjects/Appointments/GNUmakefile
|
||||||
|
M SoObjects/Appointments/MSExchangeFreeBusy.m
|
||||||
|
|
||||||
|
commit 2581f6c56895820d126fbbcdc45512f0c17a67df
|
||||||
|
Author: Jean Raby <jraby@inverse.ca>
|
||||||
|
Date: Tue Jun 25 09:19:37 2013 -0400
|
||||||
|
|
||||||
|
Update for 2.0.6a
|
||||||
|
|
||||||
|
M NEWS
|
||||||
|
M Version
|
||||||
|
|
||||||
|
commit 20369631c9425d47d4e86d98d914c9d64b820c56
|
||||||
|
Author: Jean Raby <jraby@inverse.ca>
|
||||||
|
Date: Tue Jun 25 09:17:03 2013 -0400
|
||||||
|
|
||||||
|
Update ChangeLog
|
||||||
|
|
||||||
|
M ChangeLog
|
||||||
|
|
||||||
commit 1221da24439397bf66c9701ba356bd61fe4eff12
|
commit 1221da24439397bf66c9701ba356bd61fe4eff12
|
||||||
Author: Jean Raby <jraby@inverse.ca>
|
Author: Jean Raby <jraby@inverse.ca>
|
||||||
Date: Tue Jun 25 09:12:27 2013 -0400
|
Date: Tue Jun 25 09:12:27 2013 -0400
|
||||||
|
|
7
NEWS
7
NEWS
|
@ -1,3 +1,10 @@
|
||||||
|
2.0.6b (2013-06-27)
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Bug fixes
|
||||||
|
- Properly escape the foldername to avoid XSS issues
|
||||||
|
- Fix loading of MSExchangeFreeBusySOAPResponseMap
|
||||||
|
|
||||||
2.0.6a (2013-06-25)
|
2.0.6a (2013-06-25)
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ Appointments_OBJC_FILES = \
|
||||||
|
|
||||||
Appointments_RESOURCE_FILES += \
|
Appointments_RESOURCE_FILES += \
|
||||||
product.plist \
|
product.plist \
|
||||||
\
|
MSExchangeFreeBusySOAPResponseMap.plist \
|
||||||
MSExchangeFreeBusySOAPRequest.wo
|
MSExchangeFreeBusySOAPRequest.wo
|
||||||
|
|
||||||
Appointments_LANGUAGES = Arabic BrazilianPortuguese Catalan Czech Danish Dutch English Finnish French German Hungarian Icelandic Italian NorwegianBokmal NorwegianNynorsk Polish Russian Slovak SpanishSpain SpanishArgentina Swedish Ukrainian Welsh
|
Appointments_LANGUAGES = Arabic BrazilianPortuguese Catalan Czech Danish Dutch English Finnish French German Hungarian Icelandic Italian NorwegianBokmal NorwegianNynorsk Polish Russian Slovak SpanishSpain SpanishArgentina Swedish Ukrainian Welsh
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
* Boston, MA 02111-1307, USA.
|
* Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#import <Foundation/NSBundle.h>
|
||||||
#import <Foundation/NSCalendarDate.h>
|
#import <Foundation/NSCalendarDate.h>
|
||||||
#import <Foundation/NSDictionary.h>
|
#import <Foundation/NSDictionary.h>
|
||||||
|
|
||||||
|
@ -97,8 +98,10 @@ size_t curl_body_function_freebusy(void *ptr, size_t size, size_t nmemb, void *i
|
||||||
MSExchangeFreeBusySOAPRequest *soapRequest;
|
MSExchangeFreeBusySOAPRequest *soapRequest;
|
||||||
MSExchangeFreeBusyResponse *freeBusyResponse;
|
MSExchangeFreeBusyResponse *freeBusyResponse;
|
||||||
NSString *rawRequest, *url, *body, *hostname, *httpauth, *authname, *password;
|
NSString *rawRequest, *url, *body, *hostname, *httpauth, *authname, *password;
|
||||||
|
NSString *mapFile;
|
||||||
NSArray *infos = nil;
|
NSArray *infos = nil;
|
||||||
NSDictionary *root;
|
NSDictionary *root;
|
||||||
|
NSBundle *bundle;
|
||||||
|
|
||||||
CURL *curl;
|
CURL *curl;
|
||||||
struct curl_slist *headerlist=NULL;
|
struct curl_slist *headerlist=NULL;
|
||||||
|
@ -161,7 +164,13 @@ size_t curl_body_function_freebusy(void *ptr, size_t size, size_t nmemb, void *i
|
||||||
}
|
}
|
||||||
if (sax == nil && parser != nil)
|
if (sax == nil && parser != nil)
|
||||||
{
|
{
|
||||||
sax = [[SaxObjectDecoder alloc] initWithMappingAtPath:@"./MSExchangeFreeBusySOAPResponseMap.plist"];
|
bundle = [NSBundle bundleForClass: [self class]];
|
||||||
|
mapFile = [bundle pathForResource: @"MSExchangeFreeBusySOAPResponseMap" ofType: @"plist"];
|
||||||
|
if (![mapFile length])
|
||||||
|
{
|
||||||
|
[self errorWithFormat: @"mapFile not found (MSExchangeFreeBusySOAPResponseMap.plist)"];
|
||||||
|
}
|
||||||
|
sax = [[SaxObjectDecoder alloc] initWithMappingAtPath: mapFile];
|
||||||
[parser setContentHandler:sax];
|
[parser setContentHandler:sax];
|
||||||
//[parser setErrorHandler:sax];
|
//[parser setErrorHandler:sax];
|
||||||
}
|
}
|
||||||
|
|
|
@ -3076,9 +3076,7 @@ function appendCalendar(folderName, folderPath) {
|
||||||
|
|
||||||
var colorBox = document.createElement("div");
|
var colorBox = document.createElement("div");
|
||||||
li.appendChild(colorBox);
|
li.appendChild(colorBox);
|
||||||
li.appendChild(document.createTextNode(folderName
|
li.appendChild(document.createTextNode(folderName));
|
||||||
.replace("<", "<", "g")
|
|
||||||
.replace(">", ">", "g")));
|
|
||||||
colorBox.appendChild(document.createTextNode("OO"));
|
colorBox.appendChild(document.createTextNode("OO"));
|
||||||
|
|
||||||
$(colorBox).addClassName("colorBox");
|
$(colorBox).addClassName("colorBox");
|
||||||
|
@ -3119,7 +3117,7 @@ function appendStyleElement(folderPath, color) {
|
||||||
function onFolderSubscribeCB(folderData) {
|
function onFolderSubscribeCB(folderData) {
|
||||||
var folder = $(folderData["folder"]);
|
var folder = $(folderData["folder"]);
|
||||||
if (!folder) {
|
if (!folder) {
|
||||||
appendCalendar(folderData["folderName"], folderData["folder"]);
|
appendCalendar(folderData["folderName"].unescapeHTML(), folderData["folder"]);
|
||||||
refreshEvents();
|
refreshEvents();
|
||||||
refreshTasks();
|
refreshTasks();
|
||||||
changeCalendarDisplay();
|
changeCalendarDisplay();
|
||||||
|
|
|
@ -192,7 +192,11 @@ function addFolderBranchToTree(tree, user, folder, nodeId, subId, isLast) {
|
||||||
else
|
else
|
||||||
icon += 'calendar-folder-16x16.png';
|
icon += 'calendar-folder-16x16.png';
|
||||||
var folderId = user + ":" + folderInfos[1].substr(1);
|
var folderId = user + ":" + folderInfos[1].substr(1);
|
||||||
var name = folderInfos[0]; // name has the format "Folername (Firstname Lastname <email>)"
|
|
||||||
|
// name has the format "Foldername (Firstname Lastname <email>)"
|
||||||
|
// We sanitize the value to avoid XSS issues
|
||||||
|
var name = folderInfos[0].escapeHTML();
|
||||||
|
|
||||||
var pos = name.lastIndexOf(' (');
|
var pos = name.lastIndexOf(' (');
|
||||||
if (pos > -1)
|
if (pos > -1)
|
||||||
name = name.substring(0, pos); // strip the part with fullname and email
|
name = name.substring(0, pos); // strip the part with fullname and email
|
||||||
|
|
Loading…
Reference in New Issue