X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Froomtokens.c;h=21b8cc4a3a11d270f986643918183cff3fa733d7;hb=4840b5b6dfe82499f2274aeff0229e4aaf2ef0c1;hp=9dc1b1629588a21c864c77650ed7df9e27939abb;hpb=6821b5d306fe2fb1cce5933e6c3a2afde88774fa;p=citadel.git diff --git a/webcit/roomtokens.c b/webcit/roomtokens.c index 9dc1b1629..21b8cc4a3 100644 --- a/webcit/roomtokens.c +++ b/webcit/roomtokens.c @@ -1,7 +1,7 @@ /* * Lots of different room-related operations. * - * Copyright (c) 1996-2010 by the citadel.org team + * Copyright (c) 1996-2011 by the citadel.org team * * This program is open source software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -53,13 +53,9 @@ void tmplput_roombanner(StrBuf *Target, WCTemplputParams *TP) } StrBufPrintf(WCC->Hdr->this_page, "dotskip?room=%s", ChrPtr(WC->CurRoom.name)); - do_template("roombanner", NULL); + do_template("roombanner"); - /* roombanner contains this for mobile */ - if (WC->is_mobile) - return; - - do_template("navbar", NULL); + do_template("navbar"); wc_printf("\n"); } @@ -270,6 +266,15 @@ int ConditionalRoomIsInbox(StrBuf *Target, WCTemplputParams *TP) /****** Properties ******/ +int ConditionalRoom_MayEdit(StrBuf *Target, WCTemplputParams *TP) +{ + wcsession *WCC = WC; + + LoadRoomXA (); + + return WCC->CurRoom.XALoaded == 1; +} + int ConditionalThisRoomHas_QRFlag(StrBuf *Target, WCTemplputParams *TP) { long QR_CheckFlag; @@ -412,10 +417,14 @@ int ConditionalHaveRoomeditRights(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; - return ( (WCC!= NULL) && - ((WCC->axlevel >= 6) || - ((WCC->CurRoom.RAFlags & UA_ADMINALLOWED) != 0) || - (WCC->CurRoom.is_inbox) )); + return ( (WCC != NULL) + && (WCC->logged_in) + && ( + (WCC->axlevel >= 6) + || ((WCC->CurRoom.RAFlags & UA_ADMINALLOWED) != 0) + || (WCC->CurRoom.is_inbox) + ) + ); } @@ -566,6 +575,18 @@ void tmplput_ThisRoomX_FileString(StrBuf *Target, WCTemplputParams *TP) } +int ConditionalIsThisThatRoom(StrBuf *Target, WCTemplputParams *TP) +{ + folder *Folder = (folder *)CTX; + wcsession *WCC = WC; + + if (WCC == NULL) + return 0; + + return Folder == WCC->ThisRoom; +} + + void InitModule_ROOMTOKENS (void) @@ -601,6 +622,7 @@ InitModule_ROOMTOKENS /****** Properties ******/ RegisterNamespace("ROOM:INFO:QRFLAGS", 0, 1, tmplput_ROOM_QRFLAGS, NULL, CTX_ROOMS); RegisterConditional(HKEY("COND:THISROOM:FLAG:QR"), 0, ConditionalThisRoomHas_QRFlag, CTX_NONE); + RegisterConditional(HKEY("COND:THISROOM:EDIT"), 0, ConditionalRoom_MayEdit, CTX_NONE); RegisterConditional(HKEY("COND:ROOM:FLAG:QR"), 0, ConditionalRoomHas_QRFlag, CTX_ROOMS); RegisterConditional(HKEY("COND:THISROOM:FLAG:QR2"), 0, ConditionalThisRoomHas_QRFlag2, CTX_NONE); @@ -635,4 +657,5 @@ InitModule_ROOMTOKENS RegisterNamespace("THISROOM:DIRECTORY", 0, 1, tmplput_ThisRoomDirectory, NULL, CTX_NONE); RegisterNamespace("ROOM:INFO:ACL", 0, 1, tmplput_ROOM_ACL, NULL, CTX_ROOMS); + RegisterConditional(HKEY("COND:THIS:THAT:ROOM"), 0, ConditionalIsThisThatRoom, CTX_ROOMS); }