X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Froomlist.c;h=3dad18a29dfc54d3f04fc687d9b62a654633769f;hb=5d38a76f8f06640e3a3f097d584ac52336110f7c;hp=d52351a23409d6f35cc598784ef0a0596ae3eb9a;hpb=a15ba5c1ede7c86a85d62ed5b539dcfc9f415bc1;p=citadel.git diff --git a/webcit/roomlist.c b/webcit/roomlist.c index d52351a23..3dad18a29 100644 --- a/webcit/roomlist.c +++ b/webcit/roomlist.c @@ -5,9 +5,9 @@ #include "webcit.h" #include "webserver.h" + HashList *GetWhoKnowsHash(StrBuf *Target, WCTemplputParams *TP) { - wcsession *WCC = WC; StrBuf *Line; StrBuf *Token; long State; @@ -42,8 +42,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); @@ -166,6 +165,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) { @@ -387,9 +392,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 +596,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; @@ -675,6 +681,9 @@ void InitModule_ROOMLIST (void) { + /* we duplicate this, just to be shure its already done. */ + RegisterCTX(CTX_ROOMS); + RegisterCTX(CTX_FLOORS); RegisterIterator("ITERATE:THISROOM:WHO_KNOWS", 0, NULL, GetWhoKnowsHash, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); RegisterIterator("ITERATE:THISROOM:GNET", 1, NULL, GetNetConfigHash, NULL, NULL, CTX_STRBUFARR, CTX_NONE, IT_NOFLAG); @@ -682,6 +691,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);