From 677f5f641e6c37244ee67459b6fa2c7e5aea119b Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Jan 2014 16:02:02 -0800 Subject: more testing of chatroom interfaces, also corrected a function call that should have been a class instantiation in reddav --- include/chat.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/chat.php') diff --git a/include/chat.php b/include/chat.php index 6bcb003ff..f682fe6fe 100644 --- a/include/chat.php +++ b/include/chat.php @@ -88,8 +88,8 @@ function chatroom_enter($observer_xchan,$room_id,$status,$client) { require_once('include/security.php'); $sql_extra = permissions_sql($r[0]['cr_uid']); - $x = q("select * from chatroom where cr_id = %d and uid = %d $sql_extra limit 1", - intval($room_id) + $x = q("select * from chatroom where cr_id = %d and cr_uid = %d $sql_extra limit 1", + intval($room_id), intval($r[0]['cr_uid']) ); if(! $x) { -- cgit v1.2.3 From b8fb6a437335ce16e658f8acda632916bb28e574 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Jan 2014 17:09:20 -0800 Subject: more chat infrastructure --- include/chat.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'include/chat.php') diff --git a/include/chat.php b/include/chat.php index f682fe6fe..a8c3db429 100644 --- a/include/chat.php +++ b/include/chat.php @@ -83,8 +83,10 @@ function chatroom_enter($observer_xchan,$room_id,$status,$client) { $r = q("select * from chatroom where cr_id = %d limit 1", intval($room_id) ); - if(! $r) - return; + if(! $r) { + notice( t('Room not found.') . EOL); + return false; + } require_once('include/security.php'); $sql_extra = permissions_sql($r[0]['cr_uid']); @@ -94,7 +96,7 @@ function chatroom_enter($observer_xchan,$room_id,$status,$client) { ); if(! $x) { notice( t('Permission denied.') . EOL); - return; + return false; } $r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1", @@ -122,12 +124,13 @@ function chatroom_enter($observer_xchan,$room_id,$status,$client) { } -function chatroom_leave($observer_xchan,$room_id,$status) { +function chatroom_leave($observer_xchan,$room_id,$client) { if(! $room_id || ! $observer_xchan) return; - $r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1", + $r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d and cp_client = '%s' limit 1", dbesc($observer_xchan), - intval($room_id) + intval($room_id), + dbesc($client) ); if($r) { q("delete from chatpresence where cp_id = %d limit 1", -- cgit v1.2.3 From 838ebbcb62aaaca8f19e338fe89c484f9d4ececd Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Jan 2014 18:29:03 -0800 Subject: apply service class limits (at the account level) to chatroom creation as chat has the potential to adversely affect system performance. In the future we may also want to service_class restrict the number of participants in a room. --- include/chat.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'include/chat.php') diff --git a/include/chat.php b/include/chat.php index a8c3db429..aef154fe6 100644 --- a/include/chat.php +++ b/include/chat.php @@ -20,6 +20,18 @@ function chatroom_create($channel,$arr) { return $ret; } + $r = q("select count(cr_id) as total from chatroom where cr_aid = %d", + intval($channel['channel_account_id']) + ); + if($r) + $limit = service_class_fetch($channel_id,'chatrooms'); + + if(($r) && ($limit !== false) && ($r[0]['total'] >= $limit)) { + $ret['message'] = upgrade_message(); + return $ret; + } + + $created = datetime_convert(); $x = q("insert into chatroom ( cr_aid, cr_uid, cr_name, cr_created, cr_edited, allow_cid, allow_gid, deny_cid, deny_gid ) -- cgit v1.2.3 From 6c6a9b963a925d33b2cc436d877a4edc5f0d59b1 Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 30 Jan 2014 01:00:46 -0800 Subject: a bit more ajax work on chat and chatsvc and some fiddling with layouts --- include/chat.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/chat.php') diff --git a/include/chat.php b/include/chat.php index aef154fe6..b88c63fc3 100644 --- a/include/chat.php +++ b/include/chat.php @@ -155,7 +155,7 @@ function chatroom_leave($observer_xchan,$room_id,$client) { function chatroom_list($uid) { - $r = q("select cr_name, cr_id, count(cp_id) as cr_inroom from chatroom left join chatpresence on cr_id = cp_room where cr_uid = %d group by cp_id order by cr_name", + $r = q("select cr_name, cr_id, count(cp_id) as cr_inroom from chatroom left join chatpresence on cr_id = cp_room where cr_uid = %d group by cr_name order by cr_name", intval($uid) ); -- cgit v1.2.3