include_once($CFG->dirroot.'/mod/'.$mod.'/lib.php');
$functionname = $mod.'_role_assign';
if (function_exists($functionname)) {
- $functionname($userid, $context);
+ $functionname($userid, $context, $roleid);
}
}
}
)
),
+ 'mod/forum:initialsubscriptions' => array(
+
+ 'captype' => 'read',
+ 'contextlevel' => CONTEXT_MODULE,
+ 'legacy' => array(
+ 'teacher' => CAP_ALLOW,
+ 'editingteacher' => CAP_ALLOW,
+ 'student' => CAP_ALLOW
+ )
+ ),
+
'mod/forum:throttlingapplies' => array(
'riskbitmask' => RISK_SPAM,
* @param object $context
* @return bool
*/
-function forum_role_assign($userid, $context) {
- return forum_add_user_default_subscriptions($userid, $context);
+function forum_role_assign($userid, $context, $roleid) {
+ // check to see if this role comes with mod/forum:initialsubscriptions
+ $cap = role_context_capabilities($roleid, $context, 'mod/forum:initialsubscriptions');
+
+ // we are checking the role because has_capability() will pull this capability out
+ // from other roles this user might have and resolve them, which is no good
+ if ($cap['mod/forum:initialsubscriptions'] == CAP_ALLOW) {
+ return forum_add_user_default_subscriptions($userid, $context);
+ } else {
+ // MDL-8981, do not subscribe to forum
+ return true;
+ }
}
// This fragment is called by /admin/index.php
////////////////////////////////////////////////////////////////////////////////
-$module->version = 2007020201;
+$module->version = 2007020202;
$module->requires = 2007020201; // Requires this Moodle version
$module->cron = 60;