function User($name, $age, $username, $password) { $this->clean_input(set_name($name)); $this->clean_input(set_age($age)); $this->clean_input(set_username($username)); $this->clean_input(set_password($password)); }
/** * Given an object containing all the necessary data, * (defined by the form in mod_form.php) this function * will create a new instance and return the id number * of the new instance. * * @param object $adobeconnect An object from the form in mod_form.php * @return int The id of the newly inserted adobeconnect record */ function adobeconnect_add_instance($adobeconnect) { global $COURSE, $USER, $DB; $adobeconnect->timecreated = time(); $adobeconnect->meeturl = adobeconnect_clean_meet_url($adobeconnect->meeturl); $adobeconnect->userid = $USER->id; $name = empty($USER->idnumber) ? $USER->username : $USER->idnumber; $username = set_username($name, $USER->email); // Assign the current user with the Adobe Presenter role. $context = context_course::instance($adobeconnect->course); if (!has_capability('mod/adobeconnect:meetinghost', $context, $USER->id, false)) { $param = array('shortname' => 'adobeconnecthost'); $roleid = $DB->get_field('role', 'id', $param); if (!role_assign($roleid, $USER->id, $context->id, 'mod_adobeconnect')) { debugging('role assignment failed', DEBUG_DEVELOPER); return false; } } $aconnect = aconnect_login(); if ($aconnect->get_connection() != 1) { debugging('Unable to connect to the Adobe Connect server.', DEBUG_DEVELOPER); return false; } $recid = $DB->insert_record('adobeconnect', $adobeconnect); if (empty($recid)) { debugging('creating adobeconnect module instance failed', DEBUG_DEVELOPER); return false; } // Get the user's meeting folder location, if non exists then get the shared meeting folder location. $meetfldscoid = aconnect_get_user_folder_sco_id($aconnect, $username); if (empty($meetfldscoid)) { $meetfldscoid = aconnect_get_folder($aconnect, 'meetings'); } $meeting = clone $adobeconnect; if (0 != $adobeconnect->groupmode) { // Allow for multiple groups. // Get all groups for the course. $crsgroups = groups_get_all_groups($COURSE->id); if (empty($crsgroups)) { return 0; } require_once dirname(dirname(dirname(__FILE__))) . '/group/lib.php'; // Create the meeting for each group. foreach ($crsgroups as $crsgroup) { // The teacher role if they don't already have one and assign them to each group. if (!groups_is_member($crsgroup->id, $USER->id)) { groups_add_member($crsgroup->id, $USER->id); } $meeting->name = $adobeconnect->name . '_' . $crsgroup->name; if (!empty($adobeconnect->meeturl)) { $meeting->meeturl = adobeconnect_clean_meet_url($adobeconnect->meeturl . '_' . $crsgroup->name); } // If creating the meeting failed, then return false and revert the group role assignments. if (!($meetingscoid = aconnect_create_meeting($aconnect, $meeting, $meetfldscoid))) { groups_remove_member($crsgroup->id, $USER->id); debugging('Error creating meeting', DEBUG_DEVELOPER); return false; } // Update permissions for meeting. if (empty($adobeconnect->meetingpublic)) { aconnect_update_meeting_perm($aconnect, $meetingscoid, ADOBE_MEETPERM_PRIVATE); } else { aconnect_update_meeting_perm($aconnect, $meetingscoid, ADOBE_MEETPERM_PUBLIC); } // Insert record to activity instance in meeting_groups table. $record = new stdClass(); $record->instanceid = $recid; $record->meetingscoid = $meetingscoid; $record->groupid = $crsgroup->id; $record->id = $DB->insert_record('adobeconnect_meeting_groups', $record); // Add event to calendar. $event = new stdClass(); $event->name = $meeting->name; $event->description = format_module_intro('adobeconnect', $adobeconnect, $adobeconnect->coursemodule); $event->courseid = $adobeconnect->course; $event->groupid = $crsgroup->id; $event->userid = 0; $event->instance = $recid; $event->eventtype = 'group'; $event->timestart = $adobeconnect->starttime; $event->timeduration = $adobeconnect->endtime - $adobeconnect->starttime; $event->visible = 1; $event->modulename = 'adobeconnect'; calendar_event::create($event); } } else { // No groups support. $meetingscoid = aconnect_create_meeting($aconnect, $meeting, $meetfldscoid); // If creating the meeting failed, then return false and revert the group role assignments. if (!$meetingscoid) { debugging('error creating meeting', DEBUG_DEVELOPER); return false; } // Update permissions for meeting. if (empty($adobeconnect->meetingpublic)) { aconnect_update_meeting_perm($aconnect, $meetingscoid, ADOBE_MEETPERM_PRIVATE); } else { aconnect_update_meeting_perm($aconnect, $meetingscoid, ADOBE_MEETPERM_PUBLIC); } // Insert record to activity instance in meeting_groups table. $record = new stdClass(); $record->instanceid = $recid; $record->meetingscoid = $meetingscoid; $record->groupid = 0; $record->id = $DB->insert_record('adobeconnect_meeting_groups', $record); // Add event to calendar. $event = new stdClass(); $event->name = $meeting->name; $event->description = format_module_intro('adobeconnect', $adobeconnect, $adobeconnect->coursemodule); $event->courseid = $adobeconnect->course; $event->groupid = 0; $event->userid = 0; $event->instance = $recid; $event->eventtype = 'course'; $event->timestart = $adobeconnect->starttime; $event->timeduration = $adobeconnect->endtime - $adobeconnect->starttime; $event->visible = 1; $event->modulename = 'adobeconnect'; calendar_event::create($event); } // If no meeting URL was submitted, // update meeting URL for activity with server assigned URL. if (empty($adobeconnect->meeturl) and 0 == $adobeconnect->groupmode) { $filter = array('filter-sco-id' => $meetingscoid); $meeting = aconnect_meeting_exists($aconnect, $meetfldscoid, $filter); if (!empty($meeting)) { $meeting = current($meeting); $record = new stdClass(); $record->id = $recid; $record->meeturl = trim($meeting->url, '/'); $DB->update_record('adobeconnect', $record); } } aconnect_logout($aconnect); return $recid; }
/** * This function returns the user's adobe connect login username based off of * the adobe connect module's login configuration settings (Moodle username or * Moodle email) * * @param int $userid the user id * @return mixed - user's login username or false if something bad happened */ function get_connect_username($userid) { global $DB; $username = ''; $param = array('id' => $userid); $record = $DB->get_record('user', $param, 'id,username,email,idnumber'); if (!empty($userid) && !empty($record)) { $userid = empty($record->idnumber) ? $record->username : $record->idnumber; $username = set_username($userid, $record->email); } return $username; }
if (!confirm_sesskey()) { print_error('Invalid session'); } require_login($course, true, $cm); // Set page global. $PAGE->set_title('Edit'); $PAGE->set_pagelayout('popup'); $PAGE->set_heading($course->fullname); $PAGE->set_context($context); $url = new moodle_url('/mod/adobeconnect/recording.php', array('id' => $cm->id)); $PAGE->set_url($url); $usrobj = new stdClass(); $usrobj = clone $USER; // Create a Connect Pro login session for this user. $name = empty($usrobj->idnumber) ? $usrobj->username : $usrobj->idnumber; $usrobj->username = set_username($name, $usrobj->email); $params = array('instanceid' => $cm->instance, 'groupid' => $groupid); $sql = "SELECT meetingscoid FROM {adobeconnect_meeting_groups} amg WHERE " . "amg.instanceid = :instanceid AND amg.groupid = :groupid"; $meetscoid = $DB->get_record_sql($sql, $params); // Get the Meeting recording details. $recording = array(); $aconnect = aconnect_login(); $fldid = aconnect_get_folder($aconnect, 'content'); $usrcanjoin = false; $usrprincipal = 0; if (!($usrprincipal = aconnect_user_exists($aconnect, $usrobj))) { if (!($usrprincipal = aconnect_create_user($aconnect, $usrobj))) { debugging(get_string('erroruser', 'adobeconnect'), DEBUG_DEVELOPER); } } // Check the user's capabilities and assign them the Adobe Role.
<?php include '..' . DIRECTORY_SEPARATOR . 'includes.' . DIRECTORY_SEPARATOR . 'ajax.php'; if (count($_GET) > 0) { switch ($_GET['request']) { case 'get_username': get_username(); break; case 'set_username': set_username($_GET['username']); break; case 'append_message': append_message($_GET['message']); break; case 'get_messages': get_messages(); break; } }
if (!empty($username) && !empty($password)) { $username = $db->mysql_prep($username); $password = hash("sha256", $db->mysql_prep($password)); $db->connect(); $query = "SELECT username,password,confirm_rights FROM admin where username='******' AND password='******'"; $user = $db->query_database($query); $result = $db->fetch_array($user); $admin_rights = $result['confirm_rights']; if (is_null($result)) { $message = "Incorrect Details,Please Login again.."; } else { if ($admin_rights == 0) { redirect_to('admin_login.php?message2=true'); } else { require_once '../includes/session.php'; set_username($username); redirect_to('create_test.php'); } } } else { echo "please enter details correctly"; } } else { echo "fields are empty"; } } else { echo "Data not set"; } } ?>
public function validation($data, $files) { global $DB, $USER, $COURSE; $errors = parent::validation($data, $files); $usrobj = clone $USER; $name = empty($usrobj->idnumber) ? $usrobj->username : $usrobj->idnumber; $usrobj->username = set_username($name, $usrobj->email); $aconnect = aconnect_login(); $groupprincipalid = aconnect_get_host_group($aconnect); // Check if the user exists and if not create the new user. if (!($usrprincipal = aconnect_user_exists($aconnect, $usrobj))) { if (!($usrprincipal = aconnect_create_user($aconnect, $usrobj))) { debugging("error creating user", DEBUG_DEVELOPER); } } // Add the user to the host group if they aren't already. aconnect_add_user_group($aconnect, $groupprincipalid, $usrprincipal); // Search for a Meeting with the same starting name. It will cause a duplicate // meeting name (and error) when the user begins to add participants to the meeting. $meetfldscoid = aconnect_get_folder($aconnect, 'meetings'); $filter = array('filter-like-name' => $data['name']); $namematches = aconnect_meeting_exists($aconnect, $meetfldscoid, $filter); // Search the user's adobe connect folder. $usrfldscoid = aconnect_get_user_folder_sco_id($aconnect, $usrobj->username); if (!empty($usrfldscoid)) { $namematches = $namematches + aconnect_meeting_exists($aconnect, $usrfldscoid, $filter); } if (empty($namematches)) { $namematches = array(); } // Now search for existing meeting room URLs. $url = $data['meeturl'] = adobeconnect_clean_meet_url($data['meeturl']); // Check to see if there are any trailing slashes or additional parts to the url // ex. mymeeting/mysecondmeeting/ Only the 'mymeeting' part is valid. if (0 != substr_count($url, '/') and false !== strpos($url, '/', 1)) { $errors['meeturl'] = get_string('invalidadobemeeturl', 'adobeconnect'); } $filter = array('filter-like-url-path' => $url); $urlmatches = aconnect_meeting_exists($aconnect, $meetfldscoid, $filter); // Search the user's adobe connect folder. if (!empty($usrfldscoid)) { $urlmatches = $urlmatches + aconnect_meeting_exists($aconnect, $usrfldscoid, $filter); } if (empty($urlmatches)) { $urlmatches = array(); } else { // Format url for comparison. if (false === strpos($url, '/') or 0 != strpos($url, '/')) { $url = '/' . $url; } } // Check URL for correct length and format. if (!empty($data['meeturl'])) { if (strlen($data['meeturl']) > 60) { $errors['meeturl'] = get_string('longurl', 'adobeconnect'); } else { if (!preg_match('/^[a-z][a-z\\-]*/i', $data['meeturl'])) { $errors['meeturl'] = get_string('invalidurl', 'adobeconnect'); } } } // Check for available groups if groupmode is selected. if ($data['groupmode'] > 0) { $crsgroups = groups_get_all_groups($COURSE->id); if (empty($crsgroups)) { $errors['groupmode'] = get_string('missingexpectedgroups', 'adobeconnect'); } } // Adding activity. if (empty($data['update'])) { if ($data['starttime'] == $data['endtime']) { $errors['starttime'] = get_string('samemeettime', 'adobeconnect'); $errors['endtime'] = get_string('samemeettime', 'adobeconnect'); } else { if ($data['endtime'] < $data['starttime']) { $errors['starttime'] = get_string('greaterstarttime', 'adobeconnect'); } } // Check for local activities with the same name. $params = array('name' => $data['name']); if ($DB->record_exists('adobeconnect', $params)) { $errors['name'] = get_string('duplicatemeetingname', 'adobeconnect'); return $errors; } // Check Adobe connect server for duplicated names. foreach ($namematches as $match) { if (0 == substr_compare($match->name, $data['name'] . '_', 0, strlen($data['name'] . '_'), false)) { $errors['name'] = get_string('duplicatemeetingname', 'adobeconnect'); } } foreach ($urlmatches as $match) { $matchurl = rtrim($match->url, '/'); if (0 == substr_compare($matchurl, $url . '_', 0, strlen($url . '_'), false)) { $errors['meeturl'] = get_string('duplicateurl', 'adobeconnect'); } } } else { // Updating activity // Look for existing meeting names, excluding this activity's group meeting(s). $grpmeetings = $DB->get_records('adobeconnect_meeting_groups', array('instanceid' => $data['instance']), null, 'meetingscoid, groupid'); if (empty($grpmeetings)) { $grpmeetings = array(); } foreach ($namematches as $match) { if (!array_key_exists($match->scoid, $grpmeetings)) { if (0 == substr_compare($match->name, $data['name'] . '_', 0, strlen($data['name'] . '_'), false)) { $errors['name'] = get_string('duplicatemeetingname', 'adobeconnect'); } } } foreach ($urlmatches as $match) { if (!array_key_exists($match->scoid, $grpmeetings)) { if (0 == substr_compare($match->url, $url . '_', 0, strlen($url . '_'), false)) { $errors['meeturl'] = get_string('duplicateurl', 'adobeconnect'); } } } // Validate start and end times. if ($data['starttime'] == $data['endtime']) { $errors['starttime'] = get_string('samemeettime', 'adobeconnect'); $errors['endtime'] = get_string('samemeettime', 'adobeconnect'); } else { if ($data['endtime'] < $data['starttime']) { $errors['starttime'] = get_string('greaterstarttime', 'adobeconnect'); } } } aconnect_logout($aconnect); if ($aconnect->timeout()) { $errors = array('name' => get_string('errortimeout', 'adobeconnect')); } return $errors; }