Index: enrol/manual/unenroluser.php =================================================================== RCS file: /cvsroot/moodle/moodle/enrol/manual/Attic/unenroluser.php,v retrieving revision 1.1 diff -u -r1.1 unenroluser.php --- enrol/manual/unenroluser.php 27 Apr 2011 10:16:53 -0000 1.1 +++ enrol/manual/unenroluser.php 25 Mar 2012 15:54:30 -0000 @@ -75,13 +75,33 @@ print_error('erroreditenrolment', 'enrol'); } + +//$sql = "SELECT rc.permission FROM {role_capabilities} rc WHERE rc. " +$haspermission=1; +if($USER->id==$user->id){ + $haspermission=0; + $sql= "SELECT ra.* FROM {role_assignments} ra, {context} c WHERE ra.contextid=c.id AND c.instanceid=".$course->id." AND ra.userid=".$USER->id; + $res = $DB->get_records_sql($sql); + + foreach($res as $ra){ + $params = array('capability' => 'enrol/authorize:unenrolself'); + $sql="SELECT rc.* FROM {role_capabilities} rc WHERE rc.roleid=".$ra->roleid." AND rc.capability=:capability"; + $rolecapability=$DB->get_record_sql($sql,$params); + if($rolecapability->permission==1){ + $haspermission=1; + break; + } + } +} + // If the unenrolment has been confirmed and the sesskey is valid unenrol the user. -if ($confirm && confirm_sesskey() && $manager->unenrol_user($ue)) { - redirect($returnurl); +if($haspermission){ + if ($confirm && confirm_sesskey() && $manager->unenrol_user($ue)) { + redirect($returnurl); + } } $yesurl = new moodle_url($PAGE->url, array('confirm'=>1, 'sesskey'=>sesskey())); -$message = get_string('unenroluser', 'enrol_manual', array('user'=>fullname($user, true), 'course'=>format_string($course->fullname))); $fullname = fullname($user); $title = get_string('unenrol', 'enrol_manual'); @@ -92,5 +112,11 @@ echo $OUTPUT->header(); echo $OUTPUT->heading($fullname); -echo $OUTPUT->confirm($message, $yesurl, $returnurl); +if($haspermission||$confirm==0){ + $message = get_string('unenroluser', 'enrol_manual', array('user'=>fullname($user, true), 'course'=>format_string($course->fullname))); + echo $OUTPUT->confirm($message, $yesurl, $returnurl); +}else{ + $message= get_string('unenrolnotpermitted', 'enrol'); + echo $OUTPUT->confirm($message,$returnurl,$returnurl); +} echo $OUTPUT->footer(); \ No newline at end of file Index: lang/en/enrol.php =================================================================== RCS file: /cvsroot/moodle/moodle/lang/en/enrol.php,v retrieving revision 1.15 diff -u -r1.15 enrol.php --- lang/en/enrol.php 27 Apr 2011 10:16:51 -0000 1.15 +++ lang/en/enrol.php 25 Mar 2012 15:57:31 -0000 @@ -52,6 +52,7 @@ $string['enrolments'] = 'Enrolments'; $string['enrolmentoptions'] = 'Enrolment options'; $string['enrolnotpermitted'] = 'You do not have permission or are not allowed to enrol someone in this course'; +$string['unenrolnotpermitted'] = 'You do not have permission or are not allowed to unenrol from this course'; $string['enrolperiod'] = 'Enrolment duration'; $string['enrolusage'] = 'Instances / enrolments'; $string['enrolusers'] = 'Enrol users';