// COUNT IN HOW MANY GROUPS CURRENT USER ARE IN // (needed to give or refuse selfreg right) $groupMemberCount = group_count_students_in_group(claro_get_current_group_id()); $groupMemberQuotaExceeded = (bool) (!is_null(claro_get_current_group_data('maxMember')) && claro_get_current_group_data('maxMember') <= $groupMemberCount); // no limit assign to group per user; $userGroupRegCount = group_count_group_of_a_user(claro_get_current_user_id()); // The previous request compute the quantity of subscription for the current user. // the following request compare with the quota of subscription allowed to each student $userGroupQuotaExceeded = (bool) ($_groupProperties['nbGroupPerUser'] <= $userGroupRegCount && !is_null($_groupProperties['nbGroupPerUser']) && $_groupProperties['nbGroupPerUser'] != 'ALL'); // no limit assign to group per user; $is_allowedToSelfRegInGroup = (bool) ($_groupProperties['registrationAllowed'] && !$groupMemberQuotaExceeded && !$userGroupQuotaExceeded && (!claro_is_course_tutor() || claro_is_course_tutor() && get_conf('tutorCanBeSimpleMemberOfOthersGroupsAsStudent'))); $is_allowedToSelfRegInGroup = (bool) $is_allowedToSelfRegInGroup && claro_is_in_a_course() && !claro_is_group_member() && claro_is_course_member(); $is_allowedToSelfUnregInGroup = (bool) $_groupProperties['unregistrationAllowed'] && claro_is_in_a_course() && claro_is_group_member() && claro_is_course_member(); $is_allowedToDocAccess = (bool) (claro_is_course_manager() || claro_is_group_member() || claro_is_group_tutor()); $is_allowedToChatAccess = (bool) (claro_is_course_manager() || claro_is_group_member() || claro_is_group_tutor()); $isTutorRegAllowed = ($is_allowedToManage || $_groupProperties['tutorRegistrationAllowed']) && !claro_is_group_member() && !claro_is_group_tutor() && claro_is_course_tutor() && !claro_get_current_group_data('tutorId'); $isTutorUnregAllowed = ($is_allowedToManage || $_groupProperties['tutorRegistrationAllowed']) && claro_is_group_tutor(); /** * SELF-REGISTRATION PROCESS */ if (isset($_REQUEST['registration'])) { //RECHECK if subscribe is aivailable if (claro_is_course_member() && !claro_is_group_member() && $is_allowedToSelfRegInGroup) { if (isset($_REQUEST['doReg'])) { //RECHECK if subscribe is aivailable if (claro_is_course_member() && !claro_is_group_member() && $is_allowedToSelfRegInGroup) { $sql = "INSERT INTO `" . $tbl_group_rel_team_user . "`\n SET `user` = " . (int) claro_get_current_user_id() . ",\n `team` = " . (int) claro_get_current_group_id(); if (claro_sql_query($sql)) { // REFRESH THE SCRIPT TO COMPUTE NEW PERMISSIONS ON THE BASSIS OF THIS CHANGE claro_redirect($_SERVER['PHP_SELF'] . '?gidReset=1&gidReq=' . claro_get_current_group_id() . '®Done=1'); exit;
function printInit($selection = "*") { global $uidReset, $cidReset, $gidReset, $tidReset, $uidReq, $cidReq, $gidReq, $tidReq, $tlabelReq, $_user, $_course, $_groupUser, $_courseTool, $_SESSION, $_claro_local_run; if ($_claro_local_run) { echo "local init runned"; } else { echo '<font color="red"> local init never runned during this script </font>'; } echo ' <table width="100%" border="1" cellspacing="4" cellpadding="1" bordercolor="#808080" bgcolor="#C0C0C0" lang="en"> <TR>'; if ($selection == "*" or strstr($selection, "u")) { echo ' <TD valign="top" > <strong>User</strong> : (_uid) : ' . var_export(claro_get_current_user_id(), 1) . ' | (session[_uid]) : ' . var_export($_SESSION["_uid"], 1) . ' <br /> reset = ' . var_export($uidReset, 1) . ' | req = ' . var_export($uidReq, 1) . '<br /> _user : <pre>' . var_export($_user, 1) . '</pre> <br />is_platformAdmin :' . var_export(claro_is_platform_admin(), 1) . ' <br />is_allowedCreateCourse :' . var_export(claro_is_allowed_to_create_course(), 1) . ' </TD>'; } if ($selection == "*" or strstr($selection, "c")) { echo "\n <TD valign=\"top\" >\n <strong>Course</strong> : (_cid)" . var_export(claro_get_current_course_id(), 1) . "\n <br />\n reset = " . var_export($cidReset, 1) . " | req = " . var_export($cidReq, 1) . "\n <br />\n _course : <pre>" . var_export($_course, 1) . "</pre>\n <br />\n _groupProperties :\n <PRE>\n " . var_export(claro_get_current_group_properties_data(), 1) . "\n </PRE>\n </TD>"; } echo ' </TR> <TR>'; if ($selection == "*" or strstr($selection, "g")) { echo '<TD valign="top" ><strong>Group</strong> : (_gid) ' . var_export(claro_get_current_group_id(), 1) . '<br /> reset = ' . var_export($GLOBALS['gidReset'], 1) . ' | req = ' . var_export($gidReq, 1) . "<br />\n _group :<pre>" . var_export(claro_get_current_group_data(), 1) . "</pre></TD>"; } if ($selection == "*" or strstr($selection, "t")) { echo '<TD valign="top" ><strong>Tool</strong> : (_tid)' . var_export(claro_get_current_tool_id(), 1) . '<br /> reset = ' . var_export($tidReset, 1) . ' | req = ' . var_export($tidReq, 1) . '| req = ' . var_export($tlabelReq, 1) . ' <br /> _tool :' . var_export(get_init('_tool'), 1) . "</TD>"; } echo "</TR>"; if ($selection == "*" or strstr($selection, "u") && strstr($selection, "c")) { echo '<TR><TD valign="top" colspan="2"><strong>Course-User</strong>'; if (claro_is_user_authenticated()) { echo '<br /><strong>User</strong> :' . var_export(claro_is_in_a_course(), 1); } if (claro_is_in_a_course()) { echo ' in ' . var_export(claro_get_current_course_id(), 1) . '<br />'; } if (claro_is_user_authenticated() && claro_get_current_course_id()) { echo '_courseUser : <pre>' . var_export(getInit('_courseUser'), 1) . '</pre>'; } echo '<br />is_courseMember : ' . var_export(claro_is_course_member(), 1); echo '<br />is_courseAdmin : ' . var_export(claro_is_course_manager(), 1); echo '<br />is_courseAllowed : ' . var_export(claro_is_course_allowed(), 1); echo '<br />is_courseTutor : ' . var_export(claro_is_course_tutor(), 1); echo '</TD></TR>'; } echo ""; if ($selection == "*" or strstr($selection, "u") && strstr($selection, "g")) { echo '<TR><TD valign="top" colspan="2">' . '<strong>Course-Group-User</strong>'; if (claro_is_user_authenticated()) { echo '<br /><strong>User</strong> :' . var_export(claro_is_in_a_course(), 1); } if (claro_is_in_a_group()) { echo ' in ' . var_export(claro_get_current_group_id(), 1); } if (claro_is_in_a_group()) { echo '<br />_groupUser:'******'_groupUser'), 1); } echo '<br />is_groupMember:' . var_export(claro_is_group_member(), 1) . '<br />is_groupTutor: ' . var_export(claro_is_group_tutor(), 1) . '<br />is_groupAllowed:' . var_export(claro_is_group_allowed(), 1) . '</TD>' . '</tr>'; } if ($selection == "*" or strstr($selection, "c") && strstr($selection, "t")) { echo '<tr> <TD valign="top" colspan="2" ><strong>Course-Tool</strong><br />'; if (claro_get_current_tool_id()) { echo 'Tool :' . claro_get_current_tool_id(); } if (claro_is_in_a_course()) { echo ' in ' . claro_get_current_course_id() . '<br />'; } if (claro_get_current_tool_id()) { echo "_courseTool : <pre>" . var_export($_courseTool, 1) . '</pre><br />'; } echo 'is_toolAllowed : ' . var_export(claro_is_tool_allowed(), 1); echo "</TD>"; } echo "</TR></TABLE>"; }