* set the roomflax apropriate.
authorWilfried Göesgens <willi@citadel.org>
Wed, 6 Feb 2008 19:43:46 +0000 (19:43 +0000)
committerWilfried Göesgens <willi@citadel.org>
Wed, 6 Feb 2008 19:43:46 +0000 (19:43 +0000)
webcit/roomops.c

index a128ba8bf4311ecf2ad7f4ae9d464b46f5be871c..accf93e6dae453db9ac1b4aaddcd0858bdd2e89b 100644 (file)
@@ -2023,16 +2023,24 @@ void toggle_self_service(void) {
 
        get_roomflags (&RoomFlags);
 
-       /* Yank out the bits we want to change */
-       RoomFlags.flags2 = RoomFlags.flags2 &
-               !(QR2_SELFLIST|QR2_SMTP_PUBLIC|QR2_MODERATED);
-
        if (!strcasecmp(bstr("QR2_SelfList"), "yes")) 
                RoomFlags.flags2 = RoomFlags.flags2 | QR2_SELFLIST;
+       else 
+               RoomFlags.flags2 = RoomFlags.flags2 & ~QR2_SELFLIST;
+
        if (!strcasecmp(bstr("QR2_SMTP_PUBLIC"), "yes")) 
                RoomFlags.flags2 = RoomFlags.flags2 | QR2_SMTP_PUBLIC;
+       else
+               RoomFlags.flags2 = RoomFlags.flags2 & ~QR2_SMTP_PUBLIC;
+
        if (!strcasecmp(bstr("QR2_Moderated"), "yes")) 
                RoomFlags.flags2 = RoomFlags.flags2 | QR2_MODERATED;
+       else
+               RoomFlags.flags2 = RoomFlags.flags2 & ~QR2_MODERATED;
+       if (!strcasecmp(bstr("QR2_SubsOnly"), "yes")) 
+               RoomFlags.flags2 = RoomFlags.flags2 | QR2_SMTP_PUBLIC;
+       else
+               RoomFlags.flags2 = RoomFlags.flags2 & ~QR2_SMTP_PUBLIC;
 
        set_roomflags (&RoomFlags);