propagate from branch 'ca.inverse.sogo.1_3_17' (head a4ef73c2ad79c8da8d8e0c93767ab06e14bc846b)
to branch 'ca.inverse.sogo' (head 25245057b6fcee6d3af9a15a930deba187d79422) Monotone-Parent: 25245057b6fcee6d3af9a15a930deba187d79422 Monotone-Parent: a4ef73c2ad79c8da8d8e0c93767ab06e14bc846b Monotone-Revision: 7634b9d503d61b6240548e75e7f872081debc6b4 Monotone-Author: jraby@inverse.ca Monotone-Date: 2012-06-27T16:06:45 Monotone-Branch: ca.inverse.sogomaint-2.0.2
commit
e587ae08cf
|
@ -1,3 +1,9 @@
|
|||
2012-06-27 Jean Raby <jraby@inverse.ca>
|
||||
|
||||
* SoObjects/Appointments/SOGoAppointmentObject.m
|
||||
(PUTAction:): detect conflicting event UID and
|
||||
deny the request accordingly.
|
||||
|
||||
2012-06-21 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
* Added the SOGoSearchMinimumWordLength domain
|
||||
|
|
12
NEWS
12
NEWS
|
@ -1,3 +1,14 @@
|
|||
1.3.17 (2012-MM-DD)
|
||||
-------------------
|
||||
New Features
|
||||
-
|
||||
|
||||
Enhancements
|
||||
- updated Czech translation
|
||||
|
||||
Bug Fixes
|
||||
-
|
||||
|
||||
1.3.16 (2012-06-07)
|
||||
-------------------
|
||||
Enhancements
|
||||
|
@ -8,6 +19,7 @@ Enhancements
|
|||
- it's no longer possible to click the "Upload" button multiple times
|
||||
- allow delivery of mail with no subject, but alert the user
|
||||
- updated Dutch, German, French translations
|
||||
|
||||
Bug Fixes
|
||||
- fixed compilation under GNU/kFreeBSD
|
||||
- fixed compilation for arm architecture
|
||||
|
|
|
@ -67,4 +67,4 @@ vtodo_class2 = "(Skrytý úkol)";
|
|||
= "%{Attendee} %{SentByText}dosud o Vaší pozvánce k události nerozhodl/a.";
|
||||
|
||||
/* Resources */
|
||||
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\"." = "Maximální počet současných rezervací (%{NumberOfSimultaneousBookings}) byl dosažen pro zdroj \"%{Cn} %{SystemEmail}\".";
|
||||
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Byl dosažen maximální počet současných rezervací\n(%{NumberOfSimultaneousBookings}) pro zdroj \"%{Cn} %{SystemEmail}\". Konfliktní událost je \"%{EventTitle}\" a začíná %{StartDate}.";
|
|
@ -1756,16 +1756,26 @@ inRecurrenceExceptionsForEvent: (iCalEvent *) theEvent
|
|||
{
|
||||
iCalCalendar *calendar;
|
||||
SOGoUser *ownerUser;
|
||||
iCalEvent *event;
|
||||
iCalEvent *event, *conflictingEvent;
|
||||
|
||||
NSString *eventUID;
|
||||
BOOL scheduling;
|
||||
|
||||
calendar = [iCalCalendar parseSingleFromSource: [rq contentAsString]];
|
||||
|
||||
event = [[calendar events] objectAtIndex: 0];
|
||||
eventUID = [event uid];
|
||||
ownerUser = [SOGoUser userWithLogin: owner];
|
||||
scheduling = [self _shouldScheduleEvent: [event organizer]];
|
||||
|
||||
// make sure eventUID doesn't conflict with an existing event - see bug #1853
|
||||
// TODO: send out a no-uid-conflict (DAV:href) xml element (rfc4791 section 5.3.2.1)
|
||||
if (conflictingEvent = [container resourceNameForEventUID: eventUID])
|
||||
{
|
||||
NSString *reason = [NSString stringWithFormat: @"Event UID already in use. (%s)", eventUID];
|
||||
return [NSException exceptionWithHTTPStatus:403 reason: reason];
|
||||
}
|
||||
|
||||
//
|
||||
// New event and we're the organizer -- send invitation to all attendees
|
||||
//
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
# attendee1_delegate_username and superuser.
|
||||
# when writing new tests, avoid using superuser when not absolutely needed
|
||||
|
||||
# TODO
|
||||
# - Individual tests should set the ACLs themselves on Resources tests
|
||||
|
||||
from config import hostname, port, username, password, \
|
||||
superuser, superuser_password, \
|
||||
attendee1, attendee1_username, \
|
||||
|
@ -791,6 +794,31 @@ class CalDAVSchedulingTest(unittest.TestCase):
|
|||
for attendee in org_ev.vevent.attendee_list:
|
||||
self.assertNotEqual(self.user_email, attendee.value)
|
||||
|
||||
def testEventsWithSameUID(self):
|
||||
""" PUT 2 events with the same UID - bug #1853 """
|
||||
|
||||
ics_name = "test-same-uid.ics"
|
||||
self.ics_list += [ics_name]
|
||||
|
||||
self._deleteEvent(self.client,
|
||||
"%s%s" % (self.user_calendar, ics_name), None)
|
||||
|
||||
conflict_ics_name = "test-same-uid-conflict.ics"
|
||||
self.ics_list += [ics_name]
|
||||
|
||||
self._deleteEvent(self.client,
|
||||
"%s%s" % (self.user_calendar, conflict_ics_name), None)
|
||||
|
||||
# 1. create simple event
|
||||
summary="same uid"
|
||||
uid=summary
|
||||
event = self._newEvent(summary, uid)
|
||||
|
||||
self._putEvent(self.client, "%s%s" % (self.user_calendar, ics_name), event)
|
||||
|
||||
# PUT the same event with a new filename - should trigger a 403
|
||||
self._putEvent(self.client, "%s%s" % (self.user_calendar, conflict_ics_name), event, exp_status=403)
|
||||
|
||||
def testInvitationDelegation(self):
|
||||
""" invitation delegation """
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
"Reply" = "Odpovědět";
|
||||
"Reply All" = "Odp. všem";
|
||||
"Print" = "Tisk";
|
||||
"Stop" = "Stop";
|
||||
"Stop" = "Zastavit";
|
||||
"Write" = "Napsat";
|
||||
|
||||
"Send" = "Odeslat";
|
||||
|
@ -19,6 +19,7 @@
|
|||
"Attach" = "Přiložit";
|
||||
"Save" = "Uložit";
|
||||
"Options" = "Možnosti";
|
||||
"Close" = "Zavřít";
|
||||
"Size" = "Velikost";
|
||||
|
||||
/* Tooltips */
|
||||
|
@ -63,8 +64,10 @@
|
|||
"Shared Account: " = "Sdílený účet: ";
|
||||
|
||||
/* acls */
|
||||
"Default Roles" = "Výchozí oprávnění";
|
||||
"User rights for:" = "Uživatelská práva pro:";
|
||||
"Access rights to" = "Přístupová práva k";
|
||||
"For user" = "Pro uživatele";
|
||||
|
||||
"Any Authenticated User" = "Všichni ověření uživatelé";
|
||||
|
||||
"List and see this folder" = "Prohlížet tuto složku";
|
||||
"Read mails from this folder" = "Číst maily v této složce";
|
||||
|
@ -104,15 +107,13 @@
|
|||
"cc" = "Kopie";
|
||||
"bcc" = "Skrytá kopie";
|
||||
|
||||
"Addressbook" = "Adresář";
|
||||
|
||||
"Edit Draft..." = "Upravit koncept...";
|
||||
"Load Images" = "Nahrát obrázky";
|
||||
|
||||
"Return Receipt" = "Return Receipt";
|
||||
"The sender of this message has asked to be notified when you read this message. Do you with to notify the sender?" = "The sender of this message has asked to be notified when you read this message. Do you with to notify the sender?";
|
||||
"Return Receipt (displayed) - %@"= "Return Receipt (displayed) - %@";
|
||||
"This is a Return Receipt for the mail that you sent to %@.\n\nNote: This Return Receipt only acknowledges that the message was displayed on the recipient's computer. There is no guarantee that the recipient has read or understood the message contents." = "This is a Return Receipt for the mail that you sent to %@.\n\nNote: This Return Receipt only acknowledges that the message was displayed on the recipient's computer. There is no guarantee that the recipient has read or understood the message contents.";
|
||||
"Return Receipt" = "Potvrzení o přečtení";
|
||||
"The sender of this message has asked to be notified when you read this message. Do you with to notify the sender?" = "Odesílatel této zprávy si přeje být informován o tom, že jste si tuto zprávu přečetli. Chcete odesílateli poslat potvrzení?";
|
||||
"Return Receipt (displayed) - %@"= "Potvrzení o přečtení (zobrazeno) - %@";
|
||||
"This is a Return Receipt for the mail that you sent to %@.\n\nNote: This Return Receipt only acknowledges that the message was displayed on the recipient's computer. There is no guarantee that the recipient has read or understood the message contents." = "Toto je potvrzení o přečtení ke zprávě, kterou jste poslali pro %@.\n\nPoznámka: Potvrzení o přijetí znamená pouze to, že se zpráva zobrazila na počítači adresáta. Není ale zaručeno, že adresát zprávu četl a porozuměl jejímu obsahu.";
|
||||
|
||||
"Priority" = "Priorita";
|
||||
"highest" = "Nejvyšší";
|
||||
|
@ -123,6 +124,9 @@
|
|||
|
||||
"This mail is being sent from an unsecure network!" = "Tento mail je odesílán z nezabezpečené sítě!";
|
||||
|
||||
"Address Book:" = "Adresář:";
|
||||
"Search For:" = "Hledat:";
|
||||
|
||||
/* Popup "show" */
|
||||
|
||||
"all" = "všechny";
|
||||
|
@ -141,8 +145,7 @@
|
|||
"Date" = "Datum";
|
||||
"View" = "Zobrazit";
|
||||
"All" = "Všechny";
|
||||
"Unread" = "Nepřečtené";
|
||||
"No message" = "No message";
|
||||
"No message" = "Žádná zpráva";
|
||||
"messages" = "zprávy";
|
||||
|
||||
"first" = "Nejnovější";
|
||||
|
@ -196,8 +199,8 @@
|
|||
"Delete Folder" = "Smazat složku";
|
||||
"Use This Folder For" = "Použít tuto složku pro";
|
||||
"Get Messages for Account" = "Stáhnout zprávy pro účet";
|
||||
"Properties..." = "Properties...";
|
||||
"Delegation..." = "Delegation...";
|
||||
"Properties..." = "Vlastnosti...";
|
||||
"Delegation..." = "Delegování...";
|
||||
|
||||
/* Use This Folder menu */
|
||||
"Sent Messages" = "Odeslané zprávy";
|
||||
|
@ -208,7 +211,6 @@
|
|||
"Open Message In New Window" = "Otevřít zprávu v novém okně";
|
||||
"Reply to Sender Only" = "Odpovědět pouze odesílateli";
|
||||
"Reply to All" = "Odpovědět všem";
|
||||
"Forward" = "Přeposlat";
|
||||
"Edit As New..." = "Upravit jako novou...";
|
||||
"Move To" = "Přesunout do";
|
||||
"Copy To" = "Kopírovat do";
|
||||
|
@ -255,11 +257,11 @@
|
|||
"Please select a message." = "Vyberte zprávu prosím.";
|
||||
"Please select a message to print." = "Zvolte prosím zprávu, kterou chcete tisknout.";
|
||||
"Please select only one message to print." = "Zvolte pouze jednu zprávu, kterou chcete tisknout.";
|
||||
"The message you have selected doesn't exist anymore." = "The message you have selected doesn't exist anymore.";
|
||||
"The message you have selected doesn't exist anymore." = "Zpráva, kterou jste zvolili, již neexistuje.";
|
||||
|
||||
|
||||
"The folder with name \"%{0}\" could not be created."
|
||||
= "Složka s názvem \"%{0}\" nemohla být vytvořen.";
|
||||
= "Složka s názvem \"%{0}\" nemohla být vytvořena.";
|
||||
"This folder could not be renamed to \"%{0}\"."
|
||||
= "Tato složka nemohla být přejmenována na \"%{0}\".";
|
||||
"The folder could not be deleted."
|
||||
|
@ -272,20 +274,20 @@
|
|||
"You need to choose a non-virtual folder!" = "Musíte zvolit ne-virtuální složku!";
|
||||
|
||||
"Moving a message into its own folder is impossible!"
|
||||
= "Je nemožné přesunout zprávu do své vlastní složky!";
|
||||
= "Zprávu nelze přesunout do své vlastní složky!";
|
||||
"Copying a message into its own folder is impossible!"
|
||||
= "Je nemožné zkopírovat zprávu do své vlastní složky!";
|
||||
= "Zprávu nelze zkopírovat do své vlastní složky!";
|
||||
|
||||
/* Message operations */
|
||||
"The messages could not be moved to the trash folder. Would you like to delete them immediately?"
|
||||
= "The messages could not be moved to the trash folder. Would you like to delete them immediately?";
|
||||
= "Zprávy nemohou být přesunuty do koše. Chcete je smazat trvale?";
|
||||
|
||||
/* Message editing */
|
||||
"error_validationfailed" = "Potvrzení selhalo";
|
||||
"error_missingsubject" = "Chybí předmět";
|
||||
"error_missingrecipients" = "Příjemci nebyli specifikováni";
|
||||
"Send Anyway" = "Odeslat";
|
||||
|
||||
/* Message sending */
|
||||
"cannot send message: (smtp) all recipients discarded" = "Cannot send message: all recipients are invalid.";
|
||||
"cannot send message (smtp) - recipients discarded:" = "Cannot send message. The following addresses are invalid:";
|
||||
"cannot send message: (smtp) error when connecting" = "Cannot send message: error when connecting to the SMTP server.";
|
||||
"cannot send message: (smtp) all recipients discarded" = "Zprávu nelze odeslat: adresy všech příjemců jsou neplatné.";
|
||||
"cannot send message (smtp) - recipients discarded:" = "Zprávu nelze odeslat: následující adresy jsou neplatné:";
|
||||
"cannot send message: (smtp) error when connecting" = "Zprávu nelze odeslat: při spojení se SMTP serverem došlo k chybě.";
|
||||
|
|
Loading…
Reference in New Issue