Index: openacs-4/packages/chat/www/chat.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/chat/www/chat.tcl,v diff -u -r1.20.2.7 -r1.20.2.8 --- openacs-4/packages/chat/www/chat.tcl 8 Mar 2023 15:51:39 -0000 1.20.2.7 +++ openacs-4/packages/chat/www/chat.tcl 29 Mar 2023 15:15:14 -0000 1.20.2.8 @@ -10,41 +10,26 @@ room_id:object_type(chat_room) } -properties { context:onevalue - user_id:onevalue - user_name:onevalue - message:onevalue room_id:onevalue - room_name:onevalue - width:onevalue - height:onevalue - host:onevalue - port:onevalue moderator_p:onevalue - msgs:multirow } set r [::xo::db::Class get_instance_from_db -id $room_id] -set room_name [$r set pretty_name] -set doc(title) $room_name -set doc(type) {} +set doc(title) [$r set pretty_name] set context [list $doc(title)] -set user_id [ad_conn user_id] set read_p [permission::permission_p -object_id $room_id -privilege "chat_read"] set write_p [permission::permission_p -object_id $room_id -privilege "chat_write"] set ban_p [permission::permission_p -object_id $room_id -privilege "chat_ban"] -set moderate_room_p [$r set moderated_p] -if { $moderate_room_p == "t" } { - set moderator_p [permission::permission_p -object_id $room_id -privilege "chat_moderator"] -} else { - # This is an unmoderated room, therefore, everyone is a moderator. - set moderator_p "1" -} - -if { ($read_p == 0 && $write_p == 0) || ($ban_p == 1) } { - # Display unauthorize privilege page. +if { (!$read_p && !$write_p) || $ban_p || ![$r set active_p] } { + # + # You won't be able to chat if: + # - you cannot read nor write in the room + # - you were banned + # - the chat is not active + # ad_returnredirect unauthorized ad_script_abort }