From a6c6dd2ed3524f0db39ec62a963e10cca855e595 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Fri, 30 Sep 2011 15:27:20 +0000 Subject: [PATCH 01/10] Created the v1.3.9 branch Monotone-Parent: 5280f05e836dd92b44c9cf8a1a9e66a88860a27e Monotone-Revision: 599fa43b3eab4e51e4df74a85c904490f8700d37 Monotone-Author: ludovic@Sophos.ca Monotone-Date: 2011-09-30T15:27:20 --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 7d09ee3a6..86f04a382 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -1.3-2011MMDD (1.3.9) +1.3-201110DD (1.3.9) --------------------- New Features - new user defaults SOGoDefaultCalendar to specify which calendar is used when From 51f742c61c4c3bb9c16aa90216e061d68a9b4cdd Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 24 Oct 2011 20:42:28 +0000 Subject: [PATCH 02/10] Updated NEWS file. Monotone-Parent: 599fa43b3eab4e51e4df74a85c904490f8700d37 Monotone-Revision: 7df38448b3a1432fc26a95fbe40e2c8524140008 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2011-10-24T20:42:28 --- NEWS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/NEWS b/NEWS index 86f04a382..056865cbc 100644 --- a/NEWS +++ b/NEWS @@ -5,10 +5,14 @@ New Features creating an event or a task (selected, personal, first enabled) - new user defaults SOGoBusyOffHours to specify if off-hours should be automatically added to the free-busy information + - new indicator in the link banner when a vacation message (auto-reply) is active + - new snooze function for events alarms in Web interface Enhancements - phone numbers in the contacts web module are now links (tel:) - revamp of the modules link banner (15-pixel taller) + - updated CKEditor to version 3.6.2 + - updated unread and flagged icons in Webmail module Bug Fixes - From 158c2906152a12550c3fbeb3738d2776ec05b1bb Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 25 Oct 2011 18:03:52 +0000 Subject: [PATCH 03/10] Character case error in contact-oracle.ocs. Monotone-Parent: e58cd8ddee83e89995547f174e7a1a6085b2a8f0 Monotone-Revision: b1d970d4f6e94971dfb6cc4f4be3c09a236823cf Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2011-10-25T18:03:52 --- OGoContentStore/contact-oracle.ocs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OGoContentStore/contact-oracle.ocs b/OGoContentStore/contact-oracle.ocs index e0e8931f4..6028f9ed2 100644 --- a/OGoContentStore/contact-oracle.ocs +++ b/OGoContentStore/contact-oracle.ocs @@ -90,7 +90,7 @@ allowsNull = YES; }, { - columnName = c_telephoneNumber; + columnName = c_telephonenumber; sqlType = "VARCHAR2(255)"; allowsNull = YES; }, From 1907700095418b42297a87c34566d69b4a929c58 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 25 Oct 2011 18:04:09 +0000 Subject: [PATCH 04/10] Monotone-Parent: b1d970d4f6e94971dfb6cc4f4be3c09a236823cf Monotone-Revision: ae46e31f72c5d2fa83adafdcd120cc16cc80b1b6 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2011-10-25T18:04:09 --- Version | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Version b/Version index 09503ebca..8393c4dab 100644 --- a/Version +++ b/Version @@ -2,6 +2,6 @@ # This file is included by library makefiles to set the version information # of the executable. -MAJOR_VERSION=2 -MINOR_VERSION=0 -SUBMINOR_VERSION=0 +MAJOR_VERSION=1 +MINOR_VERSION=3 +SUBMINOR_VERSION=9 From f287bc58352314e955f400190374aec9021da11c Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 25 Oct 2011 18:22:47 +0000 Subject: [PATCH 05/10] Monotone-Parent: ae46e31f72c5d2fa83adafdcd120cc16cc80b1b6 Monotone-Revision: 9b2ef440fdc7d9495d4f165d7fafc6bd0b2d6068 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2011-10-25T18:22:47 --- UI/WebServerResources/AdministrationUI.css | 2 +- UI/WebServerResources/dot.png | Bin 208 -> 158 bytes UI/WebServerResources/flag.png | Bin 779 -> 633 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/UI/WebServerResources/AdministrationUI.css b/UI/WebServerResources/AdministrationUI.css index a90150314..46e787a1a 100644 --- a/UI/WebServerResources/AdministrationUI.css +++ b/UI/WebServerResources/AdministrationUI.css @@ -94,7 +94,7 @@ DIV#administrationModules UL LI DIV#rightPanel { position: absolute; - top: 6em; + top: 80px; left: 15em; margin-left: 5px; right: 0px; diff --git a/UI/WebServerResources/dot.png b/UI/WebServerResources/dot.png index a62a523d69d691059b2428847e68bed75d4feac2..fe80b779d657a067ce0773715b8cd84a03a0809d 100644 GIT binary patch delta 143 zcmcb>IFE6Hcs(Bn8v_G_n*N+FAjOjI=U$VqCq9iy!t)x7$D3!r6 zB|j-u!8128JvAsbF{QHbWU38Nk%6a+V~EA++6kcKY!**ttDYwqdY158* tY+^JxYtV37;FhGrMsc^xj2{^oKDk;x&D|><3)IWN;pyt{oUF%bX& delta 193 zcmbQoc!6<(c)b7z8v_G_{OA9PK#IM@)7O>#8V9ei2%qeI#jiji&H|6fVg?331rTNw ztDSidD9DoT=m?f6e5}~HCZ-*jt{?9pCF#J%z3{B!fPiVGF&)(=O|Fw;;)~6?9HC^;|_`e3u^_| ze0ujSfR&w@SzJbdK~7ziLC;D7ED151k>UF3M-2C`y<~X#_yfpA|M&zr_QtnRv=>;4bOw3FdBlAtz*xCLw{QLEt;s386z_0)s@aGTMDS!U_XV|pz*`Hs({<);} z{W^#d2D3}p?b+Cv_5?)BvM@7(WguSo$H?#x$k?^v*?+&!pMEDLb^Tn3H5O8Pejfbu z``@#d&wny7Faw1dnZW)Bf%k8JGQ4~H>kGPOjA;D*>z^nOFJ{^TiT(HvPE`2Q!MAUJ zIeGb58E#+u#IS1qLxz=eA2Qs$`iX&+jfsJgk%4JaCbIy}bTB1{MGBY(p0cqsF|e>O zo&g3{=2^eL|9`M^GSB$+D+r9>D>_X;f1H z000DMK}|sb0I`n?{9y$E00NpxL_t(|+Le-7NR&|&$N%^H#u;aGoW;qd*)%oxL_`wQ zAZR6M!FiAtNP8&ir4sBxM0)T^F)*X-sj`O>X$pzJEX{{jNPkdMNrMUIirw3;^bC1SnW1u;p;@-qqe#^Q1F1n%jpq`Vv%^- z&vHe(YcvK+w15y*4?>rrOVom8!m9w047QI?k5%P7^?n)K zV@|Ocx7ZR8A0I-ziUULE0nxi^MDl{Ai@?ecD3xK%dw)56=%1Nh2}SmksE+QI8Y2;K zFKb8kf#M1m7!m@N+ZV$@MEpxw_Hl>=1?ZC#F*Y8+%v7LPp%PBJ8y@<}+Ax}$z+_N& zqcug-SYBabLksewB_2{#6=7k?-HI2_riGurQ2nW^J?;N&p}85-^rz95fG-q;U!H_) z6lyR^J%3o09wO0!vPys#?#5iB&5^z<)oC(>MHN`J0mgzX7>n`{r!&b?7^G!pE5Z?e zUrYcmh=*;tPC#jZHg`J)`bMO_?x8SaFOY#rNKG$+AV~*f0f-__aVRw>AHP@~daiqB zzfFAKH$OYKv$vybYWBAVR!14s8pGZP)z$3ZM{H|O`o`}X6D7rs%#y0(RG#YOyO)(0Zx6j%{fTP;k&5i+kE06`q0RMOL!Il}Jl{DO ll&=%5wZeeB;})_m_6On~2`-uZAWHxM002ovPDHLkV1l|aSDgR= From d437ca054096c522a32229565daab5c172992c34 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 25 Oct 2011 20:58:18 +0000 Subject: [PATCH 06/10] See ChangeLog. Monotone-Parent: 9b2ef440fdc7d9495d4f165d7fafc6bd0b2d6068 Monotone-Revision: 9622fc005299a8ed3c143c177667be6f33df9523 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2011-10-25T20:58:18 --- ChangeLog | 7 +++ UI/MainUI/English.lproj/Localizable.strings | 1 + UI/MainUI/French.lproj/Localizable.strings | 1 + UI/MainUI/SOGoRootPage.h | 1 + UI/MainUI/SOGoRootPage.m | 69 ++++++++++++++++++++- UI/Templates/MainUI/SOGoRootPage.wox | 3 +- UI/WebServerResources/SOGoRootPage.js | 9 ++- 7 files changed, 88 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index b07b4595d..5d5ae402c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2011-10-25 Francis Lachapelle + + * UI/MainUI/SOGoRootPage.m (-cookieUsername) + (-cookieWithUsername:): getter/setter for the new SOGoLogin + cookie. This is used for the new "Remember username" checkbox that + appears on the login page. + 2011-10-24 Wolfgang Sourdeau * OpenChange/MAPIStoreAttachment.m diff --git a/UI/MainUI/English.lproj/Localizable.strings b/UI/MainUI/English.lproj/Localizable.strings index 2cc33df23..d99d0fb23 100644 --- a/UI/MainUI/English.lproj/Localizable.strings +++ b/UI/MainUI/English.lproj/Localizable.strings @@ -5,6 +5,7 @@ "Username:" = "Username:"; "Password:" = "Password:"; "Domain:" = "Domain:"; +"Remember username" = "Remember username"; "Connect" = "Connect"; diff --git a/UI/MainUI/French.lproj/Localizable.strings b/UI/MainUI/French.lproj/Localizable.strings index 43fd8c2cc..e61648eb3 100644 --- a/UI/MainUI/French.lproj/Localizable.strings +++ b/UI/MainUI/French.lproj/Localizable.strings @@ -5,6 +5,7 @@ "Username:" = "Nom d'utilisateur :"; "Password:" = "Mot de passe :"; "Domain:" = "Domaine :"; +"Remember username" = "Se souvenir de moi"; "Connect" = "Connexion"; diff --git a/UI/MainUI/SOGoRootPage.h b/UI/MainUI/SOGoRootPage.h index 6bbad00bf..acee8c049 100644 --- a/UI/MainUI/SOGoRootPage.h +++ b/UI/MainUI/SOGoRootPage.h @@ -28,6 +28,7 @@ @interface SOGoRootPage : UIxComponent { id item; + NSString *cookieLogin; } @end diff --git a/UI/MainUI/SOGoRootPage.m b/UI/MainUI/SOGoRootPage.m index a960572ff..21d494186 100644 --- a/UI/MainUI/SOGoRootPage.m +++ b/UI/MainUI/SOGoRootPage.m @@ -58,6 +58,22 @@ @implementation SOGoRootPage +- (id) init +{ + if ((self = [super init])) + { + cookieLogin = nil; + } + + return self; +} + +- (void) dealloc +{ + [cookieLogin release]; + [super dealloc]; +} + /* accessors */ - (NSString *) connectURL @@ -65,6 +81,25 @@ return [NSString stringWithFormat: @"%@/connect", [self applicationPath]]; } +- (NSString *) cookieUsername +{ + NSString *value; + + if (cookieLogin == nil) + { + value = [[context request] cookieValueForKey: @"SOGoLogin"]; + cookieLogin = [value isNotNull]? [value stringByDecodingBase64] : @""; + [cookieLogin retain]; + } + + return cookieLogin; +} + +- (BOOL) rememberLogin +{ + return ([[self cookieUsername] length]); +} + - (WOCookie *) _cookieWithUsername: (NSString *) username andPassword: (NSString *) password forAuthenticator: (SOGoWebAuthenticator *) auth @@ -105,6 +140,32 @@ return authCookie; } +- (WOCookie *) _cookieWithUsername: (NSString *) username +{ + WOCookie *loginCookie; + NSString *appName; + NSCalendarDate *date; + + appName = [[context request] applicationName]; + if (username) + { + loginCookie = [WOCookie cookieWithName: @"SOGoLogin" + value: [username stringByEncodingBase64]]; + } + else + { + loginCookie = [WOCookie cookieWithName: @"SOGoLogin" + value: nil]; + date = [NSCalendarDate calendarDate]; + [date setTimeZone: [NSTimeZone timeZoneWithAbbreviation: @"GMT"]]; + [loginCookie setExpires: [date yesterday]]; + } + + [loginCookie setPath: [NSString stringWithFormat: @"/%@/", appName]]; + + return loginCookie; +} + - (WOCookie *) _casLocationCookie: (BOOL) cookieReset { WOCookie *locationCookie; @@ -155,7 +216,7 @@ SOGoPasswordPolicyError err; int expire, grace; - BOOL b; + BOOL rememberLogin, b; err = PolicyNoError; expire = grace = -1; @@ -166,6 +227,7 @@ username = [request formValueForKey: @"userName"]; password = [request formValueForKey: @"password"]; language = [request formValueForKey: @"language"]; + rememberLogin = [[request formValueForKey: @"rememberLogin"] boolValue]; domain = [request formValueForKey: @"domain"]; if ((b = [auth checkLogin: username password: password domain: &domain @@ -220,6 +282,11 @@ response = [self _responseWithLDAPPolicyError: err]; } + if (rememberLogin) + [response addCookie: [self _cookieWithUsername: username]]; + else + [response addCookie: [self _cookieWithUsername: nil]]; + return response; } diff --git a/UI/Templates/MainUI/SOGoRootPage.wox b/UI/Templates/MainUI/SOGoRootPage.wox index 70060a4ac..3f40b92de 100644 --- a/UI/Templates/MainUI/SOGoRootPage.wox +++ b/UI/Templates/MainUI/SOGoRootPage.wox @@ -38,7 +38,7 @@ + type="text" var:value="cookieUsername" /> @@ -61,6 +61,7 @@ string="item" /> +