Changing the name of the 'Aide' access level to 'Admin'
[citadel.git] / webcit / roomlist.c
index 757b68c47dfae0c47706265d9ee6fba111dcf091..5ade41ead4365c3069c5a69b2fe8577cc1ed3e6f 100644 (file)
@@ -1,5 +1,4 @@
 /*
- * $Id$
  * room listings and filters.
  */
 
@@ -8,7 +7,6 @@
 
 HashList *GetWhoKnowsHash(StrBuf *Target, WCTemplputParams *TP)
 {
-       wcsession *WCC = WC;
        StrBuf *Line;
        StrBuf *Token;
        long State;
@@ -22,7 +20,7 @@ HashList *GetWhoKnowsHash(StrBuf *Target, WCTemplputParams *TP)
        if (GetServerStatus(Line, &State) == 1) 
        {
                Whok = NewHash(1, Flathash);
-               while(!Done && StrBuf_ServGetln(Line))
+               while(!Done && (StrBuf_ServGetln(Line) >= 0) )
                        if ( (StrLength(Line)==3) && 
                             !strcmp(ChrPtr(Line), "000")) 
                        {
@@ -43,8 +41,7 @@ HashList *GetWhoKnowsHash(StrBuf *Target, WCTemplputParams *TP)
                        }
        }
        else if (State == 550)
-               StrBufAppendBufPlain(WCC->ImportantMsg,
-                                    _("Higher access is required to access this function."), -1, 0);
+               AppendImportantMessage(_("Higher access is required to access this function."), -1);
 
 
        FreeStrBuf(&Line);
@@ -109,7 +106,7 @@ HashList *GetFloorListHash(StrBuf *Target, WCTemplputParams *TP)
        StrBufTCP_read_line(Buf, &WC->serv_sock, 0, &Err); /* '100', we hope */
        if (GetServerStatus(Buf, NULL) == 1) 
        {
-               while(!Done && StrBuf_ServGetln(Buf))
+               while(!Done && StrBuf_ServGetln(Buf) >= 0)
                        if ( (StrLength(Buf)==3) && 
                             !strcmp(ChrPtr(Buf), "000")) 
                        {
@@ -167,6 +164,12 @@ HashList *GetRoomListHashLKRA(StrBuf *Target, WCTemplputParams *TP)
        return WCC->Rooms;
 }
 
+HashList *GetRoomListHashLPRM(StrBuf *Target, WCTemplputParams *TP) 
+{
+       serv_puts("LPRM");
+       return GetRoomListHash(Target, TP);
+}
+
 
 void FlushIgnetCfgs(folder *room)
 {
@@ -188,6 +191,7 @@ void FlushFolder(folder *room)
        FreeStrBuf(&room->Directory);
        FreeStrBuf(&room->RoomAide);
        FreeStrBuf(&room->XInfoText);
+       room->XHaveInfoTextLoaded = 0;
 
        FreeStrBuf(&room->name);
 
@@ -230,7 +234,7 @@ HashList *GetRoomListHash(StrBuf *Target, WCTemplputParams *TP)
        StrBuf_ServGetln(Buf);
        if (GetServerStatus(Buf, NULL) == 1) 
        {
-               while(!Done && StrBuf_ServGetln(Buf))
+               while(!Done && (StrBuf_ServGetln(Buf) >= 0))
                        if ( (StrLength(Buf)==3) && 
                             !strcmp(ChrPtr(Buf), "000")) 
                        {
@@ -341,7 +345,7 @@ HashList *GetNetConfigHash(StrBuf *Target, WCTemplputParams *TP)
                const char *Pos = NULL;
                int Done = 0;
 
-               while(!Done && StrBuf_ServGetln(Line))
+               while(!Done && (StrBuf_ServGetln(Line) >= 0))
                        if ( (StrLength(Line)==3) && 
                             !strcmp(ChrPtr(Line), "000"))
                        {
@@ -387,9 +391,10 @@ HashList *GetNetConfigHash(StrBuf *Target, WCTemplputParams *TP)
                        }
        }
        else if (State == 550)
-               StrBufAppendBufPlain(WCC->ImportantMsg,
-                                    _("Higher access is required to access this function."), -1, 0);
+               AppendImportantMessage(_("Higher access is required to access this function."), -1);
 
+       FreeStrBuf(&Line);
+       FreeStrBuf(&Token);
 
        return WCC->CurRoom.IgnetCfgs[WantThisOne];
 }
@@ -590,7 +595,7 @@ int CompareRooms(const folder *room1, const folder *room2)
 int ConditionalRoomIsRESTSubRoom(StrBuf *Target, WCTemplputParams *TP)
 {
        wcsession  *WCC = WC;
-       folder     *Folder = (folder *)CTX;
+       folder     *Folder = (folder *)CTX(CTX_ROOMS);
        HashPos    *it;
        StrBuf     * Dir;
        void       *vDir;
@@ -607,11 +612,13 @@ int ConditionalRoomIsRESTSubRoom(StrBuf *Target, WCTemplputParams *TP)
        urlp = GetCount(WCC->Directory);
        delta = Folder->nRoomNameParts - urlp + 1;
 
-       lprintf(0, "\n->%s: %ld - %ld ", ChrPtr(Folder->name), urlp, 
-               Folder->nRoomNameParts);
+       syslog(0, "\n->%s: %d - %ld ", 
+              ChrPtr(Folder->name), 
+              urlp, 
+              Folder->nRoomNameParts);
        /* list only the floors which are in relation to the dav_depth header */
        if (WCC->Hdr->HR.dav_depth != delta) {
-               lprintf(0, "1\n");
+               syslog(0, "1\n");
                return 0;
        }
 
@@ -631,7 +638,7 @@ int ConditionalRoomIsRESTSubRoom(StrBuf *Target, WCTemplputParams *TP)
                        {
                                DeleteHashPos(&it);
 
-                               lprintf(0, "3\n");
+                               syslog(0, "3\n");
                                return 0;
                        }
                        Dir = (StrBuf*) vDir;
@@ -639,7 +646,7 @@ int ConditionalRoomIsRESTSubRoom(StrBuf *Target, WCTemplputParams *TP)
                                   ChrPtr(Dir)) != 0)
                        {
                                DeleteHashPos(&it);
-                               lprintf(0, "4\n");
+                               syslog(0, "4\n");
                                return 0;
                        }
                }
@@ -653,7 +660,7 @@ int ConditionalRoomIsRESTSubRoom(StrBuf *Target, WCTemplputParams *TP)
                {
                        DeleteHashPos(&it);
                        
-                       lprintf(0, "5\n");
+                       syslog(0, "5\n");
                        return WCC->Hdr->HR.dav_depth == 1;
                }
                DeleteHashPos(&it);
@@ -680,6 +687,10 @@ InitModule_ROOMLIST
        RegisterIterator("LFLR", 0, NULL, GetFloorListHash, NULL, NULL, CTX_FLOORS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE);
        RegisterIterator("LKRA", 0, NULL, GetRoomListHashLKRA, NULL, NULL, CTX_ROOMS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE);
        RegisterIterator("LZRM", 0, NULL, GetZappedRoomListHash, NULL, DeleteHash, CTX_ROOMS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE);
+       RegisterIterator("LPRM", 0, NULL, GetRoomListHashLPRM, NULL, DeleteHash, CTX_ROOMS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE);
+
+
+
 
        RegisterConditional(HKEY("COND:ROOM:REST:ISSUBROOM"), 0, ConditionalRoomIsRESTSubRoom, CTX_ROOMS);