]> git.mjollnir.org Git - moodle.git/commitdiff
"MDL-14949, add a new capablity chat:talk to enable readonly chat user, merged from...
authordongsheng <dongsheng>
Tue, 16 Dec 2008 04:58:40 +0000 (04:58 +0000)
committerdongsheng <dongsheng>
Tue, 16 Dec 2008 04:58:40 +0000 (04:58 +0000)
lang/en_utf8/chat.php
mod/chat/db/access.php
mod/chat/gui_header_js/chatinput.php
mod/chat/gui_header_js/index.php
mod/chat/version.php

index a32a3d377b3a93aa364eb1fcc15e8f8de8155967..31931a5f1fe6d40921b3c83d6410c54d1cea5166 100644 (file)
@@ -6,11 +6,12 @@ $string['autoscroll'] = 'Auto Scroll';
 $string['beep'] = 'beep';
 $string['cantlogin'] = 'Could not log in to chat room!!';
 $string['cantinsert'] = 'Could not insert a chat message!';
-$string['chat:chat'] = 'Talk in a chat';
+$string['chat:chat'] = 'Access a chat room';
 $string['chat:deletelog'] = 'Delete chat logs';
 $string['chat:exportsession'] = 'Export chat session';
 $string['chat:exportparticipatedsession'] = 'Export participated-in chat session';
 $string['chat:readlog'] = 'Read chat logs';
+$string['chat:talk'] = 'Talk in a chat';
 $string['chatintro'] = 'Introduction text';
 $string['chatname'] = 'Name of this chat room';
 $string['chatreport'] = 'Chat sessions';
index f34243f41ec9c8cc1b14f3873aeec1edfc6d0434..bfe71e4d94ab71b2233040b5dafda4b007ed0eca 100644 (file)
@@ -47,6 +47,20 @@ $mod_chat_capabilities = array(
         )
     ),
 
+    'mod/chat:talk' => array(
+
+        'riskbitmask' => RISK_SPAM,
+
+        'captype' => 'write',
+        'contextlevel' => CONTEXT_MODULE,
+        'legacy' => array(
+            'student' => CAP_ALLOW,
+            'teacher' => CAP_ALLOW,
+            'editingteacher' => CAP_ALLOW,
+            'admin' => CAP_ALLOW
+        )
+    ),
+
     'mod/chat:readlog' => array(
 
         'captype' => 'read',
index 42312caeba095008d52b3e4d2fc2f293ed4ea12f..6d1232c51631255987e4c681512c1a96a5ecc035 100644 (file)
@@ -6,10 +6,25 @@
     require('../lib.php');
 
     $chat_sid = required_param('chat_sid', PARAM_ALPHANUM);
+    $chatid   = required_param('chat_id', PARAM_INT);
 
     if (!$chatuser = $DB->get_record('chat_users', array('sid'=>$chat_sid))) {
         print_error('notlogged', 'chat');
     }
+    if (!$chat = get_record('chat', 'id', $chatid)) {
+        error('Could not find that chat room!');
+    }
+
+    if (!$course = get_record('course', 'id', $chat->course)) {
+        error('Could not find the course this belongs to!');
+    }
+
+    if (!$cm = get_coursemodule_from_instance('chat', $chat->id, $course->id)) {
+        error('Course Module ID was incorrect');
+    }
+    
+    $context = get_context_instance(CONTEXT_MODULE, $cm->id);
+    
 
     //Get the user theme
     $USER = $DB->get_record('user', array('id'=>$chatuser->userid));
@@ -48,6 +63,7 @@
     $meta = ob_get_clean();
     print_header('', '', '', 'input_chat_message', $meta, false);
 
+    if(has_capability('mod/chat:chatlog',$context)){
 ?>
     <form action="../empty.php" method="post" target="empty" id="inputForm"
           onsubmit="return empty_field_and_submit()" style="margin:0">
@@ -55,6 +71,9 @@
         <?php helpbutton('chatting', get_string('helpchatting', 'chat'), 'chat', true, false); ?><br />
         <input type="checkbox" id="auto" size="50" value="" checked='true' /><label for="auto"><?php echo get_string('autoscroll', 'chat');?></label>
     </form>
+<?php
+    }
+?>
 
     <form action="insert.php" method="post" target="empty" id="sendForm">
         <input type="hidden" name="chat_sid" value="<?php echo $chat_sid ?>" />
index a468e6c567d3ce022649a43694d43c7f3ddb3d5b..aba89dfbaa4d14a21cf86c5066ea4b0db331fb03 100644 (file)
@@ -50,7 +50,7 @@
         print_error('cantlogin', 'chat');
     }
 
-    $params = "chat_sid=$chat_sid";
+    $params = "chat_id=$id&chat_sid={$chat_sid}";
 
     // fallback to the old jsupdate, but allow other update modes
     $updatemode = 'jsupdate';
index 8873b80f91803e3070af589f18e418488f851791..70e959a59eca6fcf4dd5865c589cbc0dc3a4d7ee 100644 (file)
@@ -5,7 +5,7 @@
 ///  This fragment is called by moodle_needs_upgrading() and /admin/index.php
 /////////////////////////////////////////////////////////////////////////////////
 
-$module->version  = 2008081400;   // The (date) version of this module
+$module->version  = 2008081401;   // The (date) version of this module
 $module->requires = 2007101509;  // Requires this Moodle version
 $module->cron     = 300;          // How often should cron check this module (seconds)?