* Started some "me as organizer" stuff. (BROKEN BUILD ... I'll fix soon.)
authorArt Cancro <ajc@citadel.org>
Fri, 29 Nov 2002 16:38:37 +0000 (16:38 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 29 Nov 2002 16:38:37 +0000 (16:38 +0000)
webcit/ChangeLog
webcit/auth.c
webcit/calendar.c
webcit/event.c
webcit/webcit.h

index 29efded2b546276145f4e008717708e460e9906f..dc70f01c899ffcf7587169891419cb382f4da230 100644 (file)
@@ -1,4 +1,7 @@
 $Log$
+Revision 400.57  2002/11/29 16:38:37  ajc
+* Started some "me as organizer" stuff.  (BROKEN BUILD ... I'll fix soon.)
+
 Revision 400.56  2002/11/28 06:03:24  ajc
 * Issue an ISME command when editing an event, to determine whether the user
   viewing the event is the organizer.  (Will use this later to allow/disallow
@@ -1142,3 +1145,4 @@ Sun Dec  6 19:50:55 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
 
 1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
        * webserver.c: warning fix
+
index 5633b238bfbd71b1e4f432d654a43fbded9210cf..93751637477e8bf9d19663958675c4c62a882473 100644 (file)
@@ -131,6 +131,7 @@ void do_login(void)
                        WC->new_mail = extract_int(&buf[4], 0);
                        need_regi = extract_int(&buf[4], 1);
                        WC->need_vali = extract_int(&buf[4], 2);
+                       extract(WC->cs_inet_email, &buf[4], 3);
                }
                if (need_regi) {
                        display_reg(1);
index 2f903ec340bc89879b91228df0e347f76e9010ab..7c436ccad6c336c3280216838134343f2bfa6b9c 100644 (file)
@@ -496,6 +496,7 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum) {
                while (prop = icalcomponent_get_first_property(vtodo,
                      ICAL_SUMMARY_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vtodo, prop);
+                       icalproperty_free(prop);
                }
                icalcomponent_add_property(vtodo,
                        icalproperty_new_summary(bstr("summary")));
@@ -503,6 +504,7 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum) {
                while (prop = icalcomponent_get_first_property(vtodo,
                      ICAL_DESCRIPTION_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vtodo, prop);
+                       icalproperty_free(prop);
                }
                icalcomponent_add_property(vtodo,
                        icalproperty_new_description(bstr("description")));
@@ -510,6 +512,7 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum) {
                while (prop = icalcomponent_get_first_property(vtodo,
                      ICAL_DTSTART_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vtodo, prop);
+                       icalproperty_free(prop);
                }
                icalcomponent_add_property(vtodo,
                        icalproperty_new_dtstart(
@@ -520,6 +523,7 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum) {
                while (prop = icalcomponent_get_first_property(vtodo,
                      ICAL_DUE_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vtodo, prop);
+                       icalproperty_free(prop);
                }
                icalcomponent_add_property(vtodo,
                        icalproperty_new_due(
index 1c366ef3c6fb55017946c0b965a347838c2df191..9959412c0cf18671af30b32f70d36ae78b442966 100644 (file)
@@ -30,7 +30,6 @@
 
 #ifdef HAVE_ICAL_H
 
-
 /*
  * Display an event by itself (for editing)
  */
@@ -40,6 +39,7 @@ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum)
        struct icaltimetype t_start, t_end;
        time_t now;
        int created_new_vevent = 0;
+       icalorganizertype me_as_organizer;
        icalproperty *organizer = NULL;
        char organizer_string[SIZ];
        icalproperty *attendee = NULL;
@@ -209,6 +209,17 @@ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum)
        }
        wprintf("</TEXTAREA></TD></TR>");
 
+       /* For a new event, the user creating the event should be the
+        * organizer.  Set this field accordingly.
+        */
+       if (icalcomponent_get_first_property(vevent, ICAL_ORGANIZER_PROPERTY)
+          == NULL) {
+               sprintf(organizer_string, "MAILTO:%s", WC->cs_inet_email);
+               memset(&me_as_organizer, 0, sizeof(icalorganizertype));
+               me_as_organizer.value = strdup(organizer_string);
+               icalcomponent_set_organizer(vevent, me_as_organizer);
+       }
+
        /* Determine who is the organizer of this event.  This is useless
         * for now, but we'll need to determine "me" or "not me" soon.
         */
@@ -326,6 +337,7 @@ void save_individual_event(icalcomponent *supplied_vevent, long msgnum) {
                while (prop = icalcomponent_get_first_property(vevent,
                      ICAL_SUMMARY_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vevent, prop);
+                       icalproperty_free(prop);
                }
                icalcomponent_add_property(vevent,
                        icalproperty_new_summary(bstr("summary")));
@@ -333,6 +345,7 @@ void save_individual_event(icalcomponent *supplied_vevent, long msgnum) {
                while (prop = icalcomponent_get_first_property(vevent,
                      ICAL_LOCATION_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vevent, prop);
+                       icalproperty_free(prop);
                }
                icalcomponent_add_property(vevent,
                        icalproperty_new_location(bstr("location")));
@@ -340,6 +353,7 @@ void save_individual_event(icalcomponent *supplied_vevent, long msgnum) {
                while (prop = icalcomponent_get_first_property(vevent,
                      ICAL_DESCRIPTION_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vevent, prop);
+                       icalproperty_free(prop);
                }
                icalcomponent_add_property(vevent,
                        icalproperty_new_description(bstr("description")));
@@ -347,6 +361,7 @@ void save_individual_event(icalcomponent *supplied_vevent, long msgnum) {
                while (prop = icalcomponent_get_first_property(vevent,
                      ICAL_DTSTART_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vevent, prop);
+                       icalproperty_free(prop);
                }
 
                if (!strcmp(bstr("alldayevent"), "yes")) {
@@ -388,10 +403,12 @@ void save_individual_event(icalcomponent *supplied_vevent, long msgnum) {
                while (prop = icalcomponent_get_first_property(vevent,
                      ICAL_DTEND_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vevent, prop);
+                       icalproperty_free(prop);
                }
                while (prop = icalcomponent_get_first_property(vevent,
                      ICAL_DURATION_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vevent, prop);
+                       icalproperty_free(prop);
                }
 
                if (all_day_event == 0) {
index 294762e38ffd6e6fd9d2f57892f7673aa9a3d015..e2c6ff1b9a53bf1193be87fc9fc7be6d850057b3 100644 (file)
@@ -160,6 +160,7 @@ struct wcsession {
        int new_mail;
        int remember_new_mail;
        int need_vali;
+       char cs_inet_email[SIZ];        /* User's preferred Internet addr. */
         pthread_mutex_t SessionMutex;  /* mutex for exclusive access */
         time_t lastreq;                        /* Timestamp of most recent HTTP */
        int killthis;                   /* Nonzero == purge this session */