if (!isset($allclips[$clip['identifier']])) { $mod_opencast_clip = new mod_opencast_event($sc_obj, $clip['identifier'], false, $opencast->id); $mod_opencast_clip->editdetails_page = '#opencast-inactive'; $mod_opencast_clip->deleteclip_page = '#opencast-inactive'; $mod_opencast_clip->clipmembers_page = '#opencast-inactive'; if (has_capability('mod/opencast:isproducer', $context)) { // current USER is channel producer in Moodle (i.e. Teacher) if ($sc_obj->getIvt()) { $mod_opencast_clip->editdetails_page = '#some-page'; } if ($sc_obj->isProducer($sc_user->getExternalAccount())) { // current user is actual SwitchCast producer $mod_opencast_clip->deleteclip_page = '#some-page'; } } if ($mod_opencast_clip->getOwnerUserId() == $USER->id) { // current USER is clip owner if ($sc_obj->getIvt() && $sc_obj->getInvitingPossible()) { $mod_opencast_clip->clipmembers_page = '#some-page'; } } $owner = $mod_opencast_clip->getOwner(); unset($mod_opencast_clip->owner); // we don't want SWITCHaai uniqueID to appear in the JSON output if ($owner == '') { $mod_opencast_clip->owner_name = ''; } else { $mod_opencast_clip->owner_name = 'SOME_NAME'; } $allclips[$clip['identifier']] = $mod_opencast_clip; } else {
} $return_course = new moodle_url('/course/view.php', ['id' => $course->id]); if ($userid !== 0 && !($user = $DB->get_record('user', ['id' => $userid]))) { print_error('invaliduser', null, $return_channel); } if ($action !== '' && !in_array($action, ['add', 'remove'])) { print_error('invalidaction', null, $return_channel); } require_course_login($course, false, $cm); if (!($opencast = opencast_get_opencast($cm->instance))) { print_error('invalidcoursemodule', null, $return_course); } $sc_obj = new mod_opencast_series(); $sc_obj->fetch($opencast->id); $sc_clip = new mod_opencast_event($sc_obj, $clip_ext_id, false, $opencast->id); if ($sc_clip->getOwnerUserId() != $USER->id) { print_error('invalidaction', null, $return_channel); } // Perform action ? if ($action !== '' && $userid !== 0 && confirm_sesskey() && has_capability('mod/opencast:use', $context) && $opencast->inviting && ($USER->id == $sc_clip->getOwnerUserId() || has_capability('mod/opencast:isproducer', $context))) { /* * $action AND $userid are defined * and channel allows clip inviting * and $USER has rights and is clip owner */ if ($action == 'add') { $sc_clip->addMember($userid, $course->id, $opencast->id); } else { if ($action == 'remove') { $sc_clip->removeMember($userid, $course->id, $opencast->id); }